{"version":3,"file":"static/js/main.d3e8cc6b.js","mappings":"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G,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChC,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,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,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,IAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,SAKS,iBAAiB,WAAW,KAAK,CAC5D,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC3G,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAC5G,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAC7G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAC1G,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,IAC3G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KACzG,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IACzG,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAC1G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KACzG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KACzG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAC1G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KACxG,IAAK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K,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KACxG,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAC7G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IACzG,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAC3G,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAC3G,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KA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","sources":["../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../node_modules/apexcharts/dist/apexcharts.common.js","../node_modules/base64-js/index.js","../node_modules/buffer/index.js","../node_modules/classnames/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subHours/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/subMinutes/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/dompurify/src/utils.js","../node_modules/dompurify/src/tags.js","../node_modules/dompurify/src/attrs.js","../node_modules/dompurify/src/regexp.js","../node_modules/dompurify/src/purify.js","../node_modules/formik/node_modules/react-fast-compare/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/ieee754/index.js","../node_modules/invariant/browser.js","../node_modules/isarray/index.js","../node_modules/load-script/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHas.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/has.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/mapKeys.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/snakeCase.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../pdfjs-dist/build/pdf/webpack/universalModuleDefinition","../pdfjs-dist/build/pdf/src/display/display_utils.js","../pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","../pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","../pdfjs-dist/build/pdf/src/shared/util.js","../pdfjs-dist/build/pdf/src/shared/compatibility.js","../pdfjs-dist/build/pdf/src/shared/is_node.js","../pdfjs-dist/build/pdf/node_modules/core-js/es/global-this.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.global-this.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-call.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-property-key.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-callable.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-symbol.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-prototype-of.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-method.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/a-callable.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/try-to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/ordinary-to-primitive.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/has-own-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-name.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer-or-infinity.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/length-of-array-like.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","../pdfjs-dist/build/pdf/node_modules/dommatrix/dist/dommatrix.js","../pdfjs-dist/build/pdf/node_modules/core-js/es/object/from-entries.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.from-entries.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-close.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","../pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.aggregate-error.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/clear-error-stack.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice-simple.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/install-error-cause.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/normalize-string-argument.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/error-stack-installable.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/a-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/is-constructor.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/function-apply.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-node.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios-pebble.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-webos-webkit.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-browser.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.any.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","../pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","../pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","../pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.js","../pdfjs-dist/build/pdf/src/display/base_factory.js","../pdfjs-dist/build/pdf/src/display/api.js","../pdfjs-dist/build/pdf/src/display/font_loader.js","../pdfjs-dist/build/pdf/src/display/node_utils.js","../pdfjs-dist/build/pdf/src/display/annotation_storage.js","../pdfjs-dist/build/pdf/src/display/canvas.js","../pdfjs-dist/build/pdf/src/display/pattern_helper.js","../pdfjs-dist/build/pdf/src/display/worker_options.js","../pdfjs-dist/build/pdf/src/shared/message_handler.js","../pdfjs-dist/build/pdf/src/display/metadata.js","../pdfjs-dist/build/pdf/src/display/optional_content_config.js","../pdfjs-dist/build/pdf/src/display/transport_stream.js","../pdfjs-dist/build/pdf/src/display/xfa_text.js","../pdfjs-dist/build/pdf/src/display/annotation_layer.js","../pdfjs-dist/build/pdf/src/shared/scripting_utils.js","../pdfjs-dist/build/pdf/src/display/xfa_layer.js","../pdfjs-dist/build/pdf/src/display/text_layer.js","../pdfjs-dist/build/pdf/src/display/svg.js","../pdfjs-dist/build/pdf/src/display/node_stream.js","../pdfjs-dist/build/pdf/src/display/network_utils.js","../pdfjs-dist/build/pdf/src/display/content_disposition.js","../pdfjs-dist/build/pdf/src/display/network.js","../pdfjs-dist/build/pdf/src/display/fetch_stream.js","../pdfjs-dist/build/pdf/webpack/bootstrap","../webpack:/pdfjs-dist/build/pdf/webpack/runtime/node module decorator","../pdfjs-dist/build/pdf/src/pdf.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/react-apexcharts/dist/react-apexcharts.min.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-input-mask/index.js","../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../node_modules/react-intl-tel-input/dist/components/AllCountries.js","../node_modules/react-intl-tel-input/dist/components/CountryList.js","../node_modules/react-intl-tel-input/dist/components/FlagBox.js","../node_modules/react-intl-tel-input/dist/components/FlagDropDown.js","../node_modules/react-intl-tel-input/dist/components/IntlTelInput.js","../node_modules/react-intl-tel-input/dist/components/RootModal.js","../node_modules/react-intl-tel-input/dist/components/TelInput.js","../node_modules/react-intl-tel-input/dist/components/constants.js","../node_modules/react-intl-tel-input/dist/components/utils.js","../node_modules/react-intl-tel-input/dist/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/Preview.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/DailyMotion.js","../node_modules/react-player/lib/players/Facebook.js","../node_modules/react-player/lib/players/FilePlayer.js","../node_modules/react-player/lib/players/Kaltura.js","../node_modules/react-player/lib/players/Mixcloud.js","../node_modules/react-player/lib/players/SoundCloud.js","../node_modules/react-player/lib/players/Streamable.js","../node_modules/react-player/lib/players/Twitch.js","../node_modules/react-player/lib/players/Vidyard.js","../node_modules/react-player/lib/players/Vimeo.js","../node_modules/react-player/lib/players/Wistia.js","../node_modules/react-player/lib/players/YouTube.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/toposort/index.js","../node_modules/underscore.deferred/underscore.deferred.js","../node_modules/warning/warning.js","../../../shared-packages/amh-results/dist/ChartStyles.js","../../../shared-packages/amh-results/dist/RangeChart.js","../../../shared-packages/amh-results/dist/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/mobx/src/errors.ts","../node_modules/mobx/src/utils/global.ts","../node_modules/mobx/src/utils/utils.ts","../node_modules/mobx/src/api/decorators.ts","../node_modules/mobx/src/types/overrideannotation.ts","../node_modules/mobx/src/core/atom.ts","../node_modules/mobx/src/api/become-observed.ts","../node_modules/mobx/src/utils/comparer.ts","../node_modules/mobx/src/types/modifiers.ts","../node_modules/mobx/src/types/actionannotation.ts","../node_modules/mobx/src/types/flowannotation.ts","../node_modules/mobx/src/types/computedannotation.ts","../node_modules/mobx/src/types/observableannotation.ts","../node_modules/mobx/src/types/autoannotation.ts","../node_modules/mobx/src/api/observable.ts","../node_modules/mobx/src/types/dynamicobject.ts","../node_modules/mobx/src/api/computed.ts","../node_modules/mobx/src/core/action.ts","../node_modules/mobx/src/types/observablevalue.ts","../node_modules/mobx/src/core/derivation.ts","../node_modules/mobx/src/core/computedvalue.ts","../node_modules/mobx/src/core/observable.ts","../node_modules/mobx/src/core/globalstate.ts","../node_modules/mobx/src/core/reaction.ts","../node_modules/mobx/src/api/trace.ts","../node_modules/mobx/src/api/action.ts","../node_modules/mobx/src/api/autorun.ts","../node_modules/mobx/src/api/configure.ts","../node_modules/mobx/src/api/extendobservable.ts","../node_modules/mobx/src/api/extras.ts","../node_modules/mobx/src/api/flow.ts","../node_modules/mobx/src/api/isobservable.ts","../node_modules/mobx/src/api/transaction.ts","../node_modules/mobx/src/types/intercept-utils.ts","../node_modules/mobx/src/types/listen-utils.ts","../node_modules/mobx/src/api/makeObservable.ts","../node_modules/mobx/src/types/observablearray.ts","../node_modules/mobx/src/core/spy.ts","../node_modules/mobx/src/types/observablemap.ts","../node_modules/mobx/src/types/observableset.ts","../node_modules/mobx/src/types/observableobject.ts","../node_modules/mobx/src/types/legacyobservablearray.ts","../node_modules/mobx/src/types/type-utils.ts","../node_modules/mobx/src/utils/eq.ts","../node_modules/mobx/src/utils/iterable.ts","../node_modules/mobx-react-lite/src/utils/assertEnvironment.ts","../node_modules/mobx/src/mobx.ts","../node_modules/mobx-react-lite/src/utils/observerBatching.ts","../node_modules/mobx-react-lite/src/utils/printDebugValue.ts","../node_modules/mobx-react-lite/src/utils/FinalizationRegistryWrapper.ts","../node_modules/mobx-react-lite/src/utils/reactionCleanupTrackingCommon.ts","../node_modules/mobx-react-lite/src/utils/reactionCleanupTracking.ts","../node_modules/mobx-react-lite/src/utils/createReactionCleanupTrackingUsingFinalizationRegister.ts","../node_modules/mobx-react-lite/src/utils/createTimerBasedReactionCleanupTracking.ts","../node_modules/mobx-react-lite/src/staticRendering.ts","../node_modules/mobx-react-lite/src/useObserver.ts","../node_modules/mobx-react-lite/src/observer.ts","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/mobx-react-lite/src/index.ts","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-toastify/src/utils/propValidator.ts","../node_modules/react-toastify/src/utils/constant.ts","../node_modules/react-toastify/src/utils/cssTransition.tsx","../node_modules/react-toastify/src/utils/collapseToast.ts","../node_modules/react-toastify/src/core/eventManager.ts","../node_modules/react-toastify/src/hooks/useToastContainer.ts","../node_modules/react-toastify/src/hooks/useToast.ts","../node_modules/react-toastify/src/components/CloseButton.tsx","../node_modules/react-toastify/src/components/ProgressBar.tsx","../node_modules/react-toastify/src/components/Icons.tsx","../node_modules/react-toastify/src/components/Toast.tsx","../node_modules/react-toastify/src/components/Transitions.tsx","../node_modules/react-toastify/src/components/ToastContainer.tsx","../node_modules/react-toastify/src/core/toast.tsx","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/tslib/tslib.es6.js","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/createErrorClass.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/arrRemove.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","../node_modules/rxjs/src/internal/util/noop.ts","../node_modules/rxjs/src/internal/NotificationFactories.ts","../node_modules/rxjs/src/internal/util/errorContext.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/BehaviorSubject.ts","../node_modules/rxjs/src/internal/util/lift.ts","../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","../node_modules/rxjs/src/internal/operators/filter.ts","../node_modules/rxjs/src/internal/util/EmptyError.ts","../node_modules/rxjs/src/internal/observable/empty.ts","../node_modules/rxjs/src/internal/operators/take.ts","../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","api/ApiUrl.ts","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/i18next-locize-backend/esm/utils.js","../node_modules/i18next-locize-backend/esm/request.js","../node_modules/i18next-locize-backend/esm/index.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","i18n.ts","api/ObservableFromFetch.ts","stores/AuthStore.ts","api/Authenticate.ts","stores/RegistrationStore.ts","api/PaymentIntent.ts","stores/StripeStore.ts","stores/RootStore.ts","api/BuildFetchRequest.ts","../node_modules/rxjs/src/internal/operators/first.ts","api/DomainInfo.ts","stores/StoreProvider.tsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","AppRoute.ts","components/Layout/Footer.tsx","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/Navbar.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/react-bootstrap/esm/Nav.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../node_modules/@react-aria/ssr/dist/packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","components/Layout/NavMenu.tsx","components/Layout/Header.tsx","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/dom-helpers/esm/scrollbarSize.js","components/LoadingOverlay.tsx","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/react-idle-timer/dist/index.esm.js","formatters/FormatMilliseconds.ts","components/IdleTimer.tsx","formatters/Sanitize.ts","components/Layout/Notification.tsx","components/Layout.tsx","api/DonorInfo.ts","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/Card.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","formatters/FormatLocalISODateString.ts","formatters/EscapePhoneNumber.ts","../node_modules/react-bootstrap/esm/InputGroup.js","../node_modules/react-bootstrap-icons/dist/icons/calendar-date.js","components/BirthdayInput.tsx","../node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/es/_lib/localize/index.js","../node_modules/date-fns/esm/locale/es/_lib/match/index.js","../node_modules/date-fns/esm/locale/es/index.js","components/Login/DateOfBirth.tsx","api/Countries.ts","hooks/useTranslationWithRef.ts","components/Login/PhoneNumber.tsx","hooks/useQuery.ts","components/Player.tsx","stores/ServiceWorkerStore.ts","components/Login.tsx","hooks/useServiceWorkerUpdate.ts","../node_modules/rxjs/src/internal/util/isScheduler.ts","../node_modules/rxjs/src/internal/util/args.ts","../node_modules/rxjs/src/internal/util/isArrayLike.ts","../node_modules/rxjs/src/internal/util/isPromise.ts","../node_modules/rxjs/src/internal/util/isInteropObservable.ts","../node_modules/rxjs/src/internal/util/isAsyncIterable.ts","../node_modules/rxjs/src/internal/util/throwUnobservableError.ts","../node_modules/rxjs/src/internal/symbol/iterator.ts","../node_modules/rxjs/src/internal/util/isIterable.ts","../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts","../node_modules/rxjs/src/internal/observable/innerFrom.ts","../node_modules/rxjs/src/internal/util/executeSchedule.ts","../node_modules/rxjs/src/internal/operators/observeOn.ts","../node_modules/rxjs/src/internal/operators/subscribeOn.ts","../node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduled.ts","../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts","../node_modules/rxjs/src/internal/observable/from.ts","../node_modules/rxjs/src/internal/scheduler/Action.ts","../node_modules/rxjs/src/internal/scheduler/intervalProvider.ts","../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts","../node_modules/rxjs/src/internal/Scheduler.ts","../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","../node_modules/rxjs/src/internal/scheduler/async.ts","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/rxjs/src/internal/operators/mergeMap.ts","../node_modules/rxjs/src/internal/operators/mergeInternals.ts","../node_modules/rxjs/src/internal/operators/concatAll.ts","../node_modules/rxjs/src/internal/operators/mergeAll.ts","../node_modules/rxjs/src/internal/operators/delayWhen.ts","../node_modules/rxjs/src/internal/observable/concat.ts","../node_modules/rxjs/src/internal/operators/ignoreElements.ts","../node_modules/rxjs/src/internal/operators/mapTo.ts","../node_modules/rxjs/src/internal/observable/timer.ts","../node_modules/rxjs/src/internal/util/isDate.ts","../node_modules/react-bootstrap-icons/dist/icons/arrow-counterclockwise.js","components/LifeAge/AgeChart.tsx","components/LifeAge/AgeGraph.tsx","components/LifeAge/RangeSlider.tsx","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/react-bootstrap/esm/OverlayTrigger.js","components/LifeAge/ScoresPopover.tsx","components/LifeAge/ValuesSection.tsx","components/Results/DonorInfo.tsx","formatters/FormatName.ts","components/ToggleSwitch.tsx","../node_modules/react-bootstrap-icons/dist/icons/chevron-up.js","../node_modules/react-bootstrap-icons/dist/icons/chevron-down.js","components/LifeAge.tsx","api/LifeAge.ts","../node_modules/rxjs/src/internal/operators/switchMap.ts","../node_modules/rxjs/src/internal/observable/of.ts","../node_modules/rxjs/src/internal/operators/delay.ts","components/OrderTesting.tsx","components/Layout/SubHeader.tsx","api/Results.ts","../node_modules/react-bootstrap-icons/dist/icons/arrow-up-circle.js","components/Core/MoveTopButton.tsx","components/Results/Footer.tsx","components/Results/PhysicalSection.tsx","../node_modules/react-bootstrap-icons/dist/icons/download.js","formatters/FormatDate.ts","utils/PrintPdf.ts","components/Results/RangeReportDownload.tsx","../node_modules/react-bootstrap-icons/dist/icons/info-circle.js","components/Results/DescriptionFormatter.tsx","components/Results/ReportInfo.tsx","components/Results/ShowMoreGroup.tsx","../node_modules/react-bootstrap-icons/dist/icons/graph-up-arrow.js","components/Results/HowToImproveGroup.tsx","components/Results/RangeGraph.tsx","components/Results/RangeSection.tsx","components/Results/Status.tsx","components/Results/RangeReport.tsx","api/TestEvent.ts","components/Results/ReportSelection.tsx","api/models/TestResultId.ts","components/Results/CovidSectionBody.tsx","components/Results/CovidSection.tsx","components/Results/TextSection.tsx","components/Results/TextReport.tsx","components/Results/HistoryChart.tsx","components/Results/HistorySection.tsx","components/Results/HistoryReport.tsx","api/History.ts","../node_modules/make-event-props/dist/esm/index.js","../node_modules/make-cancellable-promise/dist/esm/index.js","../node_modules/merge-class-names/dist/esm/index.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/react-pdf/dist/esm/DocumentContext.js","../node_modules/react-pdf/dist/esm/Message.js","../node_modules/react-pdf/dist/esm/LinkService.js","../node_modules/react-pdf/dist/esm/PasswordResponses.js","../node_modules/react-pdf/dist/esm/shared/utils.js","../node_modules/react-pdf/dist/esm/shared/propTypes.js","../node_modules/react-pdf/dist/esm/Document.js","../node_modules/react-pdf/dist/esm/OutlineContext.js","../node_modules/react-pdf/dist/esm/Ref.js","../node_modules/react-pdf/dist/esm/OutlineItem.js","../node_modules/react-pdf/dist/esm/Outline.js","../node_modules/merge-refs/dist/esm/index.js","../node_modules/react-pdf/dist/esm/PageContext.js","../node_modules/react-pdf/dist/esm/Page/PageCanvas.js","../node_modules/react-pdf/dist/esm/Page/PageSVG.js","../node_modules/react-pdf/dist/esm/Page/TextLayerItem.js","../node_modules/react-pdf/dist/esm/Page/TextLayer.js","../node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../node_modules/react-pdf/dist/esm/Page.js","../node_modules/react-pdf/dist/esm/entry.js","api/OrderableTests.ts","../node_modules/@stripe/stripe-js/dist/stripe.esm.js","formatters/FormatCurrency.ts","components/Results/Modals/CheckoutForm.tsx","../node_modules/react-bootstrap-icons/dist/icons/check-circle-fill.js","api/States.ts","components/Results/Modals/AddressForm.tsx","api/Address.ts","api/Consent.ts","components/Results/Modals/OrderTest.tsx","api/models/registration/Implementation.ts","components/Results/Modals/ConsentForm.tsx","components/Results/OrderTestChecker.tsx","../node_modules/react-bootstrap-icons/dist/icons/printer.js","components/Results.tsx","api/CoverLetter.ts","api/Registration.ts","../node_modules/ts-custom-error/dist/src/utils.js","../node_modules/ts-custom-error/dist/src/custom-error.js","../../../../src/core/DecodeHintType.ts","../../../../src/core/Exception.ts","../../../../src/core/ArgumentException.ts","../../../../src/core/IllegalArgumentException.ts","../../../../src/core/BinaryBitmap.ts","../../../../src/core/ChecksumException.ts","../../../../src/core/Binarizer.ts","../../../../../src/core/util/System.ts","../../../../src/core/IndexOutOfBoundsException.ts","../../../../src/core/ArrayIndexOutOfBoundsException.ts","../../../../../src/core/util/Arrays.ts","../../../../../src/core/util/Integer.ts","../../../../../src/core/common/BitArray.ts","../../../../../src/core/common/CharacterSetECI.ts","../../../../src/core/FormatException.ts","../../../../src/core/BarcodeFormat.ts","../../../../src/core/UnsupportedOperationException.ts","../../../../../src/core/util/StringEncoding.ts","../../../../../src/core/common/StringUtils.ts","../../../../../src/core/util/StringBuilder.ts","../../../../../src/core/common/BitMatrix.ts","../../../../src/core/NotFoundException.ts","../../../../../src/core/common/GlobalHistogramBinarizer.ts","../../../../../src/core/common/HybridBinarizer.ts","../../../../src/core/LuminanceSource.ts","../../../../src/core/InvertedLuminanceSource.ts","../../../../src/browser/HTMLCanvasElementLuminanceSource.ts","../../../../src/browser/VideoInputDevice.ts","../../../../src/browser/BrowserCodeReader.ts","../../../../src/core/Result.ts","../../../../src/core/ResultMetadataType.ts","../../../../../../src/core/aztec/decoder/Decoder.ts","../../../../../src/core/common/DecoderResult.ts","../../../../../../src/core/common/reedsolomon/AbstractGenericGF.ts","../../../../../../src/core/common/reedsolomon/GenericGFPoly.ts","../../../../src/core/ArithmeticException.ts","../../../../../../src/core/common/reedsolomon/GenericGF.ts","../../../../src/core/ReedSolomonException.ts","../../../../src/core/IllegalStateException.ts","../../../../../../src/core/common/reedsolomon/ReedSolomonDecoder.ts","../../../../../../src/core/common/detector/MathUtils.ts","../../../../../src/core/util/Float.ts","../../../../src/core/ResultPoint.ts","../../../../../src/core/common/DetectorResult.ts","../../../../../src/core/aztec/AztecDetectorResult.ts","../../../../../../src/core/common/detector/WhiteRectangleDetector.ts","../../../../../src/core/common/GridSampler.ts","../../../../../src/core/common/PerspectiveTransform.ts","../../../../../src/core/common/DefaultGridSampler.ts","../../../../../src/core/common/GridSamplerInstance.ts","../../../../../../src/core/aztec/detector/Detector.ts","../../../../../src/core/aztec/AztecReader.ts","../../../../../src/core/oned/OneDReader.ts","../../../../src/browser/BrowserAztecCodeReader.ts","../../../../../src/core/oned/Code128Reader.ts","../../../../../src/core/oned/Code39Reader.ts","../../../../../src/core/oned/ITFReader.ts","../../../../../src/core/oned/AbstractUPCEANReader.ts","../../../../../src/core/oned/UPCEANExtension5Support.ts","../../../../../src/core/oned/UPCEANExtension2Support.ts","../../../../../src/core/oned/UPCEANExtensionSupport.ts","../../../../../src/core/oned/UPCEANReader.ts","../../../../../src/core/oned/EAN13Reader.ts","../../../../../src/core/oned/EAN8Reader.ts","../../../../../src/core/oned/UPCAReader.ts","../../../../../src/core/oned/UPCEReader.ts","../../../../../src/core/oned/MultiFormatUPCEANReader.ts","../../../../../../src/core/oned/rss/AbstractRSSReader.ts","../../../../../../src/core/oned/rss/DataCharacter.ts","../../../../../../src/core/oned/rss/FinderPattern.ts","../../../../../../src/core/oned/rss/RSSUtils.ts","../../../../../../../src/core/oned/rss/expanded/BitArrayBuilder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/BlockParsedResult.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/DecodedObject.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/DecodedChar.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/DecodedInformation.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/DecodedNumeric.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/FieldParser.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/GeneralAppIdDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AbstractExpandedDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI01decoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI01AndOtherAIs.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AnyAIDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI01weightDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI013x0xDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI013103decoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI01320xDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI01392xDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI01393xDecoder.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AI013x0x1xDecoder.ts","../../../../../../../src/core/oned/rss/expanded/ExpandedPair.ts","../../../../../../src/core/datamatrix/decoder/DecodedBitStreamParser.ts","../../../../../../../src/core/oned/rss/expanded/ExpandedRow.ts","../../../../../../../src/core/oned/rss/expanded/RSSExpandedReader.ts","../../../../../../../../src/core/oned/rss/expanded/decoders/AbstractExpandedDecoderComplement.ts","../../../../../../src/core/oned/rss/Pair.ts","../../../../../../src/core/oned/rss/RSS14Reader.ts","../../../../../src/core/oned/MultiFormatOneDReader.ts","../../../../src/browser/BrowserBarcodeReader.ts","../../../../../../src/core/datamatrix/decoder/Version.ts","../../../../../../src/core/datamatrix/decoder/BitMatrixParser.ts","../../../../../../src/core/datamatrix/decoder/DataBlock.ts","../../../../../src/core/common/BitSource.ts","../../../../../../src/core/qrcode/decoder/ErrorCorrectionLevel.ts","../../../../../../src/core/datamatrix/decoder/Decoder.ts","../../../../../../src/core/datamatrix/detector/Detector.ts","../../../../../src/core/datamatrix/DataMatrixReader.ts","../../../../src/browser/BrowserDatamatrixCodeReader.ts","../../../../../../src/core/qrcode/decoder/DataMask.ts","../../../../../../src/core/qrcode/decoder/FormatInformation.ts","../../../../../../src/core/qrcode/decoder/ECBlocks.ts","../../../../../../src/core/qrcode/decoder/ECB.ts","../../../../../../src/core/qrcode/decoder/Version.ts","../../../../../../src/core/qrcode/decoder/Mode.ts","../../../../../../src/core/qrcode/decoder/BitMatrixParser.ts","../../../../../../src/core/qrcode/decoder/DataBlock.ts","../../../../../../src/core/pdf417/decoder/DecodedBitStreamParser.ts","../../../../../../src/core/qrcode/decoder/DecodedBitStreamParser.ts","../../../../../../src/core/qrcode/decoder/QRCodeDecoderMetaData.ts","../../../../../../src/core/qrcode/decoder/Decoder.ts","../../../../../../src/core/qrcode/detector/AlignmentPattern.ts","../../../../../../src/core/qrcode/detector/AlignmentPatternFinder.ts","../../../../../../src/core/qrcode/detector/FinderPattern.ts","../../../../../../src/core/qrcode/detector/FinderPatternInfo.ts","../../../../../../src/core/qrcode/detector/FinderPatternFinder.ts","../../../../../../src/core/qrcode/detector/Detector.ts","../../../../../src/core/qrcode/QRCodeReader.ts","../../../../../src/core/pdf417/PDF417Common.ts","../../../../../../src/core/pdf417/detector/PDF417DetectorResult.ts","../../../../../../src/core/pdf417/detector/Detector.ts","../../../../../../../src/core/pdf417/decoder/ec/ModulusPoly.ts","../../../../../../../src/core/pdf417/decoder/ec/ModulusBase.ts","../../../../../../../src/core/pdf417/decoder/ec/ModulusGF.ts","../../../../../../../src/core/pdf417/decoder/ec/ErrorCorrection.ts","../../../../../../src/core/pdf417/decoder/BoundingBox.ts","../../../../../../src/core/pdf417/decoder/BarcodeMetadata.ts","../../../../../src/core/util/Formatter.ts","../../../../../../src/core/pdf417/decoder/DetectionResultColumn.ts","../../../../../../src/core/pdf417/decoder/BarcodeValue.ts","../../../../../../src/core/pdf417/decoder/DetectionResultRowIndicatorColumn.ts","../../../../../../src/core/pdf417/decoder/DetectionResult.ts","../../../../../../src/core/pdf417/decoder/Codeword.ts","../../../../../../src/core/pdf417/decoder/PDF417CodewordDecoder.ts","../../../../../src/core/pdf417/PDF417ResultMetadata.ts","../../../../../src/core/util/Long.ts","../../../../src/core/NullPointerException.ts","../../../../../src/core/util/OutputStream.ts","../../../../src/core/OutOfMemoryError.ts","../../../../../src/core/util/ByteArrayOutputStream.ts","../../../../src/core/EncodeHintType.ts","../../../../../../src/core/pdf417/decoder/PDF417ScanningDecoder.ts","../../../../../src/core/pdf417/PDF417Reader.ts","../../../../src/core/ReaderException.ts","../../../../src/core/MultiFormatReader.ts","../../../../src/browser/BrowserMultiFormatReader.ts","../../../../src/browser/BrowserPDF417Reader.ts","../../../../src/browser/BrowserQRCodeReader.ts","../../../../../../src/core/common/reedsolomon/ReedSolomonEncoder.ts","../../../../../../src/core/qrcode/encoder/MaskUtil.ts","../../../../../../src/core/qrcode/encoder/ByteMatrix.ts","../../../../../../src/core/qrcode/encoder/QRCode.ts","../../../../src/core/WriterException.ts","../../../../../../src/core/qrcode/encoder/MatrixUtil.ts","../../../../../../src/core/qrcode/encoder/BlockPair.ts","../../../../../../src/core/qrcode/encoder/Encoder.ts","../../../../src/browser/BrowserQRCodeSvgWriter.ts","../../../../../src/core/qrcode/QRCodeWriter.ts","../../../../src/core/MultiFormatWriter.ts","../../../../src/core/PlanarYUVLuminanceSource.ts","../../../../src/core/RGBLuminanceSource.ts","../../../../../src/core/util/Charset.ts","../../../../../src/core/util/StandardCharsets.ts","../../../../../../src/core/aztec/encoder/AztecCode.ts","../../../../../src/core/util/Collections.ts","../../../../../../src/core/aztec/encoder/Token.ts","../../../../../../src/core/aztec/encoder/SimpleToken.ts","../../../../../../src/core/aztec/encoder/BinaryShiftToken.ts","../../../../../../src/core/aztec/encoder/TokenHelpers.ts","../../../../../../src/core/aztec/encoder/EncoderConstants.ts","../../../../../../src/core/aztec/encoder/LatchTable.ts","../../../../../../src/core/aztec/encoder/ShiftTable.ts","../../../../../../src/core/aztec/encoder/State.ts","../../../../../../src/core/aztec/encoder/CharMap.ts","../../../../../../src/core/aztec/encoder/HighLevelEncoder.ts","../../../../../../src/core/aztec/encoder/Encoder.ts","components/Registration/Modals/BarcodeScanner.ts","../../../../../src/core/aztec/AztecWriter.ts","components/Registration/Barcode.tsx","components/Registration/Consent.tsx","components/Registration/Employee.tsx","components/Registration/Verification.tsx","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/formik/src/utils.ts","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/nanoclone/src/index.js","../node_modules/formik/src/ErrorMessage.tsx","../node_modules/formik/src/FastField.tsx","../node_modules/yup/es/util/printValue.js","../node_modules/yup/es/locale.js","../node_modules/yup/es/util/isSchema.js","../node_modules/yup/es/Condition.js","../node_modules/yup/es/util/toArray.js","../node_modules/yup/es/ValidationError.js","../node_modules/yup/es/util/runTests.js","../node_modules/yup/es/Reference.js","../node_modules/yup/es/util/createValidation.js","../node_modules/yup/es/util/reach.js","../node_modules/yup/es/util/ReferenceSet.js","../node_modules/yup/es/schema.js","../node_modules/yup/es/mixed.js","../node_modules/yup/es/util/isAbsent.js","../node_modules/yup/es/boolean.js","../node_modules/yup/es/string.js","../node_modules/yup/es/number.js","../node_modules/yup/es/util/isodate.js","../node_modules/yup/es/date.js","../node_modules/yup/es/util/sortFields.js","../node_modules/yup/es/util/sortByKeyOrder.js","../node_modules/yup/es/object.js","../node_modules/yup/es/array.js","../node_modules/yup/es/Lazy.js","components/Registration/Modals/MessageModal.tsx","api/models/registration/BarcodeType.ts","api/models/InsuranceRelationshipId.ts","formatters/ConvertToDate.ts","components/Registration/DonorForm.tsx","components/Registration/Donor.tsx","components/Registration/Demographics.tsx","components/Registration/Modals/UnableFindEmployeeIdModal.tsx","components/Registration/Modals/AccountCustomMessage.tsx","components/Registration/Modals/AccountMessageModal.tsx","components/Registration/Modals/ExpiredBarcode.tsx","components/Registration/PhysicalMeasurementsForm.tsx","components/Registration/Questions.tsx","components/Registration/StepIndication.tsx","components/Registration/Instruction.tsx","components/Registration/Modals/UnsupportedStateModal.tsx","api/models/registration/KitType.ts","components/Registration/ShippingInstructions/BluestoneInstruction.tsx","components/Registration/ShippingInstructions/DbsInstruction.tsx","components/Registration/ShippingInstructions/HealthConfirmInstruction.tsx","components/Registration/ShippingInstructions/SalivaInstruction.tsx","components/Registration/ShippingInstructions/SerumInstruction.tsx","components/Registration/ShippingInstructions/WellnessDbsInstruction.tsx","components/Registration/ShippingInstruction.tsx","components/Registration/Activation.tsx","components/Registration/Shipping.tsx","formatters/FormatPhone.ts","components/Registration/Finish.tsx","components/Registration/Modals/Postpone.tsx","components/Registration.tsx","components/ClientOrder/OrderForm.tsx","components/ClientOrder/Order.tsx","api/ClientOrder.ts","components/LanguageSelector.tsx","components/ClientOrder/ParticipantForm.tsx","components/ClientOrder/Participant.tsx","components/ClientOrder.tsx","components/ClientOrder/Verification.tsx","components/FAQ.tsx","App.tsx","serviceWorkerRegistration.js","index.tsx"],"sourcesContent":["function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\n\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}\n\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n\nfunction isElementScaled(element) {\n  var rect = element.getBoundingClientRect();\n  var scaleX = rect.width / element.offsetWidth || 1;\n  var scaleY = rect.height / element.offsetHeight || 1;\n  return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n\n  var isOffsetParentAnElement = isHTMLElement(offsetParent);\n  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n  var documentElement = getDocumentElement(offsetParent);\n  var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n  var scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  var offsets = {\n    x: 0,\n    y: 0\n  };\n\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n    isScrollParent(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n\n    if (isHTMLElement(offsetParent)) {\n      offsets = getBoundingClientRect(offsetParent, true);\n      offsets.x += offsetParent.clientLeft;\n      offsets.y += offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n\n  return {\n    x: rect.left + scroll.scrollLeft - offsets.x,\n    y: rect.top + scroll.scrollTop - offsets.y,\n    width: rect.width,\n    height: rect.height\n  };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n  if (node === getWindow(node) || !isHTMLElement(node)) {\n    return getWindowScroll(node);\n  } else {\n    return getHTMLElementScroll(node);\n  }\n}","export default function getHTMLElementScroll(element) {\n  return {\n    scrollLeft: element.scrollLeft,\n    scrollTop: element.scrollTop\n  };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n  var map = new Map();\n  var visited = new Set();\n  var result = [];\n  modifiers.forEach(function (modifier) {\n    map.set(modifier.name, modifier);\n  }); // On visiting object, check for its dependencies and visit them recursively\n\n  function sort(modifier) {\n    visited.add(modifier.name);\n    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n    requires.forEach(function (dep) {\n      if (!visited.has(dep)) {\n        var depModifier = map.get(dep);\n\n        if (depModifier) {\n          sort(depModifier);\n        }\n      }\n    });\n    result.push(modifier);\n  }\n\n  modifiers.forEach(function (modifier) {\n    if (!visited.has(modifier.name)) {\n      // check for visited object\n      sort(modifier);\n    }\n  });\n  return result;\n}\n\nexport default function orderModifiers(modifiers) {\n  // order based on dependencies\n  var orderedModifiers = order(modifiers); // order based on phase\n\n  return modifierPhases.reduce(function (acc, phase) {\n    return acc.concat(orderedModifiers.filter(function (modifier) {\n      return modifier.phase === phase;\n    }));\n  }, []);\n}","export default function debounce(fn) {\n  var pending;\n  return function () {\n    if (!pending) {\n      pending = new Promise(function (resolve) {\n        Promise.resolve().then(function () {\n          pending = undefined;\n          resolve(fn());\n        });\n      });\n    }\n\n    return pending;\n  };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n  placement: 'bottom',\n  modifiers: [],\n  strategy: 'absolute'\n};\n\nfunction areValidElements() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return !args.some(function (element) {\n    return !(element && typeof element.getBoundingClientRect === 'function');\n  });\n}\n\nexport function popperGenerator(generatorOptions) {\n  if (generatorOptions === void 0) {\n    generatorOptions = {};\n  }\n\n  var _generatorOptions = generatorOptions,\n      _generatorOptions$def = _generatorOptions.defaultModifiers,\n      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n      _generatorOptions$def2 = _generatorOptions.defaultOptions,\n      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n  return function createPopper(reference, popper, options) {\n    if (options === void 0) {\n      options = defaultOptions;\n    }\n\n    var state = {\n      placement: 'bottom',\n      orderedModifiers: [],\n      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n      modifiersData: {},\n      elements: {\n        reference: reference,\n        popper: popper\n      },\n      attributes: {},\n      styles: {}\n    };\n    var effectCleanupFns = [];\n    var isDestroyed = false;\n    var instance = {\n      state: state,\n      setOptions: function setOptions(setOptionsAction) {\n        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n        cleanupModifierEffects();\n        state.options = Object.assign({}, defaultOptions, state.options, options);\n        state.scrollParents = {\n          reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n          popper: listScrollParents(popper)\n        }; // Orders the modifiers based on their dependencies and `phase`\n        // properties\n\n        var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n        state.orderedModifiers = orderedModifiers.filter(function (m) {\n          return m.enabled;\n        }); // Validate the provided modifiers so that the consumer will get warned\n        // if one of the modifiers is invalid for any reason\n\n        if (process.env.NODE_ENV !== \"production\") {\n          var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n            var name = _ref.name;\n            return name;\n          });\n          validateModifiers(modifiers);\n\n          if (getBasePlacement(state.options.placement) === auto) {\n            var flipModifier = state.orderedModifiers.find(function (_ref2) {\n              var name = _ref2.name;\n              return name === 'flip';\n            });\n\n            if (!flipModifier) {\n              console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n            }\n          }\n\n          var _getComputedStyle = getComputedStyle(popper),\n              marginTop = _getComputedStyle.marginTop,\n              marginRight = _getComputedStyle.marginRight,\n              marginBottom = _getComputedStyle.marginBottom,\n              marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n          // cause bugs with positioning, so we'll warn the consumer\n\n\n          if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n            return parseFloat(margin);\n          })) {\n            console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n          }\n        }\n\n        runModifierEffects();\n        return instance.update();\n      },\n      // Sync update – it will always be executed, even if not necessary. This\n      // is useful for low frequency updates where sync behavior simplifies the\n      // logic.\n      // For high frequency updates (e.g. `resize` and `scroll` events), always\n      // prefer the async Popper#update method\n      forceUpdate: function forceUpdate() {\n        if (isDestroyed) {\n          return;\n        }\n\n        var _state$elements = state.elements,\n            reference = _state$elements.reference,\n            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n        // anymore\n\n        if (!areValidElements(reference, popper)) {\n          if (process.env.NODE_ENV !== \"production\") {\n            console.error(INVALID_ELEMENT_ERROR);\n          }\n\n          return;\n        } // Store the reference and popper rects to be read by modifiers\n\n\n        state.rects = {\n          reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n          popper: getLayoutRect(popper)\n        }; // Modifiers have the ability to reset the current update cycle. The\n        // most common use case for this is the `flip` modifier changing the\n        // placement, which then needs to re-run all the modifiers, because the\n        // logic was previously ran for the previous placement and is therefore\n        // stale/incorrect\n\n        state.reset = false;\n        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n        // is filled with the initial data specified by the modifier. This means\n        // it doesn't persist and is fresh on each update.\n        // To ensure persistent data, use `${name}#persistent`\n\n        state.orderedModifiers.forEach(function (modifier) {\n          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n        });\n        var __debug_loops__ = 0;\n\n        for (var index = 0; index < state.orderedModifiers.length; index++) {\n          if (process.env.NODE_ENV !== \"production\") {\n            __debug_loops__ += 1;\n\n            if (__debug_loops__ > 100) {\n              console.error(INFINITE_LOOP_ERROR);\n              break;\n            }\n          }\n\n          if (state.reset === true) {\n            state.reset = false;\n            index = -1;\n            continue;\n          }\n\n          var _state$orderedModifie = state.orderedModifiers[index],\n              fn = _state$orderedModifie.fn,\n              _state$orderedModifie2 = _state$orderedModifie.options,\n              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n              name = _state$orderedModifie.name;\n\n          if (typeof fn === 'function') {\n            state = fn({\n              state: state,\n              options: _options,\n              name: name,\n              instance: instance\n            }) || state;\n          }\n        }\n      },\n      // Async and optimistically optimized update – it will not be executed if\n      // not necessary (debounced to run at most once-per-tick)\n      update: debounce(function () {\n        return new Promise(function (resolve) {\n          instance.forceUpdate();\n          resolve(state);\n        });\n      }),\n      destroy: function destroy() {\n        cleanupModifierEffects();\n        isDestroyed = true;\n      }\n    };\n\n    if (!areValidElements(reference, popper)) {\n      if (process.env.NODE_ENV !== \"production\") {\n        console.error(INVALID_ELEMENT_ERROR);\n      }\n\n      return instance;\n    }\n\n    instance.setOptions(options).then(function (state) {\n      if (!isDestroyed && options.onFirstUpdate) {\n        options.onFirstUpdate(state);\n      }\n    }); // Modifiers have the ability to execute arbitrary code before the first\n    // update cycle runs. They will be executed in the same order as the update\n    // cycle. This is useful when a modifier adds some persistent data that\n    // other modifiers need to use, but the modifier is run after the dependent\n    // one.\n\n    function runModifierEffects() {\n      state.orderedModifiers.forEach(function (_ref3) {\n        var name = _ref3.name,\n            _ref3$options = _ref3.options,\n            options = _ref3$options === void 0 ? {} : _ref3$options,\n            effect = _ref3.effect;\n\n        if (typeof effect === 'function') {\n          var cleanupFn = effect({\n            state: state,\n            name: name,\n            instance: instance,\n            options: options\n          });\n\n          var noopFn = function noopFn() {};\n\n          effectCleanupFns.push(cleanupFn || noopFn);\n        }\n      });\n    }\n\n    function cleanupModifierEffects() {\n      effectCleanupFns.forEach(function (fn) {\n        return fn();\n      });\n      effectCleanupFns = [];\n    }\n\n    return instance;\n  };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n  var merged = modifiers.reduce(function (merged, current) {\n    var existing = merged[current.name];\n    merged[current.name] = existing ? Object.assign({}, existing, current, {\n      options: Object.assign({}, existing.options, current.options),\n      data: Object.assign({}, existing.data, current.data)\n    }) : current;\n    return merged;\n  }, {}); // IE11 does not support Object.values\n\n  return Object.keys(merged).map(function (key) {\n    return merged[key];\n  });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n  if (parent.contains(child)) {\n    return true;\n  } // then fallback to custom implementation with Shadow DOM support\n  else if (rootNode && isShadowRoot(rootNode)) {\n      var next = child;\n\n      do {\n        if (next && parent.isSameNode(next)) {\n          return true;\n        } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n        next = next.parentNode || next.host;\n      } while (next);\n    } // Give up, the result is false\n\n\n  return false;\n}","// import { isHTMLElement } from './instanceOf';\nexport default function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars\nincludeScale) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n\n  var rect = element.getBoundingClientRect();\n  var scaleX = 1;\n  var scaleY = 1; // FIXME:\n  // `offsetWidth` returns an integer while `getBoundingClientRect`\n  // returns a float. This results in `scaleX` or `scaleY` being\n  // non-1 when it should be for elements that aren't a full pixel in\n  // width or height.\n  // if (isHTMLElement(element) && includeScale) {\n  //   const offsetHeight = element.offsetHeight;\n  //   const offsetWidth = element.offsetWidth;\n  //   // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n  //   // Fallback to 1 in case both values are `0`\n  //   if (offsetWidth > 0) {\n  //     scaleX = rect.width / offsetWidth || 1;\n  //   }\n  //   if (offsetHeight > 0) {\n  //     scaleY = rect.height / offsetHeight || 1;\n  //   }\n  // }\n\n  return {\n    width: rect.width / scaleX,\n    height: rect.height / scaleY,\n    top: rect.top / scaleY,\n    right: rect.right / scaleX,\n    bottom: rect.bottom / scaleY,\n    left: rect.left / scaleX,\n    x: rect.left / scaleX,\n    y: rect.top / scaleY\n  };\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n  // $FlowFixMe[incompatible-return]: assume body is always available\n  return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n  element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n  var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n  // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n  var width = element.offsetWidth;\n  var height = element.offsetHeight;\n\n  if (Math.abs(clientRect.width - width) <= 1) {\n    width = clientRect.width;\n  }\n\n  if (Math.abs(clientRect.height - height) <= 1) {\n    height = clientRect.height;\n  }\n\n  return {\n    x: element.offsetLeft,\n    y: element.offsetTop,\n    width: width,\n    height: height\n  };\n}","export default function getNodeName(element) {\n  return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n  return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n  if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n  getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n\n  return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n  var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n  var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n  if (isIE && isHTMLElement(element)) {\n    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n    var elementCss = getComputedStyle(element);\n\n    if (elementCss.position === 'fixed') {\n      return null;\n    }\n  }\n\n  var currentNode = getParentNode(element);\n\n  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n    var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n    // create a containing block.\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n      return currentNode;\n    } else {\n      currentNode = currentNode.parentNode;\n    }\n  }\n\n  return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n  var window = getWindow(element);\n  var offsetParent = getTrueOffsetParent(element);\n\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n    offsetParent = getTrueOffsetParent(offsetParent);\n  }\n\n  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n    return window;\n  }\n\n  return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n  if (getNodeName(element) === 'html') {\n    return element;\n  }\n\n  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n    // $FlowFixMe[incompatible-return]\n    // $FlowFixMe[prop-missing]\n    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n    element.parentNode || ( // DOM Element detected\n    isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n    // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n    getDocumentElement(element) // fallback\n\n  );\n}","export default function getWindow(node) {\n  if (node == null) {\n    return window;\n  }\n\n  if (node.toString() !== '[object Window]') {\n    var ownerDocument = node.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView || window : window;\n  }\n\n  return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n  var win = getWindow(node);\n  var scrollLeft = win.pageXOffset;\n  var scrollTop = win.pageYOffset;\n  return {\n    scrollLeft: scrollLeft,\n    scrollTop: scrollTop\n  };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  // Popper 1 is broken in this case and never had a bug report so let's assume\n  // it's not an issue. I don't think anyone ever specifies width on <html>\n  // anyway.\n  // Browsers where the left scrollbar doesn't cause an issue report `0` for\n  // this (e.g. Edge 2019, IE11, Safari)\n  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n  var OwnElement = getWindow(node).Element;\n  return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n  var OwnElement = getWindow(node).HTMLElement;\n  return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n  // IE 11 has no ShadowRoot\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n\n  var OwnElement = getWindow(node).ShadowRoot;\n  return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n  // Firefox wants us to check `-x` and `-y` variations as well\n  var _getComputedStyle = getComputedStyle(element),\n      overflow = _getComputedStyle.overflow,\n      overflowX = _getComputedStyle.overflowX,\n      overflowY = _getComputedStyle.overflowY;\n\n  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n  if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n    // $FlowFixMe[incompatible-return]: assume body is always available\n    return node.ownerDocument.body;\n  }\n\n  if (isHTMLElement(node) && isScrollParent(node)) {\n    return node;\n  }\n\n  return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n  var _element$ownerDocumen;\n\n  if (list === void 0) {\n    list = [];\n  }\n\n  var scrollParent = getScrollParent(element);\n  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n  var win = getWindow(scrollParent);\n  var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n  var updatedList = list.concat(target);\n  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n  updatedList.concat(listScrollParents(getParentNode(target)));\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n  return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n  return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : padding;\n  return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n  var _state$modifiersData$;\n\n  var state = _ref.state,\n      name = _ref.name,\n      options = _ref.options;\n  var arrowElement = state.elements.arrow;\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var basePlacement = getBasePlacement(state.placement);\n  var axis = getMainAxisFromPlacement(basePlacement);\n  var isVertical = [left, right].indexOf(basePlacement) >= 0;\n  var len = isVertical ? 'height' : 'width';\n\n  if (!arrowElement || !popperOffsets) {\n    return;\n  }\n\n  var paddingObject = toPaddingObject(options.padding, state);\n  var arrowRect = getLayoutRect(arrowElement);\n  var minProp = axis === 'y' ? top : left;\n  var maxProp = axis === 'y' ? bottom : right;\n  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n  var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n  var arrowOffsetParent = getOffsetParent(arrowElement);\n  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n  // outside of the popper bounds\n\n  var min = paddingObject[minProp];\n  var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n  var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n  var axisProp = axis;\n  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options;\n  var _options$element = options.element,\n      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n  if (arrowElement == null) {\n    return;\n  } // CSS selector\n\n\n  if (typeof arrowElement === 'string') {\n    arrowElement = state.elements.popper.querySelector(arrowElement);\n\n    if (!arrowElement) {\n      return;\n    }\n  }\n\n  if (process.env.NODE_ENV !== \"production\") {\n    if (!isHTMLElement(arrowElement)) {\n      console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n    }\n  }\n\n  if (!contains(state.elements.popper, arrowElement)) {\n    if (process.env.NODE_ENV !== \"production\") {\n      console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n    }\n\n    return;\n  }\n\n  state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'arrow',\n  enabled: true,\n  phase: 'main',\n  fn: arrow,\n  effect: effect,\n  requires: ['popperOffsets'],\n  requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n  top: 'auto',\n  right: 'auto',\n  bottom: 'auto',\n  left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n  var x = _ref.x,\n      y = _ref.y;\n  var win = window;\n  var dpr = win.devicePixelRatio || 1;\n  return {\n    x: round(round(x * dpr) / dpr) || 0,\n    y: round(round(y * dpr) / dpr) || 0\n  };\n}\n\nexport function mapToStyles(_ref2) {\n  var _Object$assign2;\n\n  var popper = _ref2.popper,\n      popperRect = _ref2.popperRect,\n      placement = _ref2.placement,\n      variation = _ref2.variation,\n      offsets = _ref2.offsets,\n      position = _ref2.position,\n      gpuAcceleration = _ref2.gpuAcceleration,\n      adaptive = _ref2.adaptive,\n      roundOffsets = _ref2.roundOffsets;\n\n  var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n      _ref3$x = _ref3.x,\n      x = _ref3$x === void 0 ? 0 : _ref3$x,\n      _ref3$y = _ref3.y,\n      y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n  var hasX = offsets.hasOwnProperty('x');\n  var hasY = offsets.hasOwnProperty('y');\n  var sideX = left;\n  var sideY = top;\n  var win = window;\n\n  if (adaptive) {\n    var offsetParent = getOffsetParent(popper);\n    var heightProp = 'clientHeight';\n    var widthProp = 'clientWidth';\n\n    if (offsetParent === getWindow(popper)) {\n      offsetParent = getDocumentElement(popper);\n\n      if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n        heightProp = 'scrollHeight';\n        widthProp = 'scrollWidth';\n      }\n    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n    offsetParent = offsetParent;\n\n    if (placement === top || (placement === left || placement === right) && variation === end) {\n      sideY = bottom; // $FlowFixMe[prop-missing]\n\n      y -= offsetParent[heightProp] - popperRect.height;\n      y *= gpuAcceleration ? 1 : -1;\n    }\n\n    if (placement === left || (placement === top || placement === bottom) && variation === end) {\n      sideX = right; // $FlowFixMe[prop-missing]\n\n      x -= offsetParent[widthProp] - popperRect.width;\n      x *= gpuAcceleration ? 1 : -1;\n    }\n  }\n\n  var commonStyles = Object.assign({\n    position: position\n  }, adaptive && unsetSides);\n\n  if (gpuAcceleration) {\n    var _Object$assign;\n\n    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n  }\n\n  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n  var state = _ref4.state,\n      options = _ref4.options;\n  var _options$gpuAccelerat = options.gpuAcceleration,\n      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n      _options$adaptive = options.adaptive,\n      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n      _options$roundOffsets = options.roundOffsets,\n      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n  if (process.env.NODE_ENV !== \"production\") {\n    var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n    if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n      return transitionProperty.indexOf(property) >= 0;\n    })) {\n      console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n    }\n  }\n\n  var commonStyles = {\n    placement: getBasePlacement(state.placement),\n    variation: getVariation(state.placement),\n    popper: state.elements.popper,\n    popperRect: state.rects.popper,\n    gpuAcceleration: gpuAcceleration\n  };\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.popperOffsets,\n      position: state.options.strategy,\n      adaptive: adaptive,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  if (state.modifiersData.arrow != null) {\n    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n      offsets: state.modifiersData.arrow,\n      position: 'absolute',\n      adaptive: false,\n      roundOffsets: roundOffsets\n    })));\n  }\n\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-placement': state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'computeStyles',\n  enabled: true,\n  phase: 'beforeWrite',\n  fn: computeStyles,\n  data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n  passive: true\n};\n\nfunction effect(_ref) {\n  var state = _ref.state,\n      instance = _ref.instance,\n      options = _ref.options;\n  var _options$scroll = options.scroll,\n      scroll = _options$scroll === void 0 ? true : _options$scroll,\n      _options$resize = options.resize,\n      resize = _options$resize === void 0 ? true : _options$resize;\n  var window = getWindow(state.elements.popper);\n  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n  if (scroll) {\n    scrollParents.forEach(function (scrollParent) {\n      scrollParent.addEventListener('scroll', instance.update, passive);\n    });\n  }\n\n  if (resize) {\n    window.addEventListener('resize', instance.update, passive);\n  }\n\n  return function () {\n    if (scroll) {\n      scrollParents.forEach(function (scrollParent) {\n        scrollParent.removeEventListener('scroll', instance.update, passive);\n      });\n    }\n\n    if (resize) {\n      window.removeEventListener('resize', instance.update, passive);\n    }\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'eventListeners',\n  enabled: true,\n  phase: 'write',\n  fn: function fn() {},\n  effect: effect,\n  data: {}\n};","var hash = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}","var hash = {\n  start: 'end',\n  end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n  return placement.replace(/start|end/g, function (matched) {\n    return hash[matched];\n  });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n  if (getBasePlacement(placement) === auto) {\n    return [];\n  }\n\n  var oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n\n  if (state.modifiersData[name]._skip) {\n    return;\n  }\n\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n      specifiedFallbackPlacements = options.fallbackPlacements,\n      padding = options.padding,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      _options$flipVariatio = options.flipVariations,\n      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n      allowedAutoPlacements = options.allowedAutoPlacements;\n  var preferredPlacement = state.options.placement;\n  var basePlacement = getBasePlacement(preferredPlacement);\n  var isBasePlacement = basePlacement === preferredPlacement;\n  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n    return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding,\n      flipVariations: flipVariations,\n      allowedAutoPlacements: allowedAutoPlacements\n    }) : placement);\n  }, []);\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var checksMap = new Map();\n  var makeFallbackChecks = true;\n  var firstFittingPlacement = placements[0];\n\n  for (var i = 0; i < placements.length; i++) {\n    var placement = placements[i];\n\n    var _basePlacement = getBasePlacement(placement);\n\n    var isStartVariation = getVariation(placement) === start;\n    var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n    var len = isVertical ? 'width' : 'height';\n    var overflow = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      altBoundary: altBoundary,\n      padding: padding\n    });\n    var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n    if (referenceRect[len] > popperRect[len]) {\n      mainVariationSide = getOppositePlacement(mainVariationSide);\n    }\n\n    var altVariationSide = getOppositePlacement(mainVariationSide);\n    var checks = [];\n\n    if (checkMainAxis) {\n      checks.push(overflow[_basePlacement] <= 0);\n    }\n\n    if (checkAltAxis) {\n      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n    }\n\n    if (checks.every(function (check) {\n      return check;\n    })) {\n      firstFittingPlacement = placement;\n      makeFallbackChecks = false;\n      break;\n    }\n\n    checksMap.set(placement, checks);\n  }\n\n  if (makeFallbackChecks) {\n    // `2` may be desired in some cases – research later\n    var numberOfChecks = flipVariations ? 3 : 1;\n\n    var _loop = function _loop(_i) {\n      var fittingPlacement = placements.find(function (placement) {\n        var checks = checksMap.get(placement);\n\n        if (checks) {\n          return checks.slice(0, _i).every(function (check) {\n            return check;\n          });\n        }\n      });\n\n      if (fittingPlacement) {\n        firstFittingPlacement = fittingPlacement;\n        return \"break\";\n      }\n    };\n\n    for (var _i = numberOfChecks; _i > 0; _i--) {\n      var _ret = _loop(_i);\n\n      if (_ret === \"break\") break;\n    }\n  }\n\n  if (state.placement !== firstFittingPlacement) {\n    state.modifiersData[name]._skip = true;\n    state.placement = firstFittingPlacement;\n    state.reset = true;\n  }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'flip',\n  enabled: true,\n  phase: 'main',\n  fn: flip,\n  requiresIfExists: ['offset'],\n  data: {\n    _skip: false\n  }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      placement = _options.placement,\n      boundary = _options.boundary,\n      rootBoundary = _options.rootBoundary,\n      padding = _options.padding,\n      flipVariations = _options.flipVariations,\n      _options$allowedAutoP = _options.allowedAutoPlacements,\n      allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n  var variation = getVariation(placement);\n  var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n    return getVariation(placement) === variation;\n  }) : basePlacements;\n  var allowedPlacements = placements.filter(function (placement) {\n    return allowedAutoPlacements.indexOf(placement) >= 0;\n  });\n\n  if (allowedPlacements.length === 0) {\n    allowedPlacements = placements;\n\n    if (process.env.NODE_ENV !== \"production\") {\n      console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n    }\n  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n  var overflows = allowedPlacements.reduce(function (acc, placement) {\n    acc[placement] = detectOverflow(state, {\n      placement: placement,\n      boundary: boundary,\n      rootBoundary: rootBoundary,\n      padding: padding\n    })[getBasePlacement(placement)];\n    return acc;\n  }, {});\n  return Object.keys(overflows).sort(function (a, b) {\n    return overflows[a] - overflows[b];\n  });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n  if (preventedOffsets === void 0) {\n    preventedOffsets = {\n      x: 0,\n      y: 0\n    };\n  }\n\n  return {\n    top: overflow.top - rect.height - preventedOffsets.y,\n    right: overflow.right - rect.width + preventedOffsets.x,\n    bottom: overflow.bottom - rect.height + preventedOffsets.y,\n    left: overflow.left - rect.width - preventedOffsets.x\n  };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n  return [top, right, bottom, left].some(function (side) {\n    return overflow[side] >= 0;\n  });\n}\n\nfunction hide(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var preventedOffsets = state.modifiersData.preventOverflow;\n  var referenceOverflow = detectOverflow(state, {\n    elementContext: 'reference'\n  });\n  var popperAltOverflow = detectOverflow(state, {\n    altBoundary: true\n  });\n  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n  state.modifiersData[name] = {\n    referenceClippingOffsets: referenceClippingOffsets,\n    popperEscapeOffsets: popperEscapeOffsets,\n    isReferenceHidden: isReferenceHidden,\n    hasPopperEscaped: hasPopperEscaped\n  };\n  state.attributes.popper = Object.assign({}, state.attributes.popper, {\n    'data-popper-reference-hidden': isReferenceHidden,\n    'data-popper-escaped': hasPopperEscaped\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'hide',\n  enabled: true,\n  phase: 'main',\n  requiresIfExists: ['preventOverflow'],\n  fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n  var basePlacement = getBasePlacement(placement);\n  var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n    placement: placement\n  })) : offset,\n      skidding = _ref[0],\n      distance = _ref[1];\n\n  skidding = skidding || 0;\n  distance = (distance || 0) * invertDistance;\n  return [left, right].indexOf(basePlacement) >= 0 ? {\n    x: distance,\n    y: skidding\n  } : {\n    x: skidding,\n    y: distance\n  };\n}\n\nfunction offset(_ref2) {\n  var state = _ref2.state,\n      options = _ref2.options,\n      name = _ref2.name;\n  var _options$offset = options.offset,\n      offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n  var data = placements.reduce(function (acc, placement) {\n    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n    return acc;\n  }, {});\n  var _data$state$placement = data[state.placement],\n      x = _data$state$placement.x,\n      y = _data$state$placement.y;\n\n  if (state.modifiersData.popperOffsets != null) {\n    state.modifiersData.popperOffsets.x += x;\n    state.modifiersData.popperOffsets.y += y;\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'offset',\n  enabled: true,\n  phase: 'main',\n  requires: ['popperOffsets'],\n  fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n  var state = _ref.state,\n      name = _ref.name;\n  // Offsets are the actual position the popper needs to have to be\n  // properly positioned near its reference element\n  // This is the most basic placement, and will be adjusted by\n  // the modifiers in the next step\n  state.modifiersData[name] = computeOffsets({\n    reference: state.rects.reference,\n    element: state.rects.popper,\n    strategy: 'absolute',\n    placement: state.placement\n  });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'popperOffsets',\n  enabled: true,\n  phase: 'read',\n  fn: popperOffsets,\n  data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n  var state = _ref.state,\n      options = _ref.options,\n      name = _ref.name;\n  var _options$mainAxis = options.mainAxis,\n      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n      _options$altAxis = options.altAxis,\n      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n      boundary = options.boundary,\n      rootBoundary = options.rootBoundary,\n      altBoundary = options.altBoundary,\n      padding = options.padding,\n      _options$tether = options.tether,\n      tether = _options$tether === void 0 ? true : _options$tether,\n      _options$tetherOffset = options.tetherOffset,\n      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n  var overflow = detectOverflow(state, {\n    boundary: boundary,\n    rootBoundary: rootBoundary,\n    padding: padding,\n    altBoundary: altBoundary\n  });\n  var basePlacement = getBasePlacement(state.placement);\n  var variation = getVariation(state.placement);\n  var isBasePlacement = !variation;\n  var mainAxis = getMainAxisFromPlacement(basePlacement);\n  var altAxis = getAltAxis(mainAxis);\n  var popperOffsets = state.modifiersData.popperOffsets;\n  var referenceRect = state.rects.reference;\n  var popperRect = state.rects.popper;\n  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n    placement: state.placement\n  })) : tetherOffset;\n  var data = {\n    x: 0,\n    y: 0\n  };\n\n  if (!popperOffsets) {\n    return;\n  }\n\n  if (checkMainAxis || checkAltAxis) {\n    var mainSide = mainAxis === 'y' ? top : left;\n    var altSide = mainAxis === 'y' ? bottom : right;\n    var len = mainAxis === 'y' ? 'height' : 'width';\n    var offset = popperOffsets[mainAxis];\n    var min = popperOffsets[mainAxis] + overflow[mainSide];\n    var max = popperOffsets[mainAxis] - overflow[altSide];\n    var additive = tether ? -popperRect[len] / 2 : 0;\n    var minLen = variation === start ? referenceRect[len] : popperRect[len];\n    var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n    // outside the reference bounds\n\n    var arrowElement = state.elements.arrow;\n    var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n      width: 0,\n      height: 0\n    };\n    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n    var arrowPaddingMin = arrowPaddingObject[mainSide];\n    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n    // to include its full size in the calculation. If the reference is small\n    // and near the edge of a boundary, the popper can overflow even if the\n    // reference is not overflowing as well (e.g. virtual elements with no\n    // width or height)\n\n    var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n    var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n    var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n    var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n    var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n    if (checkMainAxis) {\n      var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n      popperOffsets[mainAxis] = preventedOffset;\n      data[mainAxis] = preventedOffset - offset;\n    }\n\n    if (checkAltAxis) {\n      var _mainSide = mainAxis === 'x' ? top : left;\n\n      var _altSide = mainAxis === 'x' ? bottom : right;\n\n      var _offset = popperOffsets[altAxis];\n\n      var _min = _offset + overflow[_mainSide];\n\n      var _max = _offset - overflow[_altSide];\n\n      var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n      popperOffsets[altAxis] = _preventedOffset;\n      data[altAxis] = _preventedOffset - _offset;\n    }\n  }\n\n  state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'preventOverflow',\n  enabled: true,\n  phase: 'main',\n  fn: preventOverflow,\n  requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n  var reference = _ref.reference,\n      element = _ref.element,\n      placement = _ref.placement;\n  var basePlacement = placement ? getBasePlacement(placement) : null;\n  var variation = placement ? getVariation(placement) : null;\n  var commonX = reference.x + reference.width / 2 - element.width / 2;\n  var commonY = reference.y + reference.height / 2 - element.height / 2;\n  var offsets;\n\n  switch (basePlacement) {\n    case top:\n      offsets = {\n        x: commonX,\n        y: reference.y - element.height\n      };\n      break;\n\n    case bottom:\n      offsets = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n\n    case right:\n      offsets = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n\n    case left:\n      offsets = {\n        x: reference.x - element.width,\n        y: commonY\n      };\n      break;\n\n    default:\n      offsets = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n\n  var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n  if (mainAxis != null) {\n    var len = mainAxis === 'y' ? 'height' : 'width';\n\n    switch (variation) {\n      case start:\n        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n        break;\n\n      case end:\n        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n        break;\n\n      default:\n    }\n  }\n\n  return offsets;\n}","export default function rectToClientRect(rect) {\n  return Object.assign({}, rect, {\n    left: rect.x,\n    top: rect.y,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n  var rect = getBoundingClientRect(element);\n  rect.top = rect.top + element.clientTop;\n  rect.left = rect.left + element.clientLeft;\n  rect.bottom = rect.top + element.clientHeight;\n  rect.right = rect.left + element.clientWidth;\n  rect.width = element.clientWidth;\n  rect.height = element.clientHeight;\n  rect.x = rect.left;\n  rect.y = rect.top;\n  return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n  return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n  var clippingParents = listScrollParents(getParentNode(element));\n  var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n  var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n  if (!isElement(clipperElement)) {\n    return [];\n  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n  return clippingParents.filter(function (clippingParent) {\n    return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n  });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n  var firstClippingParent = clippingParents[0];\n  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n    var rect = getClientRectFromMixedType(element, clippingParent);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromMixedType(element, firstClippingParent));\n  clippingRect.width = clippingRect.right - clippingRect.left;\n  clippingRect.height = clippingRect.bottom - clippingRect.top;\n  clippingRect.x = clippingRect.left;\n  clippingRect.y = clippingRect.top;\n  return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n  var win = getWindow(element);\n  var html = getDocumentElement(element);\n  var visualViewport = win.visualViewport;\n  var width = html.clientWidth;\n  var height = html.clientHeight;\n  var x = 0;\n  var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n  // can be obscured underneath it.\n  // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n  // if it isn't open, so if this isn't available, the popper will be detected\n  // to overflow the bottom of the screen too early.\n\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n    // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n    // errors due to floating point numbers, so we need to check precision.\n    // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n    // Feature detection fails in mobile emulation mode in Chrome.\n    // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n    // 0.001\n    // Fallback here: \"Not Safari\" userAgent\n\n    if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x + getWindowScrollBarX(element),\n    y: y\n  };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n  var _element$ownerDocumen;\n\n  var html = getDocumentElement(element);\n  var winScroll = getWindowScroll(element);\n  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n  var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n  var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n  var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n  var y = -winScroll.scrollTop;\n\n  if (getComputedStyle(body || html).direction === 'rtl') {\n    x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n  }\n\n  return {\n    width: width,\n    height: height,\n    x: x,\n    y: y\n  };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      _options$placement = _options.placement,\n      placement = _options$placement === void 0 ? state.placement : _options$placement,\n      _options$boundary = _options.boundary,\n      boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n      _options$rootBoundary = _options.rootBoundary,\n      rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n      _options$elementConte = _options.elementContext,\n      elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n      _options$altBoundary = _options.altBoundary,\n      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n      _options$padding = _options.padding,\n      padding = _options$padding === void 0 ? 0 : _options$padding;\n  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n  var altContext = elementContext === popper ? reference : popper;\n  var popperRect = state.rects.popper;\n  var element = state.elements[altBoundary ? altContext : elementContext];\n  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n  var referenceClientRect = getBoundingClientRect(state.elements.reference);\n  var popperOffsets = computeOffsets({\n    reference: referenceClientRect,\n    element: popperRect,\n    strategy: 'absolute',\n    placement: placement\n  });\n  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n  var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n  // 0 or negative = within the clipping rect\n\n  var overflowOffsets = {\n    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n    right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n  };\n  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n  if (elementContext === popper && offsetData) {\n    var offset = offsetData[placement];\n    Object.keys(overflowOffsets).forEach(function (key) {\n      var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n      var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n      overflowOffsets[key] += offset[axis] * multiply;\n    });\n  }\n\n  return overflowOffsets;\n}","export default function expandToHashMap(value, keys) {\n  return keys.reduce(function (hashMap, key) {\n    hashMap[key] = value;\n    return hashMap;\n  }, {});\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n  return placement.split('-')[0];\n}","export default function getFreshSideObject() {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0\n  };\n}","export default function getMainAxisFromPlacement(placement) {\n  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export default function getVariation(placement) {\n  return placement.split('-')[1];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n  return Object.assign({}, getFreshSideObject(), paddingObject);\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n  return mathMax(min, mathMin(value, max));\n}","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n\t(global = global || self, factory(global.ReactStripe = {}, global.React));\n}(this, (function (exports, React) { 'use strict';\n\n\tReact = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\tvar ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n\tfunction emptyFunction() {}\n\n\tfunction emptyFunctionWithReset() {}\n\n\temptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n\tvar factoryWithThrowingShims = function () {\n\t  function shim(props, propName, componentName, location, propFullName, secret) {\n\t    if (secret === ReactPropTypesSecret_1) {\n\t      // It is still safe when called from React.\n\t      return;\n\t    }\n\n\t    var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n\t    err.name = 'Invariant Violation';\n\t    throw err;\n\t  }\n\t  shim.isRequired = shim;\n\n\t  function getShim() {\n\t    return shim;\n\t  }\n\t  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n\t  var ReactPropTypes = {\n\t    array: shim,\n\t    bool: shim,\n\t    func: shim,\n\t    number: shim,\n\t    object: shim,\n\t    string: shim,\n\t    symbol: shim,\n\t    any: shim,\n\t    arrayOf: getShim,\n\t    element: shim,\n\t    elementType: shim,\n\t    instanceOf: getShim,\n\t    node: shim,\n\t    objectOf: getShim,\n\t    oneOf: getShim,\n\t    oneOfType: getShim,\n\t    shape: getShim,\n\t    exact: getShim,\n\t    checkPropTypes: emptyFunctionWithReset,\n\t    resetWarningCache: emptyFunction\n\t  };\n\t  ReactPropTypes.PropTypes = ReactPropTypes;\n\t  return ReactPropTypes;\n\t};\n\n\tvar propTypes = createCommonjsModule(function (module) {\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t{\n\t  // By explicitly using `prop-types` you are opting into new production behavior.\n\t  // http://fb.me/prop-types-in-prod\n\t  module.exports = factoryWithThrowingShims();\n\t}\n\t});\n\n\tfunction ownKeys(object, enumerableOnly) {\n\t  var keys = Object.keys(object);\n\n\t  if (Object.getOwnPropertySymbols) {\n\t    var symbols = Object.getOwnPropertySymbols(object);\n\n\t    if (enumerableOnly) {\n\t      symbols = symbols.filter(function (sym) {\n\t        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n\t      });\n\t    }\n\n\t    keys.push.apply(keys, symbols);\n\t  }\n\n\t  return keys;\n\t}\n\n\tfunction _objectSpread2(target) {\n\t  for (var i = 1; i < arguments.length; i++) {\n\t    var source = arguments[i] != null ? arguments[i] : {};\n\n\t    if (i % 2) {\n\t      ownKeys(Object(source), true).forEach(function (key) {\n\t        _defineProperty(target, key, source[key]);\n\t      });\n\t    } else if (Object.getOwnPropertyDescriptors) {\n\t      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n\t    } else {\n\t      ownKeys(Object(source)).forEach(function (key) {\n\t        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n\t      });\n\t    }\n\t  }\n\n\t  return target;\n\t}\n\n\tfunction _typeof(obj) {\n\t  \"@babel/helpers - typeof\";\n\n\t  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n\t    _typeof = function (obj) {\n\t      return typeof obj;\n\t    };\n\t  } else {\n\t    _typeof = function (obj) {\n\t      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n\t    };\n\t  }\n\n\t  return _typeof(obj);\n\t}\n\n\tfunction _defineProperty(obj, key, value) {\n\t  if (key in obj) {\n\t    Object.defineProperty(obj, key, {\n\t      value: value,\n\t      enumerable: true,\n\t      configurable: true,\n\t      writable: true\n\t    });\n\t  } else {\n\t    obj[key] = value;\n\t  }\n\n\t  return obj;\n\t}\n\n\tfunction _slicedToArray(arr, i) {\n\t  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n\t}\n\n\tfunction _arrayWithHoles(arr) {\n\t  if (Array.isArray(arr)) return arr;\n\t}\n\n\tfunction _iterableToArrayLimit(arr, i) {\n\t  var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n\t  if (_i == null) return;\n\t  var _arr = [];\n\t  var _n = true;\n\t  var _d = false;\n\n\t  var _s, _e;\n\n\t  try {\n\t    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n\t      _arr.push(_s.value);\n\n\t      if (i && _arr.length === i) break;\n\t    }\n\t  } catch (err) {\n\t    _d = true;\n\t    _e = err;\n\t  } finally {\n\t    try {\n\t      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n\t    } finally {\n\t      if (_d) throw _e;\n\t    }\n\t  }\n\n\t  return _arr;\n\t}\n\n\tfunction _unsupportedIterableToArray(o, minLen) {\n\t  if (!o) return;\n\t  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n\t  var n = Object.prototype.toString.call(o).slice(8, -1);\n\t  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n\t  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n\t  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n\t}\n\n\tfunction _arrayLikeToArray(arr, len) {\n\t  if (len == null || len > arr.length) len = arr.length;\n\n\t  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n\t  return arr2;\n\t}\n\n\tfunction _nonIterableRest() {\n\t  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t}\n\n\tvar usePrevious = function usePrevious(value) {\n\t  var ref = React.useRef(value);\n\t  React.useEffect(function () {\n\t    ref.current = value;\n\t  }, [value]);\n\t  return ref.current;\n\t};\n\n\tvar isUnknownObject = function isUnknownObject(raw) {\n\t  return raw !== null && _typeof(raw) === 'object';\n\t};\n\tvar isPromise = function isPromise(raw) {\n\t  return isUnknownObject(raw) && typeof raw.then === 'function';\n\t}; // We are using types to enforce the `stripe` prop in this lib,\n\t// but in an untyped integration `stripe` could be anything, so we need\n\t// to do some sanity validation to prevent type errors.\n\n\tvar isStripe = function isStripe(raw) {\n\t  return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n\t};\n\n\tvar PLAIN_OBJECT_STR = '[object Object]';\n\tvar isEqual = function isEqual(left, right) {\n\t  if (!isUnknownObject(left) || !isUnknownObject(right)) {\n\t    return left === right;\n\t  }\n\n\t  var leftArray = Array.isArray(left);\n\t  var rightArray = Array.isArray(right);\n\t  if (leftArray !== rightArray) return false;\n\t  var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n\t  var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n\t  if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n\t  // fallback to reference check.\n\n\t  if (!leftPlainObject && !leftArray) return left === right;\n\t  var leftKeys = Object.keys(left);\n\t  var rightKeys = Object.keys(right);\n\t  if (leftKeys.length !== rightKeys.length) return false;\n\t  var keySet = {};\n\n\t  for (var i = 0; i < leftKeys.length; i += 1) {\n\t    keySet[leftKeys[i]] = true;\n\t  }\n\n\t  for (var _i = 0; _i < rightKeys.length; _i += 1) {\n\t    keySet[rightKeys[_i]] = true;\n\t  }\n\n\t  var allKeys = Object.keys(keySet);\n\n\t  if (allKeys.length !== leftKeys.length) {\n\t    return false;\n\t  }\n\n\t  var l = left;\n\t  var r = right;\n\n\t  var pred = function pred(key) {\n\t    return isEqual(l[key], r[key]);\n\t  };\n\n\t  return allKeys.every(pred);\n\t};\n\n\tvar extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n\t  if (!isUnknownObject(options)) {\n\t    return null;\n\t  }\n\n\t  return Object.keys(options).reduce(function (newOptions, key) {\n\t    var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n\t    if (immutableKeys.includes(key)) {\n\t      if (isUpdated) {\n\t        console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n\t      }\n\n\t      return newOptions;\n\t    }\n\n\t    if (!isUpdated) {\n\t      return newOptions;\n\t    }\n\n\t    return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n\t  }, null);\n\t};\n\n\tvar INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n\t// integration `stripe` could be anything, so we need to do some sanity\n\t// validation to prevent type errors.\n\n\tvar validateStripe = function validateStripe(maybeStripe) {\n\t  if (maybeStripe === null || isStripe(maybeStripe)) {\n\t    return maybeStripe;\n\t  }\n\n\t  throw new Error(INVALID_STRIPE_ERROR);\n\t};\n\n\tvar parseStripeProp = function parseStripeProp(raw) {\n\t  if (isPromise(raw)) {\n\t    return {\n\t      tag: 'async',\n\t      stripePromise: Promise.resolve(raw).then(validateStripe)\n\t    };\n\t  }\n\n\t  var stripe = validateStripe(raw);\n\n\t  if (stripe === null) {\n\t    return {\n\t      tag: 'empty'\n\t    };\n\t  }\n\n\t  return {\n\t    tag: 'sync',\n\t    stripe: stripe\n\t  };\n\t};\n\n\tvar ElementsContext = /*#__PURE__*/React.createContext(null);\n\tElementsContext.displayName = 'ElementsContext';\n\tvar parseElementsContext = function parseElementsContext(ctx, useCase) {\n\t  if (!ctx) {\n\t    throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n\t  }\n\n\t  return ctx;\n\t};\n\t/**\n\t * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n\t * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n\t *\n\t * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n\t * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n\t * Pass the returned `Promise` to `Elements`.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n\t */\n\n\tvar Elements = function Elements(_ref) {\n\t  var rawStripeProp = _ref.stripe,\n\t      options = _ref.options,\n\t      children = _ref.children;\n\t  var parsed = React.useMemo(function () {\n\t    return parseStripeProp(rawStripeProp);\n\t  }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n\t  var _React$useState = React.useState(function () {\n\t    return {\n\t      stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n\t      elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n\t    };\n\t  }),\n\t      _React$useState2 = _slicedToArray(_React$useState, 2),\n\t      ctx = _React$useState2[0],\n\t      setContext = _React$useState2[1];\n\n\t  React.useEffect(function () {\n\t    var isMounted = true;\n\n\t    var safeSetContext = function safeSetContext(stripe) {\n\t      setContext(function (ctx) {\n\t        // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n\t        if (ctx.stripe) return ctx;\n\t        return {\n\t          stripe: stripe,\n\t          elements: stripe.elements(options)\n\t        };\n\t      });\n\t    }; // For an async stripePromise, store it in context once resolved\n\n\n\t    if (parsed.tag === 'async' && !ctx.stripe) {\n\t      parsed.stripePromise.then(function (stripe) {\n\t        if (stripe && isMounted) {\n\t          // Only update Elements context if the component is still mounted\n\t          // and stripe is not null. We allow stripe to be null to make\n\t          // handling SSR easier.\n\t          safeSetContext(stripe);\n\t        }\n\t      });\n\t    } else if (parsed.tag === 'sync' && !ctx.stripe) {\n\t      // Or, handle a sync stripe instance going from null -> populated\n\t      safeSetContext(parsed.stripe);\n\t    }\n\n\t    return function () {\n\t      isMounted = false;\n\t    };\n\t  }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n\t  var prevStripe = usePrevious(rawStripeProp);\n\t  React.useEffect(function () {\n\t    if (prevStripe !== null && prevStripe !== rawStripeProp) {\n\t      console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n\t    }\n\t  }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n\t  var prevOptions = usePrevious(options);\n\t  React.useEffect(function () {\n\t    if (!ctx.elements) {\n\t      return;\n\t    }\n\n\t    var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n\t    if (updates) {\n\t      ctx.elements.update(updates);\n\t    }\n\t  }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n\t  React.useEffect(function () {\n\t    var anyStripe = ctx.stripe;\n\n\t    if (!anyStripe || !anyStripe._registerWrapper || !anyStripe.registerAppInfo) {\n\t      return;\n\t    }\n\n\t    anyStripe._registerWrapper({\n\t      name: 'react-stripe-js',\n\t      version: \"1.8.1\"\n\t    });\n\n\t    anyStripe.registerAppInfo({\n\t      name: 'react-stripe-js',\n\t      version: \"1.8.1\",\n\t      url: 'https://stripe.com/docs/stripe-js/react'\n\t    });\n\t  }, [ctx.stripe]);\n\t  return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n\t    value: ctx\n\t  }, children);\n\t};\n\tElements.propTypes = {\n\t  stripe: propTypes.any,\n\t  options: propTypes.object\n\t};\n\tvar useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n\t  var ctx = React.useContext(ElementsContext);\n\t  return parseElementsContext(ctx, useCaseMessage);\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n\t */\n\n\tvar useElements = function useElements() {\n\t  var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n\t      elements = _useElementsContextWi.elements;\n\n\t  return elements;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n\t */\n\n\tvar useStripe = function useStripe() {\n\t  var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n\t      stripe = _useElementsContextWi2.stripe;\n\n\t  return stripe;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n\t */\n\n\tvar ElementsConsumer = function ElementsConsumer(_ref2) {\n\t  var children = _ref2.children;\n\t  var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n\t  return children(ctx);\n\t};\n\tElementsConsumer.propTypes = {\n\t  children: propTypes.func.isRequired\n\t};\n\n\tvar useCallbackReference = function useCallbackReference(cb) {\n\t  var ref = React.useRef(cb);\n\t  React.useEffect(function () {\n\t    ref.current = cb;\n\t  }, [cb]);\n\t  return function () {\n\t    if (ref.current) {\n\t      ref.current.apply(ref, arguments);\n\t    }\n\t  };\n\t};\n\n\tvar noop = function noop() {};\n\n\tvar capitalized = function capitalized(str) {\n\t  return str.charAt(0).toUpperCase() + str.slice(1);\n\t};\n\n\tvar createElementComponent = function createElementComponent(type, isServer) {\n\t  var displayName = \"\".concat(capitalized(type), \"Element\");\n\n\t  var ClientElement = function ClientElement(_ref) {\n\t    var id = _ref.id,\n\t        className = _ref.className,\n\t        _ref$options = _ref.options,\n\t        options = _ref$options === void 0 ? {} : _ref$options,\n\t        _ref$onBlur = _ref.onBlur,\n\t        onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,\n\t        _ref$onFocus = _ref.onFocus,\n\t        onFocus = _ref$onFocus === void 0 ? noop : _ref$onFocus,\n\t        _ref$onReady = _ref.onReady,\n\t        onReady = _ref$onReady === void 0 ? noop : _ref$onReady,\n\t        _ref$onChange = _ref.onChange,\n\t        onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n\t        _ref$onEscape = _ref.onEscape,\n\t        onEscape = _ref$onEscape === void 0 ? noop : _ref$onEscape,\n\t        _ref$onClick = _ref.onClick,\n\t        onClick = _ref$onClick === void 0 ? noop : _ref$onClick;\n\n\t    var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n\t        elements = _useElementsContextWi.elements;\n\n\t    var elementRef = React.useRef(null);\n\t    var domNode = React.useRef(null);\n\t    var callOnReady = useCallbackReference(onReady);\n\t    var callOnBlur = useCallbackReference(onBlur);\n\t    var callOnFocus = useCallbackReference(onFocus);\n\t    var callOnClick = useCallbackReference(onClick);\n\t    var callOnChange = useCallbackReference(onChange);\n\t    var callOnEscape = useCallbackReference(onEscape);\n\t    React.useLayoutEffect(function () {\n\t      if (elementRef.current == null && elements && domNode.current != null) {\n\t        var element = elements.create(type, options);\n\t        elementRef.current = element;\n\t        element.mount(domNode.current);\n\t        element.on('ready', function () {\n\t          return callOnReady(element);\n\t        });\n\t        element.on('change', callOnChange);\n\t        element.on('blur', callOnBlur);\n\t        element.on('focus', callOnFocus);\n\t        element.on('escape', callOnEscape); // Users can pass an onClick prop on any Element component\n\t        // just as they could listen for the `click` event on any Element,\n\t        // but only the PaymentRequestButton will actually trigger the event.\n\n\t        element.on('click', callOnClick);\n\t      }\n\t    });\n\t    var prevOptions = usePrevious(options);\n\t    React.useEffect(function () {\n\t      if (!elementRef.current) {\n\t        return;\n\t      }\n\n\t      var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n\t      if (updates) {\n\t        elementRef.current.update(updates);\n\t      }\n\t    }, [options, prevOptions]);\n\t    React.useLayoutEffect(function () {\n\t      return function () {\n\t        if (elementRef.current) {\n\t          elementRef.current.destroy();\n\t          elementRef.current = null;\n\t        }\n\t      };\n\t    }, []);\n\t    return /*#__PURE__*/React.createElement(\"div\", {\n\t      id: id,\n\t      className: className,\n\t      ref: domNode\n\t    });\n\t  }; // Only render the Element wrapper in a server environment.\n\n\n\t  var ServerElement = function ServerElement(props) {\n\t    // Validate that we are in the right context by calling useElementsContextWithUseCase.\n\t    useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n\t    var id = props.id,\n\t        className = props.className;\n\t    return /*#__PURE__*/React.createElement(\"div\", {\n\t      id: id,\n\t      className: className\n\t    });\n\t  };\n\n\t  var Element = isServer ? ServerElement : ClientElement;\n\t  Element.propTypes = {\n\t    id: propTypes.string,\n\t    className: propTypes.string,\n\t    onChange: propTypes.func,\n\t    onBlur: propTypes.func,\n\t    onFocus: propTypes.func,\n\t    onReady: propTypes.func,\n\t    onClick: propTypes.func,\n\t    options: propTypes.object\n\t  };\n\t  Element.displayName = displayName;\n\t  Element.__elementType = type;\n\t  return Element;\n\t};\n\n\tvar isServer = typeof window === 'undefined';\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardElement = createElementComponent('card', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardNumberElement = createElementComponent('cardNumber', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardExpiryElement = createElementComponent('cardExpiry', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardCvcElement = createElementComponent('cardCvc', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar FpxBankElement = createElementComponent('fpxBank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar IbanElement = createElementComponent('iban', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar IdealBankElement = createElementComponent('idealBank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar P24BankElement = createElementComponent('p24Bank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar EpsBankElement = createElementComponent('epsBank', isServer);\n\tvar PaymentElement = createElementComponent('payment', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n\texports.AffirmMessageElement = AffirmMessageElement;\n\texports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n\texports.AuBankAccountElement = AuBankAccountElement;\n\texports.CardCvcElement = CardCvcElement;\n\texports.CardElement = CardElement;\n\texports.CardExpiryElement = CardExpiryElement;\n\texports.CardNumberElement = CardNumberElement;\n\texports.Elements = Elements;\n\texports.ElementsConsumer = ElementsConsumer;\n\texports.EpsBankElement = EpsBankElement;\n\texports.FpxBankElement = FpxBankElement;\n\texports.IbanElement = IbanElement;\n\texports.IdealBankElement = IdealBankElement;\n\texports.LinkAuthenticationElement = LinkAuthenticationElement;\n\texports.P24BankElement = P24BankElement;\n\texports.PaymentElement = PaymentElement;\n\texports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n\texports.ShippingAddressElement = ShippingAddressElement;\n\texports.useElements = useElements;\n\texports.useStripe = useStripe;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/*!\n * ApexCharts v3.41.1\n * (c) 2018-2023 ApexCharts\n * Released under the MIT License.\n */\n\"use strict\";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;i<arguments.length;i++){var a=null!=arguments[i]?arguments[i]:{};i%2?t(Object(a),!0).forEach((function(t){o(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(t){return i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i(t)}function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function s(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function r(t,e,i){return e&&s(t.prototype,e),i&&s(t,i),t}function o(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function h(t,e){return h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},h(t,e)}function c(t,e){if(e&&(\"object\"==typeof e||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t)}function d(t){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,a=l(t);if(e){var s=l(this).constructor;i=Reflect.construct(a,arguments,s)}else i=a.apply(this,arguments);return c(this,i)}}function g(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null==i)return;var a,s,r=[],o=!0,n=!1;try{for(i=i.call(t);!(o=(a=i.next()).done)&&(r.push(a.value),!e||r.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{o||null==i.return||i.return()}finally{if(n)throw s}}return r}(t,e)||p(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function u(t){return function(t){if(Array.isArray(t))return f(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function p(t,e){if(t){if(\"string\"==typeof t)return f(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===i&&t.constructor&&(i=t.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(t):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?f(t,e):void 0}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i<e;i++)a[i]=t[i];return a}var x=function(){function t(){a(this,t)}return r(t,[{key:\"shadeRGBColor\",value:function(t,e){var i=e.split(\",\"),a=t<0?0:255,s=t<0?-1*t:t,r=parseInt(i[0].slice(4),10),o=parseInt(i[1],10),n=parseInt(i[2],10);return\"rgb(\"+(Math.round((a-r)*s)+r)+\",\"+(Math.round((a-o)*s)+o)+\",\"+(Math.round((a-n)*s)+n)+\")\"}},{key:\"shadeHexColor\",value:function(t,e){var i=parseInt(e.slice(1),16),a=t<0?0:255,s=t<0?-1*t:t,r=i>>16,o=i>>8&255,n=255&i;return\"#\"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:\"shadeColor\",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:\"bind\",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:\"isObject\",value:function(t){return t&&\"object\"===i(t)&&!Array.isArray(t)&&null!=t}},{key:\"is\",value:function(t,e){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}},{key:\"listToArray\",value:function(t){var e,i=[];for(e=0;e<t.length;e++)i[e]=t[e];return i}},{key:\"extend\",value:function(t,e){var i=this;\"function\"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i<arguments.length;i++){var a=arguments[i];if(null!=a)for(var s in a)a.hasOwnProperty(s)&&(e[s]=a[s])}return e});var a=Object.assign({},t);return this.isObject(t)&&this.isObject(e)&&Object.keys(e).forEach((function(s){i.isObject(e[s])&&s in t?a[s]=i.extend(t[s],e[s]):Object.assign(a,o({},s,e[s]))})),a}},{key:\"extendArray\",value:function(e,i){var a=[];return e.map((function(e){a.push(t.extend(i,e))})),e=a}},{key:\"monthMod\",value:function(t){return t%12}},{key:\"clone\",value:function(e){if(t.is(\"Array\",e)){for(var a=[],s=0;s<e.length;s++)a[s]=this.clone(e[s]);return a}if(t.is(\"Null\",e))return null;if(t.is(\"Date\",e))return e;if(\"object\"===i(e)){var r={};for(var o in e)e.hasOwnProperty(o)&&(r[o]=this.clone(e[o]));return r}return e}},{key:\"log10\",value:function(t){return Math.log(t)/Math.LN10}},{key:\"roundToBase10\",value:function(t){return Math.pow(10,Math.floor(Math.log10(t)))}},{key:\"roundToBase\",value:function(t,e){return Math.pow(e,Math.floor(Math.log(t)/Math.log(e)))}},{key:\"parseNumber\",value:function(t){return null===t?t:parseFloat(t)}},{key:\"stripNumber\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return parseFloat(t.toPrecision(e))}},{key:\"randomId\",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:\"noExponents\",value:function(t){var e=String(t).split(/[eE]/);if(1===e.length)return e[0];var i=\"\",a=t<0?\"-\":\"\",s=e[0].replace(\".\",\"\"),r=Number(e[1])+1;if(r<0){for(i=a+\"0.\";r++;)i+=\"0\";return i+s.replace(/^-/,\"\")}for(r-=s.length;r--;)i+=\"0\";return s+i}},{key:\"getDimensions\",value:function(t){var e=getComputedStyle(t,null),i=t.clientHeight,a=t.clientWidth;return i-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),[a-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),i]}},{key:\"getBoundingClientRect\",value:function(t){var e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}},{key:\"getLargestStringFromArr\",value:function(t){return t.reduce((function(t,e){return Array.isArray(e)&&(e=e.reduce((function(t,e){return t.length>e.length?t:e}))),t.length>e.length?t:e}),0)}},{key:\"hexToRgba\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"#999999\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;\"#\"!==t.substring(0,1)&&(t=\"#999999\");var i=t.replace(\"#\",\"\");i=i.match(new RegExp(\"(.{\"+i.length/3+\"})\",\"g\"));for(var a=0;a<i.length;a++)i[a]=parseInt(1===i[a].length?i[a]+i[a]:i[a],16);return void 0!==e&&i.push(e),\"rgba(\"+i.join(\",\")+\")\"}},{key:\"getOpacityFromRGBA\",value:function(t){return parseFloat(t.replace(/^.*,(.+)\\)/,\"$1\"))}},{key:\"rgb2hex\",value:function(t){return(t=t.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i))&&4===t.length?\"#\"+(\"0\"+parseInt(t[1],10).toString(16)).slice(-2)+(\"0\"+parseInt(t[2],10).toString(16)).slice(-2)+(\"0\"+parseInt(t[3],10).toString(16)).slice(-2):\"\"}},{key:\"isColorHex\",value:function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t)}},{key:\"getPolygonPos\",value:function(t,e){for(var i=[],a=2*Math.PI/e,s=0;s<e;s++){var r={};r.x=t*Math.sin(s*a),r.y=-t*Math.cos(s*a),i.push(r)}return i}},{key:\"polarToCartesian\",value:function(t,e,i,a){var s=(a-90)*Math.PI/180;return{x:t+i*Math.cos(s),y:e+i*Math.sin(s)}}},{key:\"escapeString\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"x\",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\\=?;:'\",.<>{}[\\]\\\\/]/gi,e)}},{key:\"negToZero\",value:function(t){return t<0?0:t}},{key:\"moveIndexInArray\",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:\"extractNumber\",value:function(t){return parseFloat(t.replace(/[^\\d.]*/g,\"\"))}},{key:\"findAncestor\",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:\"setELstyles\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:\"isNumber\",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:\"isFloat\",value:function(t){return Number(t)===t&&t%1!=0}},{key:\"isSafari\",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:\"isFirefox\",value:function(){return navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}},{key:\"isIE11\",value:function(){if(-1!==window.navigator.userAgent.indexOf(\"MSIE\")||window.navigator.appVersion.indexOf(\"Trident/\")>-1)return!0}},{key:\"isIE\",value:function(){var t=window.navigator.userAgent,e=t.indexOf(\"MSIE \");if(e>0)return parseInt(t.substring(e+5,t.indexOf(\".\",e)),10);if(t.indexOf(\"Trident/\")>0){var i=t.indexOf(\"rv:\");return parseInt(t.substring(i+3,t.indexOf(\".\",i)),10)}var a=t.indexOf(\"Edge/\");return a>0&&parseInt(t.substring(a+5,t.indexOf(\".\",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:\"setEasingFunctions\",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case\"linear\":t=\"-\";break;case\"easein\":t=\"<\";break;case\"easeout\":t=\">\";break;case\"easeinout\":default:t=\"<>\";break;case\"swing\":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case\"bounce\":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case\"elastic\":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:\"animateLine\",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:\"animateMarker\",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:\"animateCircle\",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:\"animateRect\",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:\"animatePathsGradually\",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&\"bar\"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,\"line\"!==h.config.chart.type||h.globals.comboCharts?s:\"stroke\",r,o,n,l*c)}},{key:\"showDelayedElements\",value:function(){this.w.globals.delayedElements.forEach((function(t){var e=t.el;e.classList.remove(\"apexcharts-element-hidden\"),e.classList.add(\"apexcharts-hidden-element-shown\")}))}},{key:\"animationCompleted\",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),\"function\"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:\"morphSVG\",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr(\"pathFrom\")),r||(r=t.attr(\"pathTo\"));var c=function(t){return\"radar\"===h.config.chart.type&&(o=1),\"M 0 \".concat(h.globals.gridHeight)};(!s||s.indexOf(\"undefined\")>-1||s.indexOf(\"NaN\")>-1)&&(s=c()),(!r||r.indexOf(\"undefined\")>-1||r.indexOf(\"NaN\")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):\"none\"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getDefaultFilter\",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size(\"120%\",\"180%\",\"-5%\",\"-40%\"),\"none\"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addNormalFilter\",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains(\"apexcharts-marker\")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addLightenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"addDarkenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"applyFilter\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case\"none\":this.addNormalFilter(t,e);break;case\"lighten\":this.addLightenFilter(t,e,{intensity:a});break;case\"darken\":this.addDarkenFilter(t,e,{intensity:a})}}},{key:\"addShadow\",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,\"in\").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:\"dropShadow\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&\"radialBar\"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)),t}},{key:\"setSelectionFilter\",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute(\"selected\",!0);var s=a.config.states.active.filter;\"none\"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:\"_scaleFilterSize\",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:\"200%\",height:\"200%\",x:\"-50%\",y:\"-50%\"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"roundPathCorners\",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf(\"NaN\")>-1&&(t=\"\");var o=t.split(/[,\\s]/).reduce((function(t,e){var i=e.match(\"([a-zA-Z])(.+)\");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;\"Z\"==o[o.length-1][0]&&o[0].length>2&&(h=[\"L\",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c<o.length;c++){var d=n[n.length-1],g=o[c],u=g==h?o[1]:o[c+1];if(u&&d&&d.length>2&&\"L\"==g[0]&&u.length>2&&\"L\"==u[0]){var p,f,x=r(d),b=r(g),v=r(u);p=i(b,x,e),f=i(b,v,e),s(g,p),g.origPoint=b,n.push(g);var m=a(p,b,.5),y=a(b,f,.5),w=[\"C\",m.x,m.y,y.x,y.y,f.x,f.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push([\"Z\"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(\" \")+\" \"}),\"\")}},{key:\"drawLine\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"#a8a8a8\",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:\"butt\";return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,\"stroke-dasharray\":r,\"stroke-width\":o,\"stroke-linecap\":n})}},{key:\"drawRect\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"#fefefe\",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,\"stroke-width\":null!==n?n:0,stroke:null!==l?l:\"none\",\"stroke-dasharray\":h}),c.node.setAttribute(\"fill\",r),c}},{key:\"drawPolygon\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#e1e1e1\",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"none\";return this.w.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,\"stroke-width\":i})}},{key:\"drawCircle\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t<0&&(t=0);var i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:\"drawPath\",value:function(t){var e=t.d,i=void 0===e?\"\":e,a=t.stroke,s=void 0===a?\"#a8a8a8\":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,p=void 0===u?null:u,f=t.strokeDashArray,x=void 0===f?0:f,b=this.w;return null===p&&(p=b.config.stroke.lineCap),(i.indexOf(\"undefined\")>-1||i.indexOf(\"NaN\")>-1)&&(i=\"M 0 \".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,\"fill-opacity\":h,stroke:s,\"stroke-opacity\":d,\"stroke-linecap\":p,\"stroke-width\":o,\"stroke-dasharray\":x,class:g})}},{key:\"group\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:\"move\",value:function(t,e){var i=[\"M\",t,e].join(\" \");return i}},{key:\"line\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[\" L\",t,e].join(\" \"):\"H\"===i?a=[\" H\",t].join(\" \"):\"V\"===i&&(a=[\" V\",e].join(\" \")),a}},{key:\"curve\",value:function(t,e,i,a,s,r){var o=[\"C\",t,e,i,a,s,r].join(\" \");return o}},{key:\"quadraticCurve\",value:function(t,e,i,a){return[\"Q\",t,e,i,a].join(\" \")}},{key:\"arc\",value:function(t,e,i,a,s,r,o){var n=\"A\";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(n=\"a\");var l=[n,t,e,i,a,s,r,o].join(\" \");return l}},{key:\"renderPaths\",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,p=t.className,f=t.shouldClipToGrid,x=void 0===f||f,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,I=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);I?i=r:(i=o,A.globals.animationEnded=!0);var T=A.config.stroke.dashArray,M=0;M=Array.isArray(T)?T[s]:A.config.stroke.dashArray;var X=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:p,strokeLinecap:h,strokeDashArray:M});if(X.attr(\"index\",s),x&&X.attr({\"clip-path\":\"url(#gridRectMask\".concat(A.globals.cuid,\")\")}),\"none\"!==A.config.states.normal.filter.type)S.getDefaultFilter(X,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var z=A.config.chart.dropShadow;S.dropShadow(X,z,s)}y&&(X.node.addEventListener(\"mouseenter\",this.pathMouseEnter.bind(this,X)),X.node.addEventListener(\"mouseleave\",this.pathMouseLeave.bind(this,X)),X.node.addEventListener(\"mousedown\",this.pathMouseDown.bind(this,X))),X.attr({pathTo:o,pathFrom:r});var E={el:X,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&I&&C.animatePathsGradually(e(e({},E),{},{speed:u})),X}},{key:\"drawPattern\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"#a8a8a8\",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,(function(r){\"horizontalLines\"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):\"verticalLines\"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):\"slantedLines\"===t?r.line(0,0,e,i).stroke({color:a,width:s}):\"squares\"===t?r.rect(e,i).fill(\"none\").stroke({color:a,width:s}):\"circles\"===t&&r.circle(e).fill(\"none\").stroke({color:a,width:s})}))}},{key:\"drawGradient\",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf(\"#\")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf(\"#\")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,p=void 0!==n[3]?n[3]/100:null);var f=!(\"donut\"!==c.config.chart.type&&\"pie\"!==c.config.chart.type&&\"polarArea\"!==c.config.chart.type&&\"bubble\"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(f?\"radial\":\"linear\",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(f?\"radial\":\"linear\",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),f){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;\"bubble\"!==c.config.chart.type?r.attr({gradientUnits:\"userSpaceOnUse\",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else\"vertical\"===t?r.from(0,0).to(0,1):\"diagonal\"===t?r.from(0,0).to(1,1):\"horizontal\"===t?r.from(0,1).to(1,1):\"diagonal2\"===t&&r.from(1,0).to(0,1);return r}},{key:\"getTextBasedOnMaxWidth\",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i<r.width?e.slice(0,n-3)+\"...\":e}},{key:\"drawText\",value:function(t){var i=this,a=t.x,s=t.y,r=t.text,o=t.textAnchor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.foreColor,d=t.opacity,g=t.maxWidth,u=t.cssClass,p=void 0===u?\"\":u,f=t.isPlainText,x=void 0===f||f,b=this.w;void 0===r&&(r=\"\");var v=r;o||(o=\"start\"),c&&c.length||(c=b.config.chart.foreColor),l=l||b.config.chart.fontFamily,h=h||\"regular\";var m,y={maxWidth:g,fontSize:n=n||\"11px\",fontFamily:l};return Array.isArray(r)?m=b.globals.dom.Paper.text((function(t){for(var a=0;a<r.length;a++)v=r[a],g&&(v=i.getTextBasedOnMaxWidth(e({text:r[a]},y))),0===a?t.tspan(v):t.tspan(v).newLine()})):(g&&(v=this.getTextBasedOnMaxWidth(e({text:r},y))),m=x?b.globals.dom.Paper.plain(r):b.globals.dom.Paper.text((function(t){return t.tspan(v)}))),m.attr({x:a,y:s,\"text-anchor\":o,\"dominant-baseline\":\"auto\",\"font-size\":n,\"font-family\":l,\"font-weight\":h,fill:c,class:\"apexcharts-text \"+p}),m.node.style.fontFamily=l,m.node.style.opacity=d,m}},{key:\"drawMarker\",value:function(t,e,i){t=t||0;var a=i.pSize||0,s=null;if(\"square\"===i.shape||\"rect\"===i.shape){var r=void 0===i.pRadius?a/2:i.pRadius;null!==e&&a||(a=0,r=0);var o=1.2*a+r,n=this.drawRect(o,o,o,o,r);n.attr({x:t-o/2,y:e-o/2,cx:t,cy:e,class:i.class?i.class:\"\",fill:i.pointFillColor,\"fill-opacity\":i.pointFillOpacity?i.pointFillOpacity:1,stroke:i.pointStrokeColor,\"stroke-width\":i.pointStrokeWidth?i.pointStrokeWidth:0,\"stroke-opacity\":i.pointStrokeOpacity?i.pointStrokeOpacity:1}),s=n}else\"circle\"!==i.shape&&i.shape||(x.isNumber(e)||(a=0,e=0),s=this.drawCircle(a,{cx:t,cy:e,class:i.class?i.class:\"\",stroke:i.pointStrokeColor,fill:i.pointFillColor,\"fill-opacity\":i.pointFillOpacity?i.pointFillOpacity:1,\"stroke-width\":i.pointStrokeWidth?i.pointStrokeWidth:0,\"stroke-opacity\":i.pointStrokeOpacity?i.pointStrokeOpacity:1}));return s}},{key:\"pathMouseEnter\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=parseInt(t.node.getAttribute(\"index\"),10),r=parseInt(t.node.getAttribute(\"j\"),10);if(\"function\"==typeof i.config.chart.events.dataPointMouseEnter&&i.config.chart.events.dataPointMouseEnter(e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}),this.ctx.events.fireEvent(\"dataPointMouseEnter\",[e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}]),(\"none\"===i.config.states.active.filter.type||\"true\"!==t.node.getAttribute(\"selected\"))&&\"none\"!==i.config.states.hover.filter.type&&!i.globals.isTouchDevice){var o=i.config.states.hover.filter;a.applyFilter(t,s,o.type,o.value)}}},{key:\"pathMouseLeave\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=parseInt(t.node.getAttribute(\"index\"),10),r=parseInt(t.node.getAttribute(\"j\"),10);\"function\"==typeof i.config.chart.events.dataPointMouseLeave&&i.config.chart.events.dataPointMouseLeave(e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}),this.ctx.events.fireEvent(\"dataPointMouseLeave\",[e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}]),\"none\"!==i.config.states.active.filter.type&&\"true\"===t.node.getAttribute(\"selected\")||\"none\"!==i.config.states.hover.filter.type&&a.getDefaultFilter(t,s)}},{key:\"pathMouseDown\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=parseInt(t.node.getAttribute(\"index\"),10),r=parseInt(t.node.getAttribute(\"j\"),10),o=\"false\";if(\"true\"===t.node.getAttribute(\"selected\")){if(t.node.setAttribute(\"selected\",\"false\"),i.globals.selectedDataPoints[s].indexOf(r)>-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(\".apexcharts-series path\").members,h=i.globals.dom.Paper.select(\".apexcharts-series circle, .apexcharts-series rect\").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute(\"selected\",\"false\"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute(\"selected\",\"true\"),o=\"true\",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(\"true\"===o){var d=i.config.states.active.filter;if(\"none\"!==d)a.applyFilter(t,s,d.type,d.value);else if(\"none\"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if(\"none\"!==i.config.states.active.filter.type)if(\"none\"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}\"function\"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent(\"dataPointSelection\",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:\"rotateAroundCenter\",value:function(t){var e={};return t&&\"function\"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:\"getTextRects\",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:\"start\",fontSize:e,fontFamily:i,foreColor:\"#fff\",opacity:0});a&&o.attr(\"transform\",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:\"placeTextWithEllipsis\",value:function(t,e,i){if(\"function\"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+\"...\");t.textContent=\".\"}}}],[{key:\"setAttrs\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getStackedSeriesTotals\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a<e.globals.series[e.globals.maxValsInArrayIndex].length;a++){for(var s=0,r=0;r<e.globals.series.length;r++)void 0!==e.globals.series[r][a]&&-1===t.indexOf(r)&&(s+=e.globals.series[r][a]);i.push(s)}return i}},{key:\"getSeriesTotalByIndex\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:\"isSeriesNull\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:\"seriesHaveSameValues\",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:\"getCategoryLabels\",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:\"getLargestSeries\",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:\"getLargestMarkerSize\",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:\"getSeriesTotals\",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;a<t.length;a++)i+=t[a];else i+=t;return i}))}},{key:\"getSeriesTotalsXRange\",value:function(t,e){var i=this.w;return i.globals.series.map((function(a,s){for(var r=0,o=0;o<a.length;o++)i.globals.seriesX[s][o]>t&&i.globals.seriesX[s][o]<e&&(r+=a[o]);return r}))}},{key:\"getPercentSeries\",value:function(){var t=this.w;t.globals.seriesPercent=t.globals.series.map((function(e,i){var a=[];if(Array.isArray(e))for(var s=0;s<e.length;s++){var r=t.globals.stackedSeriesTotals[s],o=0;r&&(o=100*e[s]/r),a.push(o)}else{var n=100*e/t.globals.seriesTotals.reduce((function(t,e){return t+e}),0);a.push(n)}return a}))}},{key:\"getCalculatedRatios\",value:function(){var t,e,i,a,s=this.w.globals,r=[],o=0,n=[],l=.1,h=0;if(s.yRange=[],s.isMultipleYAxis)for(var c=0;c<s.minYArr.length;c++)s.yRange.push(Math.abs(s.minYArr[c]-s.maxYArr[c])),n.push(0);else s.yRange.push(Math.abs(s.minY-s.maxY));s.xRange=Math.abs(s.maxX-s.minX),s.zRange=Math.abs(s.maxZ-s.minZ);for(var d=0;d<s.yRange.length;d++)r.push(s.yRange[d]/s.gridHeight);if(e=s.xRange/s.gridWidth,i=Math.abs(s.initialMaxX-s.initialMinX)/s.gridWidth,t=s.yRange/s.gridWidth,a=s.xRange/s.gridHeight,(o=s.zRange/s.gridHeight*16)||(o=1),s.minY!==Number.MIN_VALUE&&0!==Math.abs(s.minY)&&(s.hasNegs=!0),s.isMultipleYAxis){n=[];for(var g=0;g<r.length;g++)n.push(-s.minYArr[g]/r[g])}else n.push(-s.minY/r[0]),s.minY!==Number.MIN_VALUE&&0!==Math.abs(s.minY)&&(l=-s.minY/t,h=s.minX/e);return{yRatio:r,invertedYRatio:t,zRatio:o,xRatio:e,initialXRatio:i,invertedXRatio:a,baseLineInvertedY:l,baseLineY:n,baseLineX:h}}},{key:\"getLogSeries\",value:function(t){var e=this,i=this.w;return i.globals.seriesLog=t.map((function(t,a){return i.config.yaxis[a]&&i.config.yaxis[a].logarithmic?t.map((function(t){return null===t?null:e.getLogVal(i.config.yaxis[a].logBase,t,a)})):t})),i.globals.invalidLogScale?t:i.globals.seriesLog}},{key:\"getBaseLog\",value:function(t,e){return Math.log(e)/Math.log(t)}},{key:\"getLogVal\",value:function(t,e,i){if(0===e)return 0;var a=this.w,s=0===a.globals.minYArr[i]?-1:this.getBaseLog(t,a.globals.minYArr[i]),r=(0===a.globals.maxYArr[i]?0:this.getBaseLog(t,a.globals.maxYArr[i]))-s;return e<1?e/r:(this.getBaseLog(t,e)-s)/r}},{key:\"getLogYRatios\",value:function(t){var e=this,i=this.w,a=this.w.globals;return a.yLogRatio=t.slice(),a.logYRange=a.yRange.map((function(t,s){if(i.config.yaxis[s]&&e.w.config.yaxis[s].logarithmic){var r,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;return a.seriesLog.forEach((function(t,e){t.forEach((function(t){i.config.yaxis[e]&&i.config.yaxis[e].logarithmic&&(o=Math.max(t,o),n=Math.min(t,n))}))})),r=Math.pow(a.yRange[s],Math.abs(n-o)/a.yRange[s]),a.yLogRatio[s]=r/a.gridHeight,r}})),a.invalidLogScale?t.slice():a.yLogRatio}}],[{key:\"checkComboSeries\",value:function(t){var e=!1,i=0,a=0;return t.length&&void 0!==t[0].type&&t.forEach((function(t){\"bar\"!==t.type&&\"column\"!==t.type&&\"candlestick\"!==t.type&&\"boxPlot\"!==t.type||i++,void 0!==t.type&&a++})),a>0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:\"extendArrayProps\",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:\"setOrientations\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if(\"vertical\"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='\".concat(a,\"']\"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute(\"x\",parseFloat(s.getAttribute(\"x\"))-r.height+4),\"top\"===t.label.position?s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))+r.width):s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute(\"transform\",\"rotate(-90 \".concat(n,\" \").concat(l,\")\"))}}}},{key:\"addBackgroundToAnno\",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(\".apexcharts-grid\").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;\"vertical\"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:\"annotationsBackground\",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(a,\"']\"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener(\"mouseenter\",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener(\"mouseleave\",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener(\"click\",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,\"xaxis\")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,\"yaxis\")})),e.config.annotations.points.map((function(t,e){i(t,e,\"point\")}))}},{key:\"getY1Y2\",value:function(t,e){var i,a=\"y1\"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(\".apexcharts-yaxis-texts-g text:nth-child(\"+(r+1)+\")\");o&&(i=parseFloat(o.getAttribute(\"y\")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return\"string\"==typeof a&&a.indexOf(\"px\")>-1&&(i=parseFloat(a)),i}},{key:\"getX1X2\",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),\"x1\"===t&&\"string\"==typeof e.x&&e.x.indexOf(\"px\")>-1&&(o=parseFloat(e.x)),\"x2\"===t&&\"string\"==typeof e.x2&&e.x2.indexOf(\"px\")>-1&&(n=parseFloat(e.x2)),\"x1\"===t?o:n}},{key:\"getStringX\",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g text:nth-child(\"+(a+1)+\")\");return s&&(i=parseFloat(s.getAttribute(\"x\"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addXaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2(\"x1\",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2(\"x2\",t))<r){var h=r;r=a,a=h}var c=this.annoCtx.graphics.drawRect(r+t.offsetX,0+t.offsetY,a-r,s.globals.gridHeight+t.offsetY,0,t.fillColor,t.opacity,1,t.borderColor,n);c.node.classList.add(\"apexcharts-annotation-rect\"),c.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d=this.annoCtx.graphics.getTextRects(o,parseFloat(t.label.style.fontSize)),g=\"top\"===t.label.position?4:\"center\"===t.label.position?s.globals.gridHeight/2+(\"vertical\"===t.label.orientation?d.width/2:0):s.globals.gridHeight,u=this.annoCtx.graphics.drawText({x:r+t.label.offsetX,y:g+t.label.offsetY-(\"vertical\"===t.label.orientation?\"top\"===t.label.position?d.width/2-12:-d.width/2:0),text:o,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-xaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});u.attr({rel:i}),e.appendChild(u.node),this.annoCtx.helpers.setOrientations(t,i)}}},{key:\"drawXAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-xaxis-annotations\"});return e.config.annotations.xaxis.map((function(e,a){t.addXaxisAnnotation(e,i.node,a)})),i}}]),t}(),A=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addYaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=t.strokeDashArray,o=this.helpers.getY1Y2(\"y1\",t),n=t.label.text;if(null===t.y2||void 0===t.y2){var l=this.annoCtx.graphics.drawLine(0+t.offsetX,o+t.offsetY,this._getYAxisAnnotationWidth(t),o+t.offsetY,t.borderColor,r,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getY1Y2(\"y2\",t))>o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add(\"apexcharts-annotation-rect\"),c.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d=\"right\"===t.label.position?s.globals.gridWidth:\"center\"===t.label.position?s.globals.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-yaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});g.attr({rel:i}),e.appendChild(g.node)}},{key:\"_getYAxisAnnotationWidth\",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf(\"%\")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:\"drawYAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-yaxis-annotations\"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addPointAnnotation\",value:function(t,e,i){this.w;var a=this.helpers.getX1X2(\"x1\",t),s=this.helpers.getY1Y2(\"y1\",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:\"apexcharts-point-annotation-marker \".concat(t.marker.cssClass,\" \").concat(t.id?t.id:\"\")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:\"\",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-point-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations-custom-svg \"+t.customSVG.cssClass});h.attr({transform:\"translate(\".concat(a+t.customSVG.offsetX,\", \").concat(s+t.customSVG.offsetY,\")\")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:\".apexcharts-point-annotations\"})}t.mouseEnter&&o.node.addEventListener(\"mouseenter\",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener(\"mouseleave\",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener(\"click\",t.click.bind(this,t))}}},{key:\"drawPointAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations\"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:\"en\",options:{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],toolbar:{exportToSVG:\"Download SVG\",exportToPNG:\"Download PNG\",exportToCSV:\"Download CSV\",menu:\"Menu\",selection:\"Selection\",selectionZoom:\"Selection Zoom\",zoomIn:\"Zoom In\",zoomOut:\"Zoom Out\",pan:\"Panning\",reset:\"Reset Zoom\"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:\"11px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},formatter:void 0},axisBorder:{show:!1,color:\"#e0e0e0\",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:\"#e0e0e0\",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:\"11px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:\"front\",stroke:{color:\"#b6b6b6\",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:\"#fff\",strokeWidth:2,strokeColor:\"#333\",shape:\"circle\",offsetX:0,offsetY:0,radius:2,cssClass:\"\"},label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:\"100%\",yAxisIndex:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"end\",position:\"right\",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",orientation:\"vertical\",position:\"top\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:\"\",textAnchor:\"start\",foreColor:void 0,fontSize:\"13px\",fontFamily:void 0,fontWeight:400,appendTo:\".apexcharts-annotations\",backgroundColor:\"transparent\",borderColor:\"#c2c2c2\",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:\"init\",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:\"easeinout\",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:\"transparent\",locales:[C],defaultLocale:\"en\",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:\"#000\",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:\"#373d3f\",fontFamily:\"Helvetica, Arial, sans-serif\",height:\"auto\",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:\"x\",fill:{color:\"#24292e\",opacity:.1},stroke:{width:1,color:\"#24292e\",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},stacked:!1,stackType:\"normal\",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:\",\",headerCategory:\"category\",headerValue:\"value\",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:\"zoom\"},type:\"line\",width:\"100%\",zoom:{enabled:!0,type:\"x\",autoScaleYaxis:!1,zoomedArea:{fill:{color:\"#90CAF9\",opacity:.4},stroke:{color:\"#0D47A1\",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:\"origin\"},bar:{horizontal:!1,columnWidth:\"70%\",barHeight:\"70%\",distributed:!1,borderRadius:0,borderRadiusApplication:\"around\",borderRadiusWhenStacked:\"last\",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:\"top\",maxItems:100,hideOverflowingLabels:!0,orientation:\"horizontal\",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:\"#373d3f\",fontSize:\"12px\",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:\"#00B746\",downward:\"#EF403C\"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:\"#00E396\",lower:\"#008FFB\"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,dataLabels:{format:\"scale\"},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:\"50%\",background:\"transparent\",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:\"front\",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:\"#f2f2f2\",strokeWidth:\"97%\",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:\"14px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+\"%\"}},total:{show:!1,label:\"Total\",fontSize:\"16px\",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+\"%\"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:\"65%\",background:\"transparent\",labels:{show:!1,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:\"20px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:\"Total\",fontSize:\"16px\",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:\"#e8e8e8\"},spokes:{strokeWidth:1,connectorColors:\"#e8e8e8\"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:\"#e8e8e8\",connectorColors:\"#e8e8e8\",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:\"\"},textAnchor:\"middle\",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:\"12px\",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:\"#fff\",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:\"#fff\",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:\"squares\",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:\"#e0e0e0\",strokeDashArray:0,position:\"back\",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:\"bottom\",horizontalAlign:\"center\",inverseOrder:!1,fontSize:\"12px\",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:\"#fff\",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:\"#fff\",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:\"circle\",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:\"center\",verticalAlign:\"middle\",offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"14px\",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:\"none\",value:0}},hover:{filter:{type:\"lighten\",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:\"darken\",value:.5}}},title:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:\"14px\",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:\"12px\",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:\"smooth\",lineCap:\"butt\",width:2,colors:void 0,dashArray:0,fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:\"light\",cssClass:\"\",style:{fontSize:\"12px\",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:\"dd MMM\",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+\": \":\"\"}}},z:{formatter:void 0,title:\"Size: \"},marker:{show:!0,fillColors:void 0},items:{display:\"flex\"},fixed:{enabled:!1,position:\"topRight\",offsetX:0,offsetY:0}},xaxis:{type:\"category\",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:\"yyyy\",month:\"MMM 'yy\",day:\"dd MMM\",hour:\"HH:mm\",minute:\"HH:mm:ss\",second:\"HH:mm:ss\"}},group:{groups:[],style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"}},axisBorder:{show:!0,color:\"#e0e0e0\",width:\"100%\",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:\"#e0e0e0\",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:\"on\",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:\"bottom\",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"12px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},crosshairs:{show:!0,width:1,position:\"back\",opacity:.9,stroke:{color:\"#b6b6b6\",width:1,dashArray:3},fill:{type:\"solid\",color:\"#B1B9C4\",gradient:{colorFrom:\"#D8E3F0\",colorTo:\"#BED1E6\",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:\"12px\",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:\"light\",palette:\"palette1\",monochrome:{enabled:!1,color:\"#008FFB\",shadeTo:\"light\",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:\"drawAxesAnnotations\",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||\"scatter\"!==t.config.chart.type&&\"bubble\"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add(\"apexcharts-element-hidden\"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:\"drawImageAnnos\",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:\"drawTextAnnos\",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:\"addXaxisAnnotation\",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:\"addYaxisAnnotation\",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:\"addPointAnnotation\",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:\"addText\",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,p=t.borderRadius,f=t.borderColor,x=t.appendTo,b=void 0===x?\".apexcharts-annotations\":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||\"start\",fontSize:n||\"12px\",fontWeight:h||\"regular\",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),I=L.globals.dom.baseEl.querySelector(b);I&&I.appendChild(P.node);var T=P.bbox();if(s){var M=this.graphics.drawRect(T.x-m,T.y-C,T.width+m+w,T.height+A+C,p,d||\"transparent\",1,g,f,u);I.insertBefore(M.node,P.node)}}},{key:\"addImage\",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?\".apexcharts-annotations\":g,p=i.globals.dom.Paper.image(a);p.size(h,d).move(r,n);var f=i.globals.dom.baseEl.querySelector(u);return f&&f.appendChild(p.node),p}},{key:\"addXaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"xaxis\",contextMethod:i.addXaxisAnnotation}),i}},{key:\"addYaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"yaxis\",contextMethod:i.addYaxisAnnotation}),i}},{key:\"addPointAnnotationExternal\",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"point\",contextMethod:i.addPointAnnotation}),i}},{key:\"addAnnotationExternal\",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations\")),h=l.childNodes.length+1,c=new L,d=Object.assign({},\"xaxis\"===s?c.xAxisAnnotation:\"yaxis\"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case\"xaxis\":this.addXaxisAnnotation(g,l,h);break;case\"yaxis\":this.addYaxisAnnotation(g,l,h);break;case\"point\":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(h,\"']\")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:\"addAnnotation\",params:e}),a}},{key:\"clearAnnotations\",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations\");e.globals.memory.methodsToExec.map((function(t,i){\"addText\"!==t.label&&\"addAnnotation\"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:\"removeAnnotation\",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(\".\".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:\"isValidDate\",value:function(t){return!isNaN(this.parseDate(t))}},{key:\"getTimeStamp\",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:\"getDate\",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:\"parseDate\",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"));return i=this.getTimeStamp(i)}},{key:\"parseDateWithTimezone\",value:function(t){return Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"))}},{key:\"formatDate\",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=[\"\\0\"].concat(u(i.months)),r=[\"\\x01\"].concat(u(i.shortMonths)),o=[\"\\x02\"].concat(u(i.days)),n=[\"\\x03\"].concat(u(i.shortDays));function l(t,e){var i=t+\"\";for(e=e||2;i.length<e;)i=\"0\"+i;return i}var h=a?t.getUTCFullYear():t.getFullYear();e=(e=(e=e.replace(/(^|[^\\\\])yyyy+/g,\"$1\"+h)).replace(/(^|[^\\\\])yy/g,\"$1\"+h.toString().substr(2,2))).replace(/(^|[^\\\\])y/g,\"$1\"+h);var c=(a?t.getUTCMonth():t.getMonth())+1;e=(e=(e=(e=e.replace(/(^|[^\\\\])MMMM+/g,\"$1\"+s[0])).replace(/(^|[^\\\\])MMM/g,\"$1\"+r[0])).replace(/(^|[^\\\\])MM/g,\"$1\"+l(c))).replace(/(^|[^\\\\])M/g,\"$1\"+c);var d=a?t.getUTCDate():t.getDate();e=(e=(e=(e=e.replace(/(^|[^\\\\])dddd+/g,\"$1\"+o[0])).replace(/(^|[^\\\\])ddd/g,\"$1\"+n[0])).replace(/(^|[^\\\\])dd/g,\"$1\"+l(d))).replace(/(^|[^\\\\])d/g,\"$1\"+d);var g=a?t.getUTCHours():t.getHours(),p=g>12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\\\])HH+/g,\"$1\"+l(g))).replace(/(^|[^\\\\])H/g,\"$1\"+g)).replace(/(^|[^\\\\])hh+/g,\"$1\"+l(p))).replace(/(^|[^\\\\])h/g,\"$1\"+p);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\\\])mm+/g,\"$1\"+l(f))).replace(/(^|[^\\\\])m/g,\"$1\"+f);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\\\])ss+/g,\"$1\"+l(x))).replace(/(^|[^\\\\])s/g,\"$1\"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\\\])fff+/g,\"$1\"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\\\])ff/g,\"$1\"+l(b)),b=Math.round(b/10);var v=g<12?\"AM\":\"PM\";e=(e=(e=e.replace(/(^|[^\\\\])f/g,\"$1\"+b)).replace(/(^|[^\\\\])TT+/g,\"$1\"+v)).replace(/(^|[^\\\\])T/g,\"$1\"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\\\])tt+/g,\"$1\"+m)).replace(/(^|[^\\\\])t/g,\"$1\"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?\"Z\":y>0?\"+\":\"-\";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+\":\"+l(k)}e=e.replace(/(^|[^\\\\])K/g,\"$1\"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],\"g\"),o[A])).replace(new RegExp(n[0],\"g\"),n[A])).replace(new RegExp(s[0],\"g\"),s[c])).replace(new RegExp(r[0],\"g\"),r[c])).replace(/\\\\(.)/g,\"$1\")}},{key:\"getTimeUnitsfromTimestamp\",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,\"yyyy MM dd HH mm ss fff\").split(\" \"),n=this.formatDate(r,\"yyyy MM dd HH mm ss fff\").split(\" \");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:\"isLeapYear\",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:\"calculcateLastDaysOfMonth\",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:\"determineDaysOfYear\",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:\"determineRemainingDaysOfYear\",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:\"determineDaysOfMonths\",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),T=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat=\"dd MMM\"}return r(t,[{key:\"xLabelFormat\",value:function(t,e,i,a){var s=this.w;if(\"datetime\"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new I(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:\"defaultGeneralFormatter\",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:\"defaultYFormatter\",value:function(t,e,i){var a=this.w;return x.isNumber(t)&&(t=0!==a.globals.yValueDecimal?t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?t.toFixed(1):t.toFixed(0)),t}},{key:\"setLabelFormatters\",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(x.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&\"numeric\"===e.config.xaxis.type){if(x.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},\"function\"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,\"function\"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:\"heatmapLabelFormatters\",value:function(){var t=this.w;if(\"heatmap\"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),M=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:\"\",u=l.globals.ttKeyFormatter,p=l.config.tooltip.y.title.formatter,f={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};(\"function\"==typeof p&&(g=p(g,f)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||\"datetime\"===l.config.xaxis.type&&(d=new T(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(a).formatDate,w:l}));\"function\"==typeof u&&(d=u(d,f)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x=\"\",b=\"\",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if(\"datetime\"===l.config.xaxis.type){var m=new I(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},X=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='<span class=\"value start-value\">\\n  '.concat(s,'\\n  </span> <span class=\"separator\">-</span> <span class=\"value end-value\">\\n  ').concat(r,\"\\n  </span>\");return'<div class=\"apexcharts-tooltip-rangebar\"><div> <span class=\"series-name\" style=\"color: '+e+'\">'+(i||\"\")+'</span></div><div> <span class=\"category\">'+a+\": </span> \"+(t.w.globals.comboCharts?\"rangeArea\"===t.w.config.series[o].type||\"rangeBar\"===t.w.config.series[o].type?c:\"<span>\".concat(h,\"</span>\"):c)+\" </div></div>\"},z=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"hideYAxis\",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text=\"\",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:\"line\",value:function(){return{chart:{animations:{easing:\"swing\"}},dataLabels:{enabled:!1},stroke:{width:5,curve:\"straight\"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:\"sparkline\",value:function(t){this.hideYAxis();return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:\"bar\",value:function(){return{chart:{stacked:!1,animations:{easing:\"swing\"}},plotOptions:{bar:{dataLabels:{position:\"center\"}}},dataLabels:{style:{colors:[\"#fff\"]},background:{enabled:!1}},stroke:{width:0,lineCap:\"round\"},fill:{opacity:.85},legend:{markers:{shape:\"square\",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:\"between\",crosshairs:{width:\"barWidth\",position:\"back\",fill:{type:\"gradient\"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:\"funnel\",value:function(){return this.hideYAxis(),e(e({},this.bar()),{},{chart:{animations:{easing:\"linear\",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:\"around\",borderRadius:0,dataLabels:{position:\"center\"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:\"candlestick\",value:function(){var t=this;return{stroke:{width:1,colors:[\"#333\"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Open\",\"High\",\"\",\"Low\",\"Close\"],\"candlestick\")}},states:{active:{filter:{type:\"none\"}}},xaxis:{crosshairs:{width:1}}}}},{key:\"boxPlot\",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:[\"#24292e\"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Minimum\",\"Q1\",\"Median\",\"Q3\",\"Maximum\"],\"boxPlot\")}},markers:{size:5,strokeWidth:1,strokeColors:\"#111\"},xaxis:{crosshairs:{width:1}}}}},{key:\"rangeBar\",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:\"square\"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:\"center\"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?\"rangeBar\"===s.config.series[i].type||\"rangeArea\"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:[\"#fff\"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var i=M(e(e({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t):function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}},xaxis:{tickPlacement:\"between\",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:\"dumbbell\",value:function(t){var e,i;return null!==(e=t.plotOptions.bar)&&void 0!==e&&e.barHeight||(t.plotOptions.bar.barHeight=2),null!==(i=t.plotOptions.bar)&&void 0!==i&&i.columnWidth||(t.plotOptions.bar.columnWidth=2),t}},{key:\"area\",value:function(){return{stroke:{width:4,fill:{type:\"solid\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:\"gradient\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:\"rangeArea\",value:function(){return{stroke:{curve:\"straight\",width:0},fill:{type:\"solid\",opacity:.6},markers:{size:0},states:{hover:{filter:{type:\"none\"}},active:{filter:{type:\"none\"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}}}}},{key:\"brush\",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:\"selection\",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:\"stacked100\",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),\"bar\"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return\"number\"==typeof t&&t?t.toFixed(0)+\"%\":t}),t}},{key:\"stackedBars\",value:function(){var t=this.bar();return e(e({},t),{},{plotOptions:e(e({},t.plotOptions),{},{bar:e(e({},t.plotOptions.bar),{},{borderRadiusApplication:\"end\",borderRadiusWhenStacked:\"last\"})})})}},{key:\"convertCatToNumeric\",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:\"convertCatToNumericXaxis\",value:function(t,e,i){t.xaxis.type=\"numeric\",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||\"dataPoints\",t}},{key:\"bubble\",value:function(){return{dataLabels:{style:{colors:[\"#fff\"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:\"solid\",gradient:{shade:\"light\",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:\"scatter\",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:\"heatmap\",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:[\"#fff\"]}},stroke:{colors:[\"#fff\"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:\"top\",markers:{shape:\"square\",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:\"treemap\",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:[\"#fff\"]}},stroke:{show:!0,width:2,colors:[\"#fff\"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:\"pie\",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",stops:[0,100]}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"donut\",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"polarArea\",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"radar\",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:\"11px\"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:[\"#a8a8a8\"],fontSize:\"11px\"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:\"radialBar\",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:\"dark\",shadeIntensity:.4,inverseColors:!1,type:\"diagonal2\",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:\"right\"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:\"_getBoxTooltip\",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'<div class=\"apexcharts-custom-tooltip\">\\n          '.concat(t.config.series[e].name?t.config.series[e].name:\"series-\"+(e+1),\": <strong>\").concat(t.globals.series[e][i],\"</strong>\\n        </div>\"):'<div class=\"apexcharts-tooltip-box apexcharts-tooltip-'.concat(t.config.chart.type,'\">')+\"<div>\".concat(a[0],': <span class=\"value\">')+r+\"</span></div>\"+\"<div>\".concat(a[1],': <span class=\"value\">')+o+\"</span></div>\"+(n?\"<div>\".concat(a[2],': <span class=\"value\">')+n+\"</span></div>\":\"\")+\"<div>\".concat(a[3],': <span class=\"value\">')+l+\"</span></div>\"+\"<div>\".concat(a[4],': <span class=\"value\">')+h+\"</span></div></div>\"}}]),t}(),E=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"init\",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new z(a);this.chartType=a.chart.type,a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&\"object\"===i(a)){var l,h,c,d,g,u,p,f,b={};b=-1!==[\"line\",\"area\",\"bar\",\"candlestick\",\"boxPlot\",\"rangeBar\",\"rangeArea\",\"bubble\",\"scatter\",\"heatmap\",\"treemap\",\"pie\",\"polarArea\",\"donut\",\"radar\",\"radialBar\"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),null!==(l=a.plotOptions)&&void 0!==l&&null!==(h=l.bar)&&void 0!==h&&h.isFunnel&&(b=r.funnel()),a.chart.stacked&&\"bar\"===a.chart.type&&(b=r.stackedBars()),null!==(c=a.chart.brush)&&void 0!==c&&c.enabled&&(b=r.brush(b)),a.chart.stacked&&\"100%\"===a.chart.stackType&&(a=r.stacked100(a)),null!==(d=a.plotOptions)&&void 0!==d&&null!==(g=d.bar)&&void 0!==g&&g.isDumbbell&&(a=r.dumbbell(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),(null!==(u=(a=this.checkForCatToNumericXAxis(this.chartType,b,a)).chart.sparkline)&&void 0!==u&&u.enabled||null!==(p=window.Apex.chart)&&void 0!==p&&null!==(f=p.sparkline)&&void 0!==f&&f.enabled)&&(b=r.sparkline(b)),n=x.extend(o,b)}var v=x.extend(n,window.Apex);return o=x.extend(v,a),o=this.handleUserInputErrors(o)}},{key:\"checkForCatToNumericXAxis\",value:function(t,e,i){var a,s,r=new z(i),o=(\"bar\"===t||\"boxPlot\"===t)&&(null===(a=i.plotOptions)||void 0===a||null===(s=a.bar)||void 0===s?void 0:s.horizontal),n=\"pie\"===t||\"polarArea\"===t||\"donut\"===t||\"radar\"===t||\"radialBar\"===t||\"heatmap\"===t,l=\"datetime\"!==i.xaxis.type&&\"numeric\"!==i.xaxis.type,h=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return o||n||!l||\"between\"===h||(i=r.convertCatToNumeric(i)),i}},{key:\"extendYAxis\",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name=\"series-\".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn(\"A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.\"),t}},{key:\"extendAnnotations\",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:\"extendYAxisAnnotations\",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:\"extendXAxisAnnotations\",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:\"extendPointAnnotations\",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:\"checkForDarkTheme\",value:function(t){t.theme&&\"dark\"===t.theme.mode&&(t.tooltip||(t.tooltip={}),\"light\"!==t.tooltip.theme&&(t.tooltip.theme=\"dark\"),t.chart.foreColor||(t.chart.foreColor=\"#f6f7f8\"),t.chart.background||(t.chart.background=\"#424242\"),t.theme.palette||(t.theme.palette=\"palette4\"))}},{key:\"handleUserInputErrors\",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error(\"tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.\");if(\"bar\"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error(\"Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false\");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return\"bar\"!==e.chart.type&&\"rangeBar\"!==e.chart.type||e.tooltip.shared&&\"barWidth\"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width=\"tickWidth\"),\"candlestick\"!==e.chart.type&&\"boxPlot\"!==e.chart.type||e.yaxis[0].reversed&&(console.warn(\"Reversed y-axis in \".concat(e.chart.type,\" chart is not supported.\")),e.yaxis[0].reversed=!1),e}}]),t}(),Y=function(){function t(){a(this,t)}return r(t,[{key:\"initGlobalVars\",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:\"globalVars\",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:\"ontouchstart\"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:\"zoom\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:\"pan\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:\"selection\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:\"http://www.w3.org/2000/svg\",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:\"init\",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),F=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"init\",value:function(){var t=new E(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new Y).init(t)}}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:\"clippedImgArea\",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,\"pattern\");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:\"userSpaceOnUse\",width:n+\"px\",height:l+\"px\"});var c=document.createElementNS(e.globals.SVGNS,\"image\");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,\"href\",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:\"none\",width:n+\"px\",height:l+\"px\"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:\"getSeriesIndex\",value:function(t){var e=this.w,i=e.config.chart.type;return(\"bar\"===i||\"rangeBar\"===i)&&e.config.plotOptions.bar.distributed||\"heatmap\"===i||\"treemap\"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:\"fillPath\",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),\"function\"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf(\"rgb\")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf(\"rgba\")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),\"pattern\"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),\"gradient\"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),\"image\"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:\"\";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber<c.length?c[t.seriesNumber]:c[0]:c,width:t.width?t.width:void 0,height:t.height?t.height:void 0,patternUnits:t.patternUnits,patternID:\"pattern\".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d)}),i=\"url(#pattern\".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d,\")\")}else i=\"gradient\"===n?s:\"pattern\"===n?a:h;return t.solid&&(i=h),i}},{key:\"getFillType\",value:function(t){var e=this.w;return Array.isArray(e.config.fill.type)?e.config.fill.type[t]:e.config.fill.type}},{key:\"getFillColors\",value:function(){var t=this.w,e=t.config,i=this.opts,a=[];return t.globals.comboCharts?\"line\"===t.config.series[this.seriesIndex].type?Array.isArray(t.globals.stroke.colors)?a=t.globals.stroke.colors:a.push(t.globals.stroke.colors):Array.isArray(t.globals.fill.colors)?a=t.globals.fill.colors:a.push(t.globals.fill.colors):\"line\"===e.chart.type?Array.isArray(t.globals.stroke.colors)?a=t.globals.stroke.colors:a.push(t.globals.stroke.colors):Array.isArray(t.globals.fill.colors)?a=t.globals.fill.colors:a.push(t.globals.fill.colors),void 0!==i.fillColors&&(a=[],Array.isArray(i.fillColors)?a=i.fillColors.slice():a.push(i.fillColors)),a}},{key:\"handlePatternFill\",value:function(t){var e=t.fillConfig,i=t.patternFill,a=t.fillColor,s=t.fillOpacity,r=t.defaultColor,o=this.w.config.fill;e&&(o=e);var n=this.opts,l=new m(this.ctx),h=Array.isArray(o.pattern.strokeWidth)?o.pattern.strokeWidth[this.seriesIndex]:o.pattern.strokeWidth,c=a;Array.isArray(o.pattern.style)?i=void 0!==o.pattern.style[n.seriesNumber]?l.drawPattern(o.pattern.style[n.seriesNumber],o.pattern.width,o.pattern.height,c,h,s):r:i=l.drawPattern(o.pattern.style,o.pattern.width,o.pattern.height,c,h,s);return i}},{key:\"handleGradientFill\",value:function(t){var i=t.fillColor,a=t.fillOpacity,s=t.fillConfig,r=t.i,o=this.w.config.fill;s&&(o=e(e({},o),s));var n,l=this.opts,h=new m(this.ctx),c=new x,d=o.gradient.type,g=i,u=void 0===o.gradient.opacityFrom?a:Array.isArray(o.gradient.opacityFrom)?o.gradient.opacityFrom[r]:o.gradient.opacityFrom;g.indexOf(\"rgba\")>-1&&(u=x.getOpacityFromRGBA(g));var p=void 0===o.gradient.opacityTo?a:Array.isArray(o.gradient.opacityTo)?o.gradient.opacityTo[r]:o.gradient.opacityTo;if(void 0===o.gradient.gradientToColors||0===o.gradient.gradientToColors.length)n=\"dark\"===o.gradient.shade?c.shadeColor(-1*parseFloat(o.gradient.shadeIntensity),i.indexOf(\"rgb\")>-1?x.rgb2hex(i):i):c.shadeColor(parseFloat(o.gradient.shadeIntensity),i.indexOf(\"rgb\")>-1?x.rgb2hex(i):i);else if(o.gradient.gradientToColors[l.seriesNumber]){var f=o.gradient.gradientToColors[l.seriesNumber];n=f,f.indexOf(\"rgba\")>-1&&(p=x.getOpacityFromRGBA(f))}else n=i;if(o.gradient.gradientFrom&&(g=o.gradient.gradientFrom),o.gradient.gradientTo&&(n=o.gradient.gradientTo),o.gradient.inverseColors){var b=g;g=n,n=b}return g.indexOf(\"rgb\")>-1&&(g=x.rgb2hex(g)),n.indexOf(\"rgb\")>-1&&(n=x.rgb2hex(n)),h.drawGradient(d,g,n,u,p,l.size,o.gradient.stops,o.gradient.colorStops,r)}}]),t}(),H=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"setGlobalMarkerSize\",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length<t.globals.series.length+1)for(var e=0;e<=t.globals.series.length;e++)void 0===t.globals.markers.size[e]&&t.globals.markers.size.push(t.globals.markers.size[0])}else t.globals.markers.size=t.config.series.map((function(e){return t.config.markers.size}))}},{key:\"plotChartMarkers\",value:function(t,e,i,a){var s,r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?\"\":\"apexcharts-series-markers\"})).attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(o.globals.cuid,\")\")),Array.isArray(l.x))for(var g=0;g<l.x.length;g++){var u=i;1===i&&0===g&&(u=0),1===i&&1===g&&(u=1);var p=\"apexcharts-marker\";if(\"line\"!==o.config.chart.type&&\"area\"!==o.config.chart.type||o.globals.comboCharts||o.config.tooltip.intersect||(p+=\" no-pointer-events\"),(Array.isArray(o.config.markers.size)?o.globals.markers.size[e]>0:o.config.markers.size>0)||r||d){x.isNumber(l.y[g])?p+=\" w\".concat(x.randomId()):p=\"apexcharts-nullpoint\";var f=this.getMarkerConfig({cssClass:p,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(f.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(f.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(f.pSize=a),(l.x[g]<0||l.x[g]>o.globals.gridWidth||l.y[g]<0||l.y[g]>o.globals.gridHeight)&&(f.pSize=0),(s=c.drawMarker(l.x[g],l.y[g],f)).attr(\"rel\",u),s.attr(\"j\",u),s.attr(\"index\",e),s.node.setAttribute(\"default-marker-size\",f.pSize),new v(this.ctx).setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:\"getMarkerConfig\",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:\"addEvents\",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener(\"click\",e.config.markers.onClick),t.node.addEventListener(\"dblclick\",e.config.markers.onDblClick),t.node.addEventListener(\"touchstart\",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:\"getMarkerStyle\",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),D=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:\"draw\",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:\"apexcharts-series-markers apexcharts-series-\".concat(a.config.chart.type)});if(h.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(a.globals.cuid,\")\")),Array.isArray(o.x))for(var c=0;c<o.x.length;c++){var d=e+1,g=!0;0===e&&0===c&&(d=0),0===e&&1===c&&(d=1);var u=0,p=a.globals.markers.size[r];if(n!==1/0){var f=a.config.plotOptions.bubble;p=a.globals.seriesZ[r][d],f.zScaling&&(p/=n),f.minBubbleRadius&&p<f.minBubbleRadius&&(p=f.minBubbleRadius),f.maxBubbleRadius&&p>f.maxBubbleRadius&&(p=f.maxBubbleRadius)}a.config.chart.animations.enabled||(u=p);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,p,r,d,e);h.add(v)}l.add(h)}}},{key:\"drawPoint\",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new R(this.ctx),g=new H(this.ctx),u=new m(this.ctx),p=g.getMarkerConfig({cssClass:\"apexcharts-marker\",seriesIndex:l,dataPointIndex:r,finishRadius:\"bubble\"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&\"bubble\"===n.config.series[s].type?a:null});a=p.pSize;var f,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:p.pointFillColor,patternUnits:\"objectBoundingBox\",value:n.globals.series[s][o]});if(\"circle\"===p.shape?f=u.drawCircle(i):\"square\"!==p.shape&&\"rect\"!==p.shape||(f=u.drawRect(0,0,p.width-p.pointStrokeWidth/2,p.height-p.pointStrokeWidth/2,p.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),f.attr({x:t-p.width/2-p.pointStrokeWidth/2,y:e-p.height/2-p.pointStrokeWidth/2,cx:t,cy:e,fill:x,\"fill-opacity\":p.pointFillOpacity,stroke:p.pointStrokeColor,r:a,\"stroke-width\":p.pointStrokeWidth,\"stroke-dasharray\":p.pointStrokeDashArray,\"stroke-opacity\":p.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(f,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(f,0,\"circle\"===p.shape?a:{width:p.width,height:p.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(f)}),100)}))}if(n.globals.dataChanged&&\"circle\"===p.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;P<n.globals.collapsedSeries.length;P++)n.globals.collapsedSeries[P].index===s&&(L=1,a=0);0===t&&0===e&&(a=0),h.animateCircle(f,{cx:k,cy:A,r:S},{cx:t,cy:e,r:a},L,n.globals.easing)}else f.attr({r:a});return f.attr({rel:r,j:r,index:s,\"default-marker-size\":a}),c.setSelectionFilter(f,s,r),g.addEvents(f),f.node.classList.add(\"apexcharts-marker\"),f}},{key:\"centerTextInBubble\",value:function(t){var e=this.w;return{y:t+=parseInt(e.config.dataLabels.style.fontSize,10)/4}}}]),t}(),O=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"dataLabelsCorrection\",value:function(t,e,i,a,s,r,o){var n=this.w,l=!1,h=new m(this.ctx).getTextRects(i,o),c=h.width,d=h.height;e<0&&(e=0),e>n.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var p=n.globals.dataLabelsRects[a][u];(t>p.x+p.width+2||e>p.y+p.height+2||t+c<p.x)&&(l=!0)}return(0===s||r)&&(l=!0),{x:t,y:e,textRects:h,drawnextLabel:l}}},{key:\"drawDataLabel\",value:function(t){var e=this,i=t.type,a=t.pos,s=t.i,r=t.j,o=t.isRangeStart,n=t.strokeWidth,l=void 0===n?2:n,h=this.w,c=new m(this.ctx),d=h.config.dataLabels,g=0,u=0,p=r,f=null;if(!d.enabled||!Array.isArray(a.x))return f;f=c.group({class:\"apexcharts-data-labels\"});for(var x=0;x<a.x.length;x++)if(g=a.x[x]+d.offsetX,u=a.y[x]+d.offsetY+l,!isNaN(g)){1===r&&0===x&&(p=0),1===r&&1===x&&(p=1);var b=h.globals.series[s][p];\"rangeArea\"===i&&(b=o?h.globals.seriesRangeStart[s][p]:h.globals.seriesRangeEnd[s][p]);var v=\"\",y=function(t){return h.config.dataLabels.formatter(t,{ctx:e.ctx,seriesIndex:s,dataPointIndex:p,w:h})};if(\"bubble\"===h.config.chart.type)v=y(b=h.globals.seriesZ[s][p]),u=a.y[x],u=new D(this.ctx).centerTextInBubble(u,s,p).y;else void 0!==b&&(v=y(b));this.plotDataLabelsText({x:g,y:u,text:v,i:s,j:p,parent:f,offsetCorrection:!0,dataLabelsConfig:h.config.dataLabels})}return f}},{key:\"plotDataLabelsText\",value:function(t){var e=this.w,i=new m(this.ctx),a=t.x,s=t.y,r=t.i,o=t.j,n=t.text,l=t.textAnchor,h=t.fontSize,c=t.parent,d=t.dataLabelsConfig,g=t.color,u=t.alwaysDrawDataLabel,p=t.offsetCorrection;if(!(Array.isArray(e.config.dataLabels.enabledOnSeries)&&e.config.dataLabels.enabledOnSeries.indexOf(r)<0)){var f={x:a,y:s,drawnextLabel:!0,textRects:null};p&&(f=this.dataLabelsCorrection(a,s,n,r,o,u,parseInt(d.style.fontSize,10))),e.globals.zoomed||(a=f.x,s=f.y),f.textRects&&(a<-10-f.textRects.width||a>e.globals.gridWidth+f.textRects.width+10)&&(n=\"\");var x=e.globals.dataLabels.style.colors[r];((\"bar\"===e.config.chart.type||\"rangeBar\"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),\"function\"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if(\"bar\"!==e.config.chart.type&&\"rangeBar\"!==e.config.chart.type||(b=0,y=0),f.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||\"normal\"});if(w.attr({class:\"apexcharts-datalabel\",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:\"addBackgroundToDataLabel\",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,\"transparent\"===i.config.chart.background?\"#fff\":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:\"dataLabelsBackground\",value:function(){var t=this.w;if(\"bubble\"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels text\"),i=0;i<e.length;i++){var a=e[i],s=a.getBBox(),r=null;if(s.width&&s.height&&(r=this.addBackgroundToDataLabel(a,s)),r){a.parentNode.insertBefore(r.node,a);var o=a.getAttribute(\"fill\");t.config.chart.animations.enabled&&!t.globals.resized&&!t.globals.dataChanged?r.animate().attr({fill:o}):r.attr({fill:o}),a.setAttribute(\"fill\",t.config.dataLabels.background.foreColor)}}}},{key:\"bringForward\",value:function(){for(var t=this.w,e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels\"),i=t.globals.dom.baseEl.querySelector(\".apexcharts-plot-series:last-child\"),a=0;a<e.length;a++)i&&i.insertBefore(e[a],i.nextSibling)}}]),t}(),N=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.legendInactiveClass=\"legend-mouseover-inactive\"}return r(t,[{key:\"getAllSeriesEls\",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName(\"apexcharts-series\")}},{key:\"getSeriesByName\",value:function(t){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner .apexcharts-series[seriesName='\".concat(x.escapeString(t),\"']\"))}},{key:\"isSeriesHidden\",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute(\"data:realIndex\"),10);return{isHidden:e.classList.contains(\"apexcharts-series-collapsed\"),realIndex:i}}},{key:\"addCollapsedClassToSeries\",value:function(t,e){var i=this.w;function a(i){for(var a=0;a<i.length;a++)i[a].index===e&&t.node.classList.add(\"apexcharts-series-collapsed\")}a(i.globals.collapsedSeries),a(i.globals.ancillaryCollapsedSeries)}},{key:\"toggleSeries\",value:function(t){var e=this.isSeriesHidden(t);return this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,e.isHidden),e.isHidden}},{key:\"showSeries\",value:function(t){var e=this.isSeriesHidden(t);e.isHidden&&this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,!0)}},{key:\"hideSeries\",value:function(t){var e=this.isSeriesHidden(t);e.isHidden||this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,!1)}},{key:\"resetSeries\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:\"emptyCollapsedSeries\",value:function(t){for(var e=this.w,i=0;i<t.length;i++)e.globals.collapsedSeriesIndices.indexOf(i)>-1&&(t[i].data=[]);return t}},{key:\"toggleSeriesOnHover\",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(\".apexcharts-series, .apexcharts-datalabels\");if(\"mousemove\"===t.type){var s=parseInt(e.getAttribute(\"rel\"),10)-1,r=null,o=null;i.globals.axisCharts||\"radialBar\"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(s,\"']\")),o=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels[data\\\\:realIndex='\".concat(s,\"']\"))):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"']\")):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"'] path\"));for(var n=0;n<a.length;n++)a[n].classList.add(this.legendInactiveClass);null!==r&&(i.globals.axisCharts||r.parentNode.classList.remove(this.legendInactiveClass),r.classList.remove(this.legendInactiveClass),null!==o&&o.classList.remove(this.legendInactiveClass))}else if(\"mouseout\"===t.type)for(var l=0;l<a.length;l++)a[l].classList.remove(this.legendInactiveClass)}},{key:\"highlightRangeInSeries\",value:function(t,e){var i=this,a=this.w,s=a.globals.dom.baseEl.getElementsByClassName(\"apexcharts-heatmap-rect\"),r=function(t){for(var e=0;e<s.length;e++)s[e].classList[t](i.legendInactiveClass)};if(\"mousemove\"===t.type){var o=parseInt(e.getAttribute(\"rel\"),10)-1;r(\"add\"),function(t){for(var e=0;e<s.length;e++){var a=parseInt(s[e].getAttribute(\"val\"),10);a>=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else\"mouseout\"===t.type&&r(\"remove\")}},{key:\"getActiveConfigSeriesIndex\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"asc\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r=\"asc\"===t?0:s.length-1;\"asc\"===t?r<s.length:r>=0;\"asc\"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:\"getBarSeriesIndices\",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return\"bar\"===t.type||\"column\"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:\"getPreviousPaths\",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute(\"data:realIndex\")},o=0;o<s.length;o++)if(s[o].hasAttribute(\"pathTo\")){var n=s[o].getAttribute(\"pathTo\");r.paths.push({d:n})}t.globals.previousPaths.push(r)}t.globals.previousPaths=[];[\"line\",\"area\",\"bar\",\"rangebar\",\"rangeArea\",\"candlestick\",\"radar\"].forEach((function(i){for(var a,s=(a=i,t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(a,\"-series .apexcharts-series\"))),r=0;r<s.length;r++)e(s,r,i)})),this.handlePrevBubbleScatterPaths(\"bubble\"),this.handlePrevBubbleScatterPaths(\"scatter\");var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series\"));if(i.length>0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] rect\")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e(\"x\")),y:parseFloat(e(\"y\")),width:parseFloat(e(\"width\")),height:parseFloat(e(\"height\"))};a.push({rect:s,color:i[t].getAttribute(\"color\")})},r=0;r<i.length;r++)s(r);t.globals.previousPaths.push(a)},s=0;s<i.length;s++)a(s);t.globals.axisCharts||(t.globals.previousPaths=t.globals.series)}},{key:\"handlePrevBubbleScatterPaths\",value:function(t){var e=this.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t,\"-series .apexcharts-series\"));if(i.length>0)for(var a=0;a<i.length;a++){for(var s=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t,\"-series .apexcharts-series[data\\\\:realIndex='\").concat(a,\"'] circle\")),r=[],o=0;o<s.length;o++)r.push({x:s[o].getAttribute(\"cx\"),y:s[o].getAttribute(\"cy\"),r:s[o].getAttribute(\"r\")});e.globals.previousPaths.push(r)}}},{key:\"clearPreviousPaths\",value:function(){var t=this.w;t.globals.previousPaths=[],t.globals.allSeriesCollapsed=!1}},{key:\"handleNoData\",value:function(){var t=this.w,e=t.config.noData,i=new m(this.ctx),a=t.globals.svgWidth/2,s=t.globals.svgHeight/2,r=\"middle\";if(t.globals.noData=!0,t.globals.animationEnded=!0,\"left\"===e.align?(a=10,r=\"start\"):\"right\"===e.align&&(a=t.globals.svgWidth-10,r=\"end\"),\"top\"===e.verticalAlign?s=50:\"bottom\"===e.verticalAlign&&(s=t.globals.svgHeight-50),a+=e.offsetX,s=s+parseInt(e.style.fontSize,10)+2+e.offsetY,void 0!==e.text&&\"\"!==e.text){var o=i.drawText({x:a,y:s,text:e.text,textAnchor:r,fontSize:e.style.fontSize,fontFamily:e.style.fontFamily,foreColor:e.style.color,opacity:1,class:\"apexcharts-text-nodata\"});t.globals.dom.Paper.add(o)}}},{key:\"setNullSeriesToZeroValues\",value:function(t){for(var e=this.w,i=0;i<t.length;i++)if(0===t[i].length)for(var a=0;a<t[e.globals.maxValsInArrayIndex].length;a++)t[i].push(0);return t}},{key:\"hasAllSeriesEqualX\",value:function(){for(var t=!0,e=this.w,i=this.filteredSeriesX(),a=0;a<i.length-1;a++)if(i[a][0]!==i[a+1][0]){t=!1;break}return e.globals.allSeriesHasEqualX=t,t}},{key:\"filteredSeriesX\",value:function(){var t=this.w.globals.seriesX.map((function(t){return t.length>0?t:[]}));return t}}]),t}(),W=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:\"isMultiFormat\",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:\"isFormatXY\",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:\"isFormat2DArray\",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:\"handleFormat2DArray\",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s=\"boxPlot\"===i.chart.type||\"boxPlot\"===i.series[e].type,r=0;r<t[e].data.length;r++)if(void 0!==t[e].data[r][1]&&(Array.isArray(t[e].data[r][1])&&4===t[e].data[r][1].length&&!s?this.twoDSeries.push(x.parseNumber(t[e].data[r][1][3])):t[e].data[r].length>=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),\"datetime\"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n<t[e].data.length;n++)void 0!==t[e].data[n][2]&&(this.threeDSeries.push(t[e].data[n][2]),a.isDataXYZ=!0)}},{key:\"handleFormatXY\",value:function(t,e){var i=this.w.config,a=this.w.globals,s=new I(this.ctx),r=e;a.collapsedSeriesIndices.indexOf(e)>-1&&(r=this.activeSeriesIndex);for(var o=0;o<t[e].data.length;o++)void 0!==t[e].data[o].y&&(Array.isArray(t[e].data[o].y)?this.twoDSeries.push(x.parseNumber(t[e].data[o].y[t[e].data[o].y.length-1])):this.twoDSeries.push(x.parseNumber(t[e].data[o].y))),void 0!==t[e].data[o].goals&&Array.isArray(t[e].data[o].goals)?(void 0===this.seriesGoals[e]&&(this.seriesGoals[e]=[]),this.seriesGoals[e].push(t[e].data[o].goals)):(void 0===this.seriesGoals[e]&&(this.seriesGoals[e]=[]),this.seriesGoals[e].push(null));for(var n=0;n<t[r].data.length;n++){var l=\"string\"==typeof t[r].data[n].x,h=Array.isArray(t[r].data[n].x),c=!h&&!!s.isValidDate(t[r].data[n].x.toString());if(l||c)if(l||i.xaxis.convertedCatToNumeric){var d=a.isBarHorizontal&&a.isRangeData;\"datetime\"!==i.xaxis.type||d?(this.fallbackToCategory=!0,this.twoDSeriesX.push(t[r].data[n].x)):this.twoDSeriesX.push(s.parseDate(t[r].data[n].x))}else\"datetime\"===i.xaxis.type?this.twoDSeriesX.push(s.parseDate(t[r].data[n].x.toString())):(a.dataFormatXNumeric=!0,a.isXNumeric=!0,this.twoDSeriesX.push(parseFloat(t[r].data[n].x)));else h?(this.fallbackToCategory=!0,this.twoDSeriesX.push(t[r].data[n].x)):(a.isXNumeric=!0,a.dataFormatXNumeric=!0,this.twoDSeriesX.push(t[r].data[n].x))}if(t[e].data[0]&&void 0!==t[e].data[0].z){for(var g=0;g<t[e].data.length;g++)this.threeDSeries.push(t[e].data[g].z);a.isDataXYZ=!0}}},{key:\"handleRangeData\",value:function(t,e){var i=this.w.globals,a={};return this.isFormat2DArray()?a=this.handleRangeDataFormat(\"array\",t,e):this.isFormatXY()&&(a=this.handleRangeDataFormat(\"xy\",t,e)),i.seriesRangeStart.push(a.start),i.seriesRangeEnd.push(a.end),i.seriesRange.push(a.rangeUniques),i.seriesRange.forEach((function(t,e){t&&t.forEach((function(t,e){t.y.forEach((function(e,i){for(var a=0;a<t.y.length;a++)if(i!==a){var s=e.y1,r=e.y2,o=t.y[a].y1;s<=t.y[a].y2&&o<=r&&(t.overlaps.indexOf(e.rangeName)<0&&t.overlaps.push(e.rangeName),t.overlaps.indexOf(t.y[a].rangeName)<0&&t.overlaps.push(t.y[a].rangeName))}}))}))})),a}},{key:\"handleCandleStickBoxData\",value:function(t,e){var i=this.w.globals,a={};return this.isFormat2DArray()?a=this.handleCandleStickBoxDataFormat(\"array\",t,e):this.isFormatXY()&&(a=this.handleCandleStickBoxDataFormat(\"xy\",t,e)),i.seriesCandleO[e]=a.o,i.seriesCandleH[e]=a.h,i.seriesCandleM[e]=a.m,i.seriesCandleL[e]=a.l,i.seriesCandleC[e]=a.c,a}},{key:\"handleRangeDataFormat\",value:function(t,e,i){var a=[],s=[],r=e[i].data.filter((function(t,e,i){return e===i.findIndex((function(e){return e.x===t.x}))})).map((function(t,e){return{x:t.x,overlaps:[],y:[]}}));if(\"array\"===t)for(var o=0;o<e[i].data.length;o++)Array.isArray(e[i].data[o])?(a.push(e[i].data[o][1][0]),s.push(e[i].data[o][1][1])):(a.push(e[i].data[o]),s.push(e[i].data[o]));else if(\"xy\"===t)for(var n=function(t){var o=Array.isArray(e[i].data[t].y),n=x.randomId(),l=e[i].data[t].x,h={y1:o?e[i].data[t].y[0]:e[i].data[t].y,y2:o?e[i].data[t].y[1]:e[i].data[t].y,rangeName:n};e[i].data[t].rangeName=n;var c=r.findIndex((function(t){return t.x===l}));r[c].y.push(h),a.push(h.y1),s.push(h.y2)},l=0;l<e[i].data.length;l++)n(l);return{start:a,end:s,rangeUniques:r}}},{key:\"handleCandleStickBoxDataFormat\",value:function(t,e,i){var a=this.w,s=\"boxPlot\"===a.config.chart.type||\"boxPlot\"===a.config.series[i].type,r=[],o=[],n=[],l=[],h=[];if(\"array\"===t)if(s&&6===e[i].data[0].length||!s&&5===e[i].data[0].length)for(var c=0;c<e[i].data.length;c++)r.push(e[i].data[c][1]),o.push(e[i].data[c][2]),s?(n.push(e[i].data[c][3]),l.push(e[i].data[c][4]),h.push(e[i].data[c][5])):(l.push(e[i].data[c][3]),h.push(e[i].data[c][4]));else for(var d=0;d<e[i].data.length;d++)Array.isArray(e[i].data[d][1])&&(r.push(e[i].data[d][1][0]),o.push(e[i].data[d][1][1]),s?(n.push(e[i].data[d][1][2]),l.push(e[i].data[d][1][3]),h.push(e[i].data[d][1][4])):(l.push(e[i].data[d][1][2]),h.push(e[i].data[d][1][3])));else if(\"xy\"===t)for(var g=0;g<e[i].data.length;g++)Array.isArray(e[i].data[g].y)&&(r.push(e[i].data[g].y[0]),o.push(e[i].data[g].y[1]),s?(n.push(e[i].data[g].y[2]),l.push(e[i].data[g].y[3]),h.push(e[i].data[g].y[4])):(l.push(e[i].data[g].y[2]),h.push(e[i].data[g].y[3])));return{o:r,h:o,m:n,l:l,c:h}}},{key:\"parseDataAxisCharts\",value:function(t){var e,i=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.ctx,s=this.w.config,r=this.w.globals,o=new I(a),n=s.labels.length>0?s.labels.slice():s.xaxis.categories.slice();if(r.isRangeBar=\"rangeBar\"===s.chart.type&&r.isBarHorizontal,r.hasXaxisGroups=\"category\"===s.xaxis.type&&s.xaxis.group.groups.length>0,r.hasXaxisGroups&&(r.groups=s.xaxis.group.groups),r.hasSeriesGroups=null===(e=t[0])||void 0===e?void 0:e.group,r.hasSeriesGroups){var l=[],h=u(new Set(t.map((function(t){return t.group}))));t.forEach((function(t,e){var i=h.indexOf(t.group);l[i]||(l[i]=[]),l[i].push(t.name)})),r.seriesGroups=l}for(var c=function(){for(var t=0;t<n.length;t++)if(\"string\"==typeof n[t]){if(!o.isValidDate(n[t]))throw new Error(\"You have provided invalid Date format. Please provide a valid JavaScript Date\");i.twoDSeriesX.push(o.parseDate(n[t]))}else i.twoDSeriesX.push(n[t])},d=0;d<t.length;d++){if(this.twoDSeries=[],this.twoDSeriesX=[],this.threeDSeries=[],void 0===t[d].data)return void console.error(\"It is a possibility that you may have not included 'data' property in series.\");if(\"rangeBar\"!==s.chart.type&&\"rangeArea\"!==s.chart.type&&\"rangeBar\"!==t[d].type&&\"rangeArea\"!==t[d].type||(r.isRangeData=!0,r.isComboCharts?\"rangeBar\"!==t[d].type&&\"rangeArea\"!==t[d].type||this.handleRangeData(t,d):\"rangeBar\"!==s.chart.type&&\"rangeArea\"!==s.chart.type||this.handleRangeData(t,d)),this.isMultiFormat())this.isFormat2DArray()?this.handleFormat2DArray(t,d):this.isFormatXY()&&this.handleFormatXY(t,d),\"candlestick\"!==s.chart.type&&\"candlestick\"!==t[d].type&&\"boxPlot\"!==s.chart.type&&\"boxPlot\"!==t[d].type||this.handleCandleStickBoxData(t,d),r.series.push(this.twoDSeries),r.labels.push(this.twoDSeriesX),r.seriesX.push(this.twoDSeriesX),r.seriesGoals=this.seriesGoals,d!==this.activeSeriesIndex||this.fallbackToCategory||(r.isXNumeric=!0);else{\"datetime\"===s.xaxis.type?(r.isXNumeric=!0,c(),r.seriesX.push(this.twoDSeriesX)):\"numeric\"===s.xaxis.type&&(r.isXNumeric=!0,n.length>0&&(this.twoDSeriesX=n,r.seriesX.push(this.twoDSeriesX))),r.labels.push(this.twoDSeriesX);var g=t[d].data.map((function(t){return x.parseNumber(t)}));r.series.push(g)}r.seriesZ.push(this.threeDSeries),void 0!==t[d].name?r.seriesNames.push(t[d].name):r.seriesNames.push(\"series-\"+parseInt(d+1,10)),void 0!==t[d].color?r.seriesColors.push(t[d].color):r.seriesColors.push(void 0)}return this.w}},{key:\"parseDataNonAxisCharts\",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a<e.series.length;a++)void 0===e.seriesNames[a]&&e.seriesNames.push(\"series-\"+(a+1));return this.w}},{key:\"handleExternalLabelsData\",value:function(t){var e=this.w.config,i=this.w.globals;if(e.xaxis.categories.length>0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),e.xaxis.convertedCatToNumeric)new z(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:\"_generateExternalLabels\",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o<s[r].length;o++)a.push(o+1);else for(var n=0;n<e.series[e.maxValsInArrayIndex].length;n++)a.push(n+1);e.seriesX=[];for(var l=0;l<t.length;l++)e.seriesX.push(a);this.w.globals.isBarHorizontal||(e.isXNumeric=!0)}if(0===a.length){a=e.axisCharts?[]:e.series.map((function(t,e){return e+1}));for(var h=0;h<t.length;h++)e.seriesX.push(a)}e.labels=a,i.xaxis.convertedCatToNumeric&&(e.categoryLabels=a.map((function(t){return i.xaxis.labels.formatter(t)}))),e.noLabelsProvided=!0}},{key:\"parseData\",value:function(t){var e=this.w,i=e.config,a=e.globals;if(this.excludeCollapsedSeriesInYAxis(),this.fallbackToCategory=!1,this.ctx.core.resetGlobals(),this.ctx.core.isMultipleY(),a.axisCharts?(this.parseDataAxisCharts(t),this.coreUtils.getLargestSeries()):this.parseDataNonAxisCharts(t),i.chart.stacked){var s=new N(this.ctx);a.series=s.setNullSeriesToZeroValues(a.series)}this.coreUtils.getSeriesTotals(),a.axisCharts&&(a.stackedSeriesTotals=this.coreUtils.getStackedSeriesTotals()),this.coreUtils.getPercentSeries(),a.dataFormatXNumeric||a.isXNumeric&&(\"numeric\"!==i.xaxis.type||0!==i.labels.length||0!==i.xaxis.categories.length)||this.handleExternalLabelsData(t);for(var r=this.coreUtils.getCategoryLabels(a.labels),o=0;o<r.length;o++)if(Array.isArray(r[o])){a.isMultiLineX=!0;break}}},{key:\"excludeCollapsedSeriesInYAxis\",value:function(){var t=this,e=this.w;e.globals.ignoreYAxisIndexes=e.globals.collapsedSeries.map((function(i,a){if(t.w.globals.isMultipleYAxis&&!e.config.chart.stacked)return i.index}))}}]),t}(),B=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getLabel\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"12px\",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?\"\":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new T(this.ctx),p=l;o&&(h=u.xLabelFormat(c,l,p,{i:a,dateFormatter:new I(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new I(this.ctx).formatDate,w:n})));var f,x;e.length>0?(f=e[a].unit,x=null,e.forEach((function(t){\"month\"===t.unit?x=\"year\":\"day\"===t.unit?x=\"month\":\"hour\"===t.unit?x=\"day\":\"minute\"===t.unit&&(x=\"hour\")})),g=x===f,i=e[a].position,h=e[a].value):\"datetime\"===n.config.xaxis.type&&void 0===d&&(h=\"\"),void 0===h&&(h=\"\"),h=Array.isArray(h)?h:h.toString();var b=new m(this.ctx),v={};v=n.globals.rotateXLabels&&o?b.getTextRects(h,parseInt(r,10),null,\"rotate(\".concat(n.config.xaxis.labels.rotate,\" 0 0)\"),!1):b.getTextRects(h,parseInt(r,10));var y=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf(\"NaN\")||0===h.toLowerCase().indexOf(\"invalid\")||h.toLowerCase().indexOf(\"infinity\")>=0||s.indexOf(h)>=0&&y)&&(h=\"\"),{x:i,text:h,textRect:v,isBold:g}}},{key:\"checkLabelBasedOnTickamount\",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return\"dataPoints\"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=\"\"),e}},{key:\"checkForOverflowingLabels\",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=\"\"),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=\"\"),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x<o.textRect.width/(r.globals.rotateXLabels?Math.abs(r.config.xaxis.labels.rotate)/12:1.01)+o.x&&(e.text=\"\")}return e}},{key:\"checkForReversedLabels\",value:function(t,e){var i=this.w;return i.config.yaxis[t]&&i.config.yaxis[t].reversed&&e.reverse(),e}},{key:\"isYAxisHidden\",value:function(t){var e=this.w,i=new y(this.ctx);return!e.config.yaxis[t].show||!e.config.yaxis[t].showForNullSeries&&i.isSeriesNull(t)&&-1===e.globals.collapsedSeriesIndices.indexOf(t)}},{key:\"getYAxisForeColor\",value:function(t,e){var i=this.w;return Array.isArray(t)&&i.globals.yAxisScale[e]&&this.ctx.theme.pushExtraColors(t,i.globals.yAxisScale[e].result.length,!1),t}},{key:\"drawYAxisTicks\",value:function(t,e,i,a,s,r,o){var n=this.w,l=new m(this.ctx),h=n.globals.translateY;if(a.show&&e>0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),\"heatmap\"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"scaleSvgNode\",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,\"width\")),a=parseFloat(t.getAttributeNS(null,\"height\"));t.setAttributeNS(null,\"width\",i*e),t.setAttributeNS(null,\"height\",a*e),t.setAttributeNS(null,\"viewBox\",\"0 0 \"+i+\" \"+a)}},{key:\"fixSvgStringForIe11\",value:function(t){if(!x.isIE11())return t.replace(/&nbsp;/g,\"&#160;\");var e=0,i=t.replace(/xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"/g,(function(t){return 2===++e?'xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:svgjs=\"http://svgjs.dev\"':t}));return i=(i=i.replace(/xmlns:NS\\d+=\"\"/g,\"\")).replace(/NS\\d+:(\\w+:\\w+=\")/g,\"$1\")}},{key:\"getSvgString\",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:\"cleanup\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-xcrosshairs\"),i=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-ycrosshairs\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-zoom-rect, .apexcharts-selection-rect\");Array.prototype.forEach.call(a,(function(t){t.setAttribute(\"width\",0)})),e&&e[0]&&(e[0].setAttribute(\"x\",-500),e[0].setAttribute(\"x1\",-500),e[0].setAttribute(\"x2\",-500)),i&&i[0]&&(i[0].setAttribute(\"y\",-100),i[0].setAttribute(\"y1\",-100),i[0].setAttribute(\"y2\",-100))}},{key:\"svgUrl\",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:\"image/svg+xml;charset=utf-8\"});return URL.createObjectURL(e)}},{key:\"dataURI\",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement(\"canvas\");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o=\"transparent\"===a.config.chart.background?\"#fff\":a.config.chart.background,n=r.getContext(\"2d\");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d=\"data:image/svg+xml,\"+encodeURIComponent(l),g=new Image;g.crossOrigin=\"anonymous\",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL(\"image/png\");i({imgURI:e})}},g.src=d}}))}},{key:\"exportToSVG\",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,\".svg\")}},{key:\"exportToPng\",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+\".png\"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,\".png\")}))}},{key:\"exportToCSV\",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?\",\":s,o=t.lineDelimiter,n=void 0===o?\"\\n\":o,l=this.w;i||(i=l.config.series);var h=[],c=[],d=\"\",g=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),p=Math.max.apply(Math,u(i.map((function(t){return t.data?t.data.length:0})))),f=new W(this.ctx),b=new B(this.ctx),v=function(t){var i=\"\";if(l.globals.axisCharts){if(\"category\"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new N(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=b.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;\"datetime\"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return Array.isArray(i)&&(i=i.join(\" \")),x.isNumber(i)?i:i.split(r).join(\"\")},m=function(t,e){if(h.length&&0===e&&c.push(h.join(r)),t.data){t.data=t.data.length&&t.data||u(Array(p)).map((function(){return\"\"}));for(var a=0;a<t.data.length;a++){h=[];var s=v(a);if(s||(f.isFormatXY()?s=i[e].data[a].x:f.isFormat2DArray()&&(s=i[e].data[a]?i[e].data[a][0]:\"\")),0===e){h.push((d=s,\"datetime\"===l.config.xaxis.type&&String(d).length>=10?l.config.chart.toolbar.export.csv.dateFormatter(s):x.isNumber(s)?s:s.split(r).join(\"\")));for(var o=0;o<l.globals.series.length;o++){var n;if(f.isFormatXY())h.push(null===(n=i[o].data[a])||void 0===n?void 0:n.y);else h.push(g[o][a])}}(\"candlestick\"===l.config.chart.type||t.type&&\"candlestick\"===t.type)&&(h.pop(),h.push(l.globals.seriesCandleO[e][a]),h.push(l.globals.seriesCandleH[e][a]),h.push(l.globals.seriesCandleL[e][a]),h.push(l.globals.seriesCandleC[e][a])),(\"boxPlot\"===l.config.chart.type||t.type&&\"boxPlot\"===t.type)&&(h.pop(),h.push(l.globals.seriesCandleO[e][a]),h.push(l.globals.seriesCandleH[e][a]),h.push(l.globals.seriesCandleM[e][a]),h.push(l.globals.seriesCandleL[e][a]),h.push(l.globals.seriesCandleC[e][a])),\"rangeBar\"===l.config.chart.type&&(h.pop(),h.push(l.globals.seriesRangeStart[e][a]),h.push(l.globals.seriesRangeEnd[e][a])),h.length&&c.push(h.join(r))}}var d};h.push(l.config.chart.toolbar.export.csv.headerCategory),\"boxPlot\"===l.config.chart.type?(h.push(\"minimum\"),h.push(\"q1\"),h.push(\"median\"),h.push(\"q3\"),h.push(\"maximum\")):\"candlestick\"===l.config.chart.type?(h.push(\"open\"),h.push(\"high\"),h.push(\"low\"),h.push(\"close\")):\"rangeBar\"===l.config.chart.type?(h.push(\"minimum\"),h.push(\"maximum\")):i.map((function(t,e){var i=(t.name?t.name:\"series-\".concat(e))+\"\";l.globals.axisCharts&&h.push(i.split(r).join(\"\")?i.split(r).join(\"\"):\"series-\".concat(e))})),l.globals.axisCharts||(h.push(l.config.chart.toolbar.export.csv.headerValue),c.push(h.join(r))),i.map((function(t,e){l.globals.axisCharts?m(t,e):((h=[]).push(l.globals.labels[e].split(r).join(\"\")),h.push(g[e]),c.push(h.join(r)))})),d+=c.join(n),this.triggerDownload(\"data:text/csv; charset=utf-8,\"+encodeURIComponent(\"\\ufeff\"+d),a||l.config.chart.toolbar.export.csv.filename,\".csv\")}},{key:\"triggerDownload\",value:function(t,e,i){var a=document.createElement(\"a\");a.href=t,a.download=(e||this.w.globals.chartID)+i,document.body.appendChild(a),a.click(),document.body.removeChild(a)}}]),t}(),V=function(){function t(e,i){a(this,t),this.ctx=e,this.elgrid=i,this.w=e.w;var s=this.w;this.axesUtils=new B(e),this.xaxisLabels=s.globals.labels.slice(),s.globals.timescaleLabels.length>0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],\"top\"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight+1,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf(\"%\")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return r(t,[{key:\"drawXaxis\",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:\"apexcharts-xaxis\",transform:\"translate(\".concat(t.config.xaxis.offsetX,\", \").concat(t.config.xaxis.offsetY,\")\")}),a=e.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(t.globals.translateXAxisX,\", \").concat(t.globals.translateXAxisY,\")\")});i.add(a);for(var s=[],r=0;r<this.xaxisLabels.length;r++)s.push(this.xaxisLabels[r]);if(this.drawXAxisLabelAndGroup(!0,e,a,s,t.globals.isXNumeric,(function(t,e){return e})),t.globals.hasXaxisGroups){var o=t.globals.groups;s=[];for(var n=0;n<o.length;n++)s.push(o[n].title);var l={};t.config.xaxis.group.style&&(l.xaxisFontSize=t.config.xaxis.group.style.fontSize,l.xaxisFontFamily=t.config.xaxis.group.style.fontFamily,l.xaxisForeColors=t.config.xaxis.group.style.colors,l.fontWeight=t.config.xaxis.group.style.fontWeight,l.cssClass=t.config.xaxis.group.style.cssClass),this.drawXAxisLabelAndGroup(!1,e,a,s,!1,(function(t,e){return o[t].cols*e}),l)}if(void 0!==t.config.xaxis.title.text){var h=e.group({class:\"apexcharts-xaxis-title\"}),c=e.drawText({x:t.globals.gridWidth/2+t.config.xaxis.title.offsetX,y:this.offY+parseFloat(this.xaxisFontSize)+(\"bottom\"===t.config.xaxis.position?t.globals.xAxisLabelsHeight:-t.globals.xAxisLabelsHeight-10)+t.config.xaxis.title.offsetY,text:t.config.xaxis.title.text,textAnchor:\"middle\",fontSize:t.config.xaxis.title.style.fontSize,fontFamily:t.config.xaxis.title.style.fontFamily,fontWeight:t.config.xaxis.title.style.fontWeight,foreColor:t.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+t.config.xaxis.title.style.cssClass});h.add(c),i.add(h)}if(t.config.xaxis.axisBorder.show){var d=t.globals.barPadForNumericAxis,g=e.drawLine(t.globals.padHorizontal+t.config.xaxis.axisBorder.offsetX-d,this.offY,this.xaxisBorderWidth+d,this.offY,t.config.xaxis.axisBorder.color,0,this.xaxisBorderHeight);this.elgrid&&this.elgrid.elGridBorders&&t.config.grid.show?this.elgrid.elGridBorders.add(g):i.add(g)}return i}},{key:\"drawXAxisLabelAndGroup\",value:function(t,e,i,a,s,r){var o,n=this,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,p=l.xaxisForeColors||this.xaxisForeColors,f=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m=\"category\"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&\"top\"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&\"dataPoints\"!==d.config.xaxis.tickAmount&&\"datetime\"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-(\"top\"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:\"middle\",fontWeight:y.isBold?600:f,fontSize:g,fontFamily:u,foreColor:Array.isArray(p)?t&&d.config.xaxis.convertedCatToNumeric?p[d.globals.minX+s-1]:p[s]:p,isPlainText:!1,cssClass:(t?\"apexcharts-xaxis-label \":\"apexcharts-xaxis-group-label \")+x});if(i.add(k),k.on(\"click\",(function(t){if(\"function\"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,\"title\");A.textContent=Array.isArray(y.text)?y.text.join(\" \"):y.text,k.node.appendChild(A),\"\"!==y.text&&(h.push(y.text),c.push(y))}}s<v-1&&(b+=r(s+1,o))},k=0;k<=v-1;k++)w(k)}},{key:\"drawXaxisInversed\",value:function(t){var e,i,a=this,s=this.w,r=new m(this.ctx),o=s.config.yaxis[0].opposite?s.globals.translateYAxisX[t]:0,n=r.group({class:\"apexcharts-yaxis apexcharts-xaxis-inversed\",rel:t}),l=r.group({class:\"apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g\",transform:\"translate(\"+o+\", 0)\"});n.add(l);var h=[];if(s.config.yaxis[t].show)for(var c=0;c<this.xaxisLabels.length;c++)h.push(this.xaxisLabels[c]);e=s.globals.gridHeight/h.length,i=-e/2.2;var d=s.globals.yLabelFormatters[0],g=s.config.yaxis[0].labels;if(g.show)for(var u=function(o){var n=void 0===h[o]?\"\":h[o];n=d(n,{seriesIndex:t,dataPointIndex:o,w:s});var c=a.axesUtils.getYAxisForeColor(g.style.colors,t),u=0;Array.isArray(n)&&(u=n.length/2*parseInt(g.style.fontSize,10));var p=g.offsetX-15,f=\"end\";a.yaxis.opposite&&(f=\"start\"),\"left\"===s.config.yaxis[0].labels.align?(p=g.offsetX,f=\"start\"):\"center\"===s.config.yaxis[0].labels.align?(p=g.offsetX,f=\"middle\"):\"right\"===s.config.yaxis[0].labels.align&&(f=\"end\");var x=r.drawText({x:p,y:i+e+g.offsetY-u,text:n,textAnchor:f,foreColor:Array.isArray(c)?c[o]:c,fontSize:g.style.fontSize,fontFamily:g.style.fontFamily,fontWeight:g.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-yaxis-label \"+g.style.cssClass,maxWidth:g.maxWidth});l.add(x),x.on(\"click\",(function(t){if(\"function\"==typeof s.config.chart.events.xAxisLabelClick){var e=Object.assign({},s,{labelIndex:o});s.config.chart.events.xAxisLabelClick(t,a.ctx,e)}}));var b=document.createElementNS(s.globals.SVGNS,\"title\");if(b.textContent=Array.isArray(n)?n.join(\" \"):n,x.node.appendChild(b),0!==s.config.yaxis[t].labels.rotate){var v=r.rotateAroundCenter(x.node);x.node.setAttribute(\"transform\",\"rotate(\".concat(s.config.yaxis[t].labels.rotate,\" 0 \").concat(v.y,\")\"))}i+=e},p=0;p<=h.length-1;p++)u(p);if(void 0!==s.config.yaxis[0].title.text){var f=r.group({class:\"apexcharts-yaxis-title apexcharts-xaxis-title-inversed\",transform:\"translate(\"+o+\", 0)\"}),x=r.drawText({x:s.config.yaxis[0].title.offsetX,y:s.globals.gridHeight/2+s.config.yaxis[0].title.offsetY,text:s.config.yaxis[0].title.text,textAnchor:\"middle\",foreColor:s.config.yaxis[0].title.style.color,fontSize:s.config.yaxis[0].title.style.fontSize,fontWeight:s.config.yaxis[0].title.style.fontWeight,fontFamily:s.config.yaxis[0].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \"+s.config.yaxis[0].title.style.cssClass});f.add(x),n.add(f)}var b=0;this.isCategoryBarHorizontal&&s.config.yaxis[0].opposite&&(b=s.globals.gridWidth);var v=s.config.xaxis.axisBorder;if(v.show){var y=r.drawLine(s.globals.padHorizontal+v.offsetX+b,1+v.offsetY,s.globals.padHorizontal+v.offsetX+b,s.globals.gridHeight+v.offsetY,v.color,0);this.elgrid&&this.elgrid.elGridBorders&&s.config.grid.show?this.elgrid.elGridBorders.add(y):n.add(y)}return s.config.yaxis[0].axisTicks.show&&this.axesUtils.drawYAxisTicks(b,h.length,s.config.yaxis[0].axisBorder,s.config.yaxis[0].axisTicks,0,e,n),n}},{key:\"drawXaxisTicks\",value:function(t,e,i){var a=this.w,s=t;if(!(t<0||t-2>a.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,\"top\"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add(\"apexcharts-xaxis-tick\")}}}},{key:\"getXAxisTicksPositions\",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s<i;s++)a=this.xaxisLabels[s].position,e.push(a);else for(var r=i,o=0;o<r;o++){var n=r;t.globals.isXNumeric&&\"bar\"!==t.config.chart.type&&(n-=1),a+=t.globals.gridWidth/n,e.push(a)}return e}},{key:\"xAxisLabelCorrections\",value:function(){var t=this.w,e=new m(this.ctx),i=t.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)\"),s=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-inversed text\"),r=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-xaxis-inversed-texts-g text tspan\");if(t.globals.rotateXLabels||t.config.xaxis.labels.rotateAlways)for(var o=0;o<a.length;o++){var n=e.rotateAroundCenter(a[o]);n.y=n.y-1,n.x=n.x+1,a[o].setAttribute(\"transform\",\"rotate(\".concat(t.config.xaxis.labels.rotate,\" \").concat(n.x,\" \").concat(n.y,\")\")),a[o].setAttribute(\"text-anchor\",\"end\");i.setAttribute(\"transform\",\"translate(0, \".concat(-10,\")\"));var l=a[o].childNodes;t.config.xaxis.labels.trim&&Array.prototype.forEach.call(l,(function(i){e.placeTextWithEllipsis(i,i.textContent,t.globals.xAxisLabelsHeight-(\"bottom\"===t.config.legend.position?20:10))}))}else!function(){for(var i=t.globals.gridWidth/(t.globals.labels.length+1),s=0;s<a.length;s++){var r=a[s].childNodes;t.config.xaxis.labels.trim&&\"datetime\"!==t.config.xaxis.type&&Array.prototype.forEach.call(r,(function(t){e.placeTextWithEllipsis(t,t.textContent,i)}))}}();if(s.length>0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d<r.length;d++)e.placeTextWithEllipsis(r[d],r[d].textContent,t.config.yaxis[0].labels.maxWidth-(t.config.yaxis[0].title.text?2*parseFloat(t.config.yaxis[0].title.style.fontSize):0)-15)}}}]),t}(),j=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.xaxisLabels=i.globals.labels.slice(),this.axesUtils=new B(e),this.isRangeBar=i.globals.seriesRange.length&&i.globals.isBarHorizontal,i.globals.timescaleLabels.length>0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:\"drawGridArea\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:\"apexcharts-grid\"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,\"transparent\"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,\"transparent\");return t.add(s),t.add(a),t}},{key:\"drawGrid\",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:\"createGridMask\",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMask.setAttribute(\"id\",\"gridRectMask\".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMarkerMask.setAttribute(\"id\",\"gridRectMarkerMask\".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elForecastMask.setAttribute(\"id\",\"forecastMask\".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elNonForecastMask.setAttribute(\"id\",\"nonForecastMask\".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;(\"bar\"===r||\"rangeBar\"===r||\"candlestick\"===r||\"boxPlot\"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,\"#fff\");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,\"#fff\"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector(\"defs\");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:\"_drawGridLines\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||\"radar\"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasXaxisGroups&&\"between\"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d<e&&g<c.length;g++)d+=c[g].cols;d===e&&(h=.6*l.globals.xAxisLabelsHeight)}}new V(this.ctx).drawXaxisTicks(i,h,l.globals.dom.elGraphical)}}},{key:\"_drawGridLine\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w,h=!1,c=n.node.classList.contains(\"apexcharts-gridlines-horizontal\"),d=l.config.grid.strokeDashArray,g=l.globals.barPadForNumericAxis;(0===a&&0===r||0===i&&0===s)&&(h=!0),a===l.globals.gridHeight&&r===l.globals.gridHeight&&(h=!0),!l.globals.isBarHorizontal||0!==e&&e!==o-1||(h=!0);var u=new m(this).drawLine(i-(c?g:0),a,s+(c?g:0),r,l.config.grid.borderColor,d);u.node.classList.add(\"apexcharts-gridline\"),h&&l.config.grid.show?this.elGridBorders.add(u):n.add(u)}},{key:\"_drawGridBandRect\",value:function(t){var e=t.c,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.type,n=this.w,l=new m(this.ctx),h=n.globals.barPadForNumericAxis;if(\"column\"!==o||\"datetime\"!==n.config.xaxis.type){var c=n.config.grid[o].colors[e],d=l.drawRect(i-(\"row\"===o?h:0),a,s+(\"row\"===o?2*h:0),r,0,c,n.config.grid[o].opacity);this.elg.add(d),d.attr(\"clip-path\",\"url(#gridRectMask\".concat(n.globals.cuid,\")\")),d.node.classList.add(\"apexcharts-grid-\".concat(o))}}},{key:\"_drawXYLines\",value:function(t){var e=this,i=t.xCount,a=t.tickAmount,s=this.w;if(s.config.grid.xaxis.lines.show||s.config.xaxis.axisTicks.show){var r,o=s.globals.padHorizontal,n=s.globals.gridHeight;s.globals.timescaleLabels.length?function(t){for(var a=t.xC,s=t.x1,r=t.y1,o=t.x2,n=t.y2,l=0;l<a;l++)s=e.xaxisLabels[l].position,o=e.xaxisLabels[l].position,e._drawGridLines({i:l,x1:s,y1:r,x2:o,y2:n,xCount:i,parent:e.elgridLinesV})}({xC:i,x1:o,y1:0,x2:r,y2:n}):(s.globals.isXNumeric&&(i=s.globals.xAxisScale.result.length),function(t){for(var a=t.xC,r=t.x1,o=t.y1,n=t.x2,l=t.y2,h=0;h<a+(s.globals.isXNumeric?0:1);h++)0===h&&1===a&&1===s.globals.dataPoints&&(n=r=s.globals.gridWidth/2),e._drawGridLines({i:h,x1:r,y1:o,x2:n,y2:l,xCount:i,parent:e.elgridLinesV}),n=r+=s.globals.gridWidth/(s.globals.isXNumeric?a-1:a)}({xC:i,x1:o,y1:0,x2:r,y2:n}))}if(s.config.grid.yaxis.lines.show){var l=0,h=0,c=s.globals.gridWidth,d=a+1;this.isRangeBar&&(d=s.globals.labels.length);for(var g=0;g<d+(this.isRangeBar?1:0);g++)this._drawGridLine({i:g,xCount:d+(this.isRangeBar?1:0),x1:0,y1:l,x2:c,y2:h,parent:this.elgridLinesH}),h=l+=s.globals.gridHeight/(this.isRangeBar?d:a)}}},{key:\"_drawInvertedXYLines\",value:function(t){var e=t.xCount,i=this.w;if(i.config.grid.xaxis.lines.show||i.config.xaxis.axisTicks.show)for(var a,s=i.globals.padHorizontal,r=i.globals.gridHeight,o=0;o<e+1;o++){i.config.grid.xaxis.lines.show&&this._drawGridLine({i:o,xCount:e+1,x1:s,y1:0,x2:a,y2:r,parent:this.elgridLinesV}),new V(this.ctx).drawXaxisTicks(s,0,i.globals.dom.elGraphical),a=s=s+i.globals.gridWidth/e+.3}if(i.config.grid.yaxis.lines.show)for(var n=0,l=0,h=i.globals.gridWidth,c=0;c<i.globals.dataPoints+1;c++)this._drawGridLine({i:c,xCount:i.globals.dataPoints+1,x1:0,y1:n,x2:h,y2:l,parent:this.elgridLinesH}),l=n+=i.globals.gridHeight/i.globals.dataPoints}},{key:\"renderGrid\",value:function(){var t=this.w,e=new m(this.ctx);this.elg=e.group({class:\"apexcharts-grid\"}),this.elgridLinesH=e.group({class:\"apexcharts-gridlines-horizontal\"}),this.elgridLinesV=e.group({class:\"apexcharts-gridlines-vertical\"}),this.elGridBorders=e.group({class:\"apexcharts-grid-borders\"}),this.elg.add(this.elgridLinesH),this.elg.add(this.elgridLinesV),t.config.grid.show||(this.elgridLinesV.hide(),this.elgridLinesH.hide(),this.elGridBorders.hide());for(var i,a=t.globals.yAxisScale.length?t.globals.yAxisScale[0].result.length-1:5,s=0;s<t.globals.series.length&&(void 0!==t.globals.yAxisScale[s]&&(a=t.globals.yAxisScale[s].result.length-1),!(a>2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(i--,a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:t.globals.gridWidth/i}}},{key:\"drawGridBands\",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o<e;o++,n++)n>=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:\"row\"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g<t;g++,u++)u>=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:\"column\"}),h+=i.globals.gridWidth/l}}]),t}(),_=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"niceScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if(\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)return t=0,e=i,this.linearScale(t,e,i);t>e?(console.warn(\"axis.min cannot be greater than axis.max\"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var n=[];o<1&&s&&(\"candlestick\"===r.config.chart.type||\"candlestick\"===r.config.series[a].type||\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var l=i+1;l<2?l=2:l>2&&(l-=2);var h=o/l,c=Math.floor(x.log10(h)),d=Math.pow(10,c),g=Math.round(h/d);g<1&&(g=1);var u=g*d,p=u*Math.floor(t/u),f=u*Math.ceil(e/u),b=p;if(s&&o>2){for(;n.push(x.stripNumber(b,7)),!((b+=u)>f););return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}var v=t;(n=[]).push(x.stripNumber(v,7));for(var m=Math.abs(e-t)/i,y=0;y<=i;y++)v+=m,n.push(v);return n[n.length-2]>=e&&n.pop(),{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:\"linearScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:\"logarithmicScaleNice\",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r<s;r++)a.push(Math.pow(i,r));return{result:a,niceMin:a[0],niceMax:a[a.length-1]}}},{key:\"logarithmicScale\",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.log(e)/Math.log(i),r=Math.log(t)/Math.log(i),o=s-r,n=Math.round(o),l=o/n,h=0,c=r;h<n;h++,c+=l)a.push(Math.pow(i,c));return a.push(Math.pow(i,s)),{result:a,niceMin:t,niceMax:e}}},{key:\"_adjustTicksForSmallRange\",value:function(t,e,i){var a=t;if(void 0!==e&&this.w.config.yaxis[e].labels.formatter&&void 0===this.w.config.yaxis[e].tickAmount){var s=Number(this.w.config.yaxis[e].labels.formatter(1));x.isNumber(s)&&0===this.w.globals.yValueDecimal&&(a=Math.ceil(i))}return a<t?a:t}},{key:\"setYScaleForIndex\",value:function(t,e,i){var a=this.w.globals,s=this.w.config,r=a.isBarHorizontal?s.xaxis:s.yaxis[t];void 0===a.yAxisScale[t]&&(a.yAxisScale[t]=[]);var o=Math.abs(i-e);if(r.logarithmic&&o<=5&&(a.invalidLogScale=!0),r.logarithmic&&o>5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:\"setXScale\",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:\"setMultipleYScales\",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:\"sameScaleInMultipleAxes\",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o=\"function\"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n=\"function\"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:\"autoScaleY\",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn(\"autoScaleYaxis is not supported in a multi-yaxis chart.\"),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l<s.length;l++)if(s[l]>=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var p=o[n];r?(p=u[n],h=c=p,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]<h&&null!==o[e]&&(h=o[e]))}))):(h=c=p,o.forEach((function(t,e){if(s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),r<h&&null!==r&&(h=r)}}))),void 0===h&&void 0===c&&(h=d,c=g),c*=c<0?.9:1.1,0===(h*=h<0?1.1:.9)&&0===c&&(h=-1,c=1),c<0&&c<g&&(c=g),h<0&&h>d&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new _(e)}return r(t,[{key:\"init\",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:\"getMinYMaxY\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;\"candlestick\"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):\"boxPlot\"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;d<a;d++){r.dataPoints=Math.max(r.dataPoints,l[d].length),r.categoryLabels.length&&(r.dataPoints=r.categoryLabels.filter((function(t){return void 0!==t})).length),r.labels.length&&\"datetime\"!==s.xaxis.type&&0!==r.series.reduce((function(t,e){return t+e.length}),0)&&(r.dataPoints=Math.max(r.dataPoints,r.labels.length));for(var g=0;g<r.series[d].length;g++){var u=l[d][g];null!==u&&x.isNumber(u)?(void 0!==c[d][g]&&(o=Math.max(o,c[d][g]),e=Math.min(e,c[d][g])),void 0!==h[d][g]&&(e=Math.min(e,h[d][g]),i=Math.max(i,h[d][g])),\"candlestick\"!==this.w.config.chart.type&&\"boxPlot\"!==this.w.config.chart.type&&\"rangeArea\"===this.w.config.chart.type&&\"rangeBar\"===this.w.config.chart.type||(\"candlestick\"!==this.w.config.chart.type&&\"boxPlot\"!==this.w.config.chart.type||void 0!==r.seriesCandleC[d][g]&&(o=Math.max(o,r.seriesCandleO[d][g]),o=Math.max(o,r.seriesCandleH[d][g]),o=Math.max(o,r.seriesCandleL[d][g]),o=Math.max(o,r.seriesCandleC[d][g]),\"boxPlot\"===this.w.config.chart.type&&(o=Math.max(o,r.seriesCandleM[d][g]))),!s.series[d].type||\"candlestick\"===s.series[d].type&&\"boxPlot\"===s.series[d].type&&\"rangeArea\"===s.series[d].type&&\"rangeBar\"===s.series[d].type||(o=Math.max(o,r.series[d][g]),e=Math.min(e,r.series[d][g])),i=o),r.seriesGoals[d]&&r.seriesGoals[d][g]&&Array.isArray(r.seriesGoals[d][g])&&r.seriesGoals[d][g].forEach((function(t){n!==Number.MIN_VALUE&&(n=Math.min(n,t.value),e=n),o=Math.max(o,t.value),i=o})),x.isFloat(u)&&(u=x.noExponents(u),r.yValueDecimal=Math.max(r.yValueDecimal,u.toString().split(\".\")[1].length)),n>h[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return\"rangeBar\"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),\"bar\"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:\"setYRange\",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a<t.series.length;a++){var s=this.getMinYMaxY(a,i,null,a+1);t.minYArr.push(s.minY),t.maxYArr.push(s.maxY),i=s.lowestY}var r=this.getMinYMaxY(0,i,null,t.series.length);if(t.minY=r.minY,t.maxY=r.maxY,i=r.lowestY,e.chart.stacked&&this._setStackedMinMax(),(\"line\"===e.chart.type||\"area\"===e.chart.type||\"candlestick\"===e.chart.type||\"boxPlot\"===e.chart.type||\"rangeBar\"===e.chart.type&&!t.isBarHorizontal)&&t.minY===Number.MIN_VALUE&&i!==-Number.MAX_VALUE&&i!==t.maxY){var o=t.maxY-i;(i>=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&(\"number\"==typeof e.max?t.maxYArr[i]=e.max:\"function\"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&(\"number\"==typeof e.min?t.minYArr[i]=e.min:\"function\"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){[\"min\",\"max\"].forEach((function(i){void 0!==e.xaxis[i]&&\"number\"==typeof e.xaxis[i]&&(\"min\"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:\"setXRange\",value:function(){var t=this.w.globals,e=this.w.config,i=\"numeric\"===e.xaxis.type||\"datetime\"===e.xaxis.type||\"category\"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;e<t.series.length;e++)if(t.labels[e])for(var i=0;i<t.labels[e].length;i++)null!==t.labels[e][i]&&x.isNumber(t.labels[e][i])&&(t.maxX=Math.max(t.maxX,t.labels[e][i]),t.initialMaxX=Math.max(t.maxX,t.labels[e][i]),t.minX=Math.min(t.minX,t.labels[e][i]),t.initialMinX=Math.min(t.minX,t.labels[e][i]))}(),t.noLabelsProvided&&0===e.xaxis.categories.length&&(t.maxX=t.labels[t.labels.length-1],t.initialMaxX=t.labels[t.labels.length-1],t.minX=1,t.initialMinX=1),t.isXNumeric||t.noLabelsProvided||t.dataFormatXNumeric){var a;if(void 0===e.xaxis.tickAmount?(a=Math.round(t.svgWidth/150),\"numeric\"===e.xaxis.type&&t.dataPoints<30&&(a=t.dataPoints-1),a>t.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):\"dataPoints\"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&\"number\"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&\"number\"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r<t.maxX;r++)s.push(r+1);t.xAxisScale={result:s,niceMin:s[0],niceMax:s[s.length-1]}}else t.xAxisScale=this.scales.setXScale(t.minX,t.maxX);else t.xAxisScale=this.scales.linearScale(1,a,a),t.noLabelsProvided&&t.labels.length>0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:\"setZRange\",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e<t.series.length;e++)if(void 0!==t.seriesZ[e])for(var i=0;i<t.seriesZ[e].length;i++)null!==t.seriesZ[e][i]&&x.isNumber(t.seriesZ[e][i])&&(t.maxZ=Math.max(t.maxZ,t.seriesZ[e][i]),t.minZ=Math.min(t.minZ,t.seriesZ[e][i]))}},{key:\"_handleSingleDataPoint\",value:function(){var t=this.w.globals,e=this.w.config;if(t.minX===t.maxX){var i=new I(this.ctx);if(\"datetime\"===e.xaxis.type){var a=i.getDate(t.minX);e.xaxis.labels.datetimeUTC?a.setUTCDate(a.getUTCDate()-2):a.setDate(a.getDate()-2),t.minX=new Date(a).getTime();var s=i.getDate(t.maxX);e.xaxis.labels.datetimeUTC?s.setUTCDate(s.getUTCDate()+2):s.setDate(s.getDate()+2),t.maxX=new Date(s).getTime()}else(\"numeric\"===e.xaxis.type||\"category\"===e.xaxis.type&&!t.noLabelsProvided)&&(t.minX=t.minX-2,t.initialMinX=t.minX,t.maxX=t.maxX+2,t.initialMaxX=t.maxX)}}},{key:\"_getMinXDiff\",value:function(){var t=this.w.globals;t.isXNumeric&&t.seriesX.forEach((function(e,i){1===e.length&&e.push(t.seriesX[t.maxValsInArrayIndex][t.seriesX[t.maxValsInArrayIndex].length-1]);var a=e.slice();a.sort((function(t,e){return t-e})),a.forEach((function(e,i){if(i>0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:\"_setStackedMinMax\",value:function(){var t=this,e=this.w.globals;if(e.series.length){var i=e.seriesGroups;i.length||(i=[this.w.config.series.map((function(t){return t.name}))]);var a={},s={};i.forEach((function(i){a[i]=[],s[i]=[],t.w.config.series.map((function(t,e){return i.indexOf(t.name)>-1?e:null})).filter((function(t){return null!==t})).forEach((function(t){for(var r=0;r<e.series[e.maxValsInArrayIndex].length;r++)void 0===a[i][r]&&(a[i][r]=0,s[i][r]=0),null!==e.series[t][r]&&x.isNumber(e.series[t][r])&&(e.series[t][r]>0?a[i][r]+=parseFloat(e.series[t][r])+1e-4:s[i][r]+=parseFloat(e.series[t][r]))}))})),Object.entries(a).forEach((function(t){var i=g(t,1)[0];a[i].forEach((function(t,r){e.maxY=Math.max(e.maxY,a[i][r]),e.minY=Math.min(e.minY,s[i][r])}))}))}}}]),t}(),q=function(){function t(e,i){a(this,t),this.ctx=e,this.elgrid=i,this.w=e.w;var s=this.w;this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.axisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xAxisoffX=0,\"bottom\"===s.config.xaxis.position&&(this.xAxisoffX=s.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new B(e)}return r(t,[{key:\"drawYaxis\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.yaxis[t].labels.style,r=s.fontSize,o=s.fontFamily,n=s.fontWeight,l=a.group({class:\"apexcharts-yaxis\",rel:t,transform:\"translate(\"+i.globals.translateYAxisX[t]+\", 0)\"});if(this.axesUtils.isYAxisHidden(t))return l;var h=a.group({class:\"apexcharts-yaxis-texts-g\"});l.add(h);var c=i.globals.yAxisScale[t].result.length-1,d=i.globals.gridHeight/c,g=i.globals.translateY,u=i.globals.yLabelFormatters[t],p=i.globals.yAxisScale[t].result.slice();p=this.axesUtils.checkForReversedLabels(t,p);var f=\"\";if(i.config.yaxis[t].labels.show)for(var x=function(l){var x=p[l];x=u(x,l,i);var b=i.config.yaxis[t].labels.padding;i.config.yaxis[t].opposite&&0!==i.config.yaxis.length&&(b*=-1);var v=\"end\";i.config.yaxis[t].opposite&&(v=\"start\"),\"left\"===i.config.yaxis[t].labels.align?v=\"start\":\"center\"===i.config.yaxis[t].labels.align?v=\"middle\":\"right\"===i.config.yaxis[t].labels.align&&(v=\"end\");var m=e.axesUtils.getYAxisForeColor(s.colors,t),y=a.drawText({x:b,y:g+c/10+i.config.yaxis[t].labels.offsetY+1,text:x,textAnchor:v,fontSize:r,fontFamily:o,fontWeight:n,maxWidth:i.config.yaxis[t].labels.maxWidth,foreColor:Array.isArray(m)?m[l]:m,isPlainText:!1,cssClass:\"apexcharts-yaxis-label \"+s.cssClass});l===c&&(f=y),h.add(y);var w=document.createElementNS(i.globals.SVGNS,\"title\");if(w.textContent=Array.isArray(x)?x.join(\" \"):x,y.node.appendChild(w),0!==i.config.yaxis[t].labels.rotate){var k=a.rotateAroundCenter(f.node),A=a.rotateAroundCenter(y.node);y.node.setAttribute(\"transform\",\"rotate(\".concat(i.config.yaxis[t].labels.rotate,\" \").concat(k.x,\" \").concat(A.y,\")\"))}g+=d},b=c;b>=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:\"apexcharts-yaxis-title\"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:\"end\",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \"+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:\"drawYaxisInversed\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-xaxis apexcharts-yaxis-inversed\"}),s=i.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(e.globals.translateXAxisX,\", \").concat(e.globals.translateXAxisY,\")\")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g<d:g>=0;d?g++:g--){var u=h[g];u=l(u,g,e);var p=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(h,c,p,g,this.drawnLabels,this.xaxisFontSize);p=f.x,u=f.text,this.drawnLabels.push(f.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=\"\"),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u=\"\")}var x=i.drawText({x:p,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-(\"top\"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:\"middle\",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-xaxis-label \"+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,\"title\");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:\"inversedYAxisBorder\",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;\"bar\"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:\"inversedYAxisTitleText\",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:\"apexcharts-xaxis-title apexcharts-yaxis-title-inversed\"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:\"middle\",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:\"yAxisTitleRotate\",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(\" .apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-texts-g\"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-title text\"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute(\"x\",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute(\"transform\",\"rotate(\".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate,\" \").concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"xPaddingForYAxisTitle\",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:\"setYAxisXPosition\",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:\"setYAxisTextAlignments\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-yaxis\");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-texts-g\")),r=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-label\"));r=x.listToArray(r);var o=s.getBoundingClientRect();\"left\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"start\")})),a.opposite||s.setAttribute(\"transform\",\"translate(-\".concat(o.width,\", 0)\"))):\"center\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"middle\")})),s.setAttribute(\"transform\",\"translate(\".concat(o.width/2*(a.opposite?1:-1),\", 0)\"))):\"right\"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"end\")})),a.opposite&&s.setAttribute(\"transform\",\"translate(\".concat(o.width,\", 0)\")))}}))}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:\"addEventListener\",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:\"removeEventListener\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:\"fireEvent\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r<s;r++)a[r].apply(null,e)}}},{key:\"setupEventHandlers\",value:function(){var t=this,e=this.w,i=this.ctx,a=e.globals.dom.baseEl.querySelector(e.globals.chartClass);this.ctx.eventList.forEach((function(t){a.addEventListener(t,(function(t){var a=Object.assign({},e,{seriesIndex:e.globals.capturedSeriesIndex,dataPointIndex:e.globals.capturedDataPointIndex});\"mousemove\"===t.type||\"touchmove\"===t.type?\"function\"==typeof e.config.chart.events.mouseMove&&e.config.chart.events.mouseMove(t,i,a):\"mouseleave\"===t.type||\"touchleave\"===t.type?\"function\"==typeof e.config.chart.events.mouseLeave&&e.config.chart.events.mouseLeave(t,i,a):(\"mouseup\"===t.type&&1===t.which||\"touchend\"===t.type)&&(\"function\"==typeof e.config.chart.events.click&&e.config.chart.events.click(t,i,a),i.ctx.events.fireEvent(\"click\",[t,i,a]))}),{capture:!1,passive:!0})})),this.ctx.eventList.forEach((function(i){e.globals.dom.baseEl.addEventListener(i,t.documentEvent,{passive:!0})})),this.ctx.core.setupBrushHandler()}},{key:\"documentEvent\",value:function(t){var e=this.w,i=t.target.className;if(\"click\"===t.type){var a=e.globals.dom.baseEl.querySelector(\".apexcharts-menu\");a&&a.classList.contains(\"apexcharts-menu-open\")&&\"apexcharts-menu-icon\"!==i&&a.classList.remove(\"apexcharts-menu-open\")}e.globals.clientX=\"touchmove\"===t.type?t.touches[0].clientX:t.clientX,e.globals.clientY=\"touchmove\"===t.type?t.touches[0].clientY:t.clientY}}]),t}(),$=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"setCurrentLocaleValues\",value:function(t){var e=this.w.config.chart.locales;window.Apex.chart&&window.Apex.chart.locales&&window.Apex.chart.locales.length>0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error(\"Wrong locale name provided. Please make sure you set the correct locale name in options\");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawAxis\",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new V(this.ctx,e),l=new q(this.ctx,e);r.axisCharts&&\"radar\"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),\"back\"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),Q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawXCrosshairs\",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,f=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){\"gradient\"===r&&(y=e.drawGradient(\"vertical\",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:\"apexcharts-xcrosshairs\",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:\"none\",\"fill-opacity\":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,\"stroke-width\":t.config.xaxis.crosshairs.stroke.width,\"stroke-dasharray\":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:f,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:\"drawYCrosshairs\",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:\"apexcharts-ycrosshairs\"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:\"apexcharts-ycrosshairs-hidden\"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"checkResponsiveConfig\",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new E({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l<s.length;l++)o<s[l].breakpoint&&(t=y.extendArrayProps(r,s[l].options,i),t=x.extend(i.config,t),e.overrideResponsiveOptions(t))};if(t){var n=y.extendArrayProps(r,t,i);n=x.extend(i.config,n),o(n=x.extend(n,t))}else o({})}}},{key:\"overrideResponsiveOptions\",value:function(t){var e=new E(t).init({responsiveOverride:!0});this.w.config=e}}]),t}(),tt=function(){function t(e){a(this,t),this.ctx=e,this.colors=[],this.w=e.w;var i=this.w;this.isColorFn=!1,this.isHeatmapDistributed=\"treemap\"===i.config.chart.type&&i.config.plotOptions.treemap.distributed||\"heatmap\"===i.config.chart.type&&i.config.plotOptions.heatmap.distributed,this.isBarDistributed=i.config.plotOptions.bar.distributed&&(\"bar\"===i.config.chart.type||\"rangeBar\"===i.config.chart.type)}return r(t,[{key:\"init\",value:function(){this.setDefaultColors()}},{key:\"setDefaultColors\",value:function(){var t,e=this,i=this.w,a=new x;if(i.globals.dom.elWrap.classList.add(\"apexcharts-theme-\".concat(i.config.theme.mode)),void 0===i.config.colors||0===(null===(t=i.config.colors)||void 0===t?void 0:t.length)?i.globals.colors=this.predefined():(i.globals.colors=i.config.colors,Array.isArray(i.config.colors)&&i.config.colors.length>0&&\"function\"==typeof i.config.colors[0]&&(i.globals.colors=i.config.series.map((function(t,a){var s=i.config.colors[a];return s||(s=i.config.colors[0]),\"function\"==typeof s?(e.isColorFn=!0,s({value:i.globals.axisCharts?i.globals.series[a][0]?i.globals.series[a][0]:0:i.globals.series[a],seriesIndex:a,dataPointIndex:a,w:i})):s})))),i.globals.seriesColors.map((function(t,e){t&&(i.globals.colors[e]=t)})),i.config.theme.monochrome.enabled){var s=[],r=i.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(r=i.globals.series[0].length*i.globals.series.length);for(var o=i.config.theme.monochrome.color,n=1/(r/i.config.theme.monochrome.shadeIntensity),l=i.config.theme.monochrome.shadeTo,h=0,c=0;c<r;c++){var d=void 0;\"dark\"===l?(d=a.shadeColor(-1*h,o),h+=n):(d=a.shadeColor(h,o),h+=n),s.push(d)}i.globals.colors=s.slice()}var g=i.globals.colors.slice();this.pushExtraColors(i.globals.colors);[\"fill\",\"stroke\"].forEach((function(t){void 0===i.config[t].colors?i.globals[t].colors=e.isColorFn?i.config.colors:g:i.globals[t].colors=i.config[t].colors.slice(),e.pushExtraColors(i.globals[t].colors)})),void 0===i.config.dataLabels.style.colors?i.globals.dataLabels.style.colors=g:i.globals.dataLabels.style.colors=i.config.dataLabels.style.colors.slice(),this.pushExtraColors(i.globals.dataLabels.style.colors,50),void 0===i.config.plotOptions.radar.polygons.fill.colors?i.globals.radarPolygons.fill.colors=[\"dark\"===i.config.theme.mode?\"#424242\":\"none\"]:i.globals.radarPolygons.fill.colors=i.config.plotOptions.radar.polygons.fill.colors.slice(),this.pushExtraColors(i.globals.radarPolygons.fill.colors,20),void 0===i.config.markers.colors?i.globals.markers.colors=g:i.globals.markers.colors=i.config.markers.colors.slice(),this.pushExtraColors(i.globals.markers.colors)}},{key:\"pushExtraColors\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||\"heatmap\"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.length<s)for(var r=s-t.length,o=0;o<r;o++)t.push(t[o])}},{key:\"updateThemeOptions\",value:function(t){t.chart=t.chart||{},t.tooltip=t.tooltip||{};var e=t.theme.mode||\"light\",i=t.theme.palette?t.theme.palette:\"dark\"===e?\"palette4\":\"palette1\",a=t.chart.foreColor?t.chart.foreColor:\"dark\"===e?\"#f6f7f8\":\"#373d3f\";return t.tooltip.theme=e,t.chart.foreColor=a,t.theme.palette=i,t}},{key:\"predefined\",value:function(){switch(this.w.config.theme.palette){case\"palette1\":default:this.colors=[\"#008FFB\",\"#00E396\",\"#FEB019\",\"#FF4560\",\"#775DD0\"];break;case\"palette2\":this.colors=[\"#3f51b5\",\"#03a9f4\",\"#4caf50\",\"#f9ce1d\",\"#FF9800\"];break;case\"palette3\":this.colors=[\"#33b2df\",\"#546E7A\",\"#d4526e\",\"#13d8aa\",\"#A5978B\"];break;case\"palette4\":this.colors=[\"#4ecdc4\",\"#c7f464\",\"#81D4FA\",\"#fd6a6a\",\"#546E7A\"];break;case\"palette5\":this.colors=[\"#2b908f\",\"#f9a3a4\",\"#90ee7e\",\"#fa4443\",\"#69d2e7\"];break;case\"palette6\":this.colors=[\"#449DD1\",\"#F86624\",\"#EA3546\",\"#662E9B\",\"#C5D86D\"];break;case\"palette7\":this.colors=[\"#D7263D\",\"#1B998B\",\"#2E294E\",\"#F46036\",\"#E2C044\"];break;case\"palette8\":this.colors=[\"#662E9B\",\"#F86624\",\"#F9C80E\",\"#EA3546\",\"#43BCCD\"];break;case\"palette9\":this.colors=[\"#5C4742\",\"#A5978B\",\"#8D5B4C\",\"#5A2A27\",\"#C4BBAF\"];break;case\"palette10\":this.colors=[\"#A300D6\",\"#7D02EB\",\"#5653FE\",\"#2983FF\",\"#00B1F2\"]}return this.colors}}]),t}(),et=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"draw\",value:function(){this.drawTitleSubtitle(\"title\"),this.drawTitleSubtitle(\"subtitle\")}},{key:\"drawTitleSubtitle\",value:function(t){var e=this.w,i=\"title\"===t?e.config.title:e.config.subtitle,a=e.globals.svgWidth/2,s=i.offsetY,r=\"middle\";if(\"left\"===i.align?(a=10,r=\"start\"):\"right\"===i.align&&(a=e.globals.svgWidth-10,r=\"end\"),a+=i.offsetX,s=s+parseInt(i.style.fontSize,10)+i.margin/2,void 0!==i.text){var o=new m(this.ctx).drawText({x:a,y:s,text:i.text,textAnchor:r,fontSize:i.style.fontSize,fontFamily:i.style.fontFamily,fontWeight:i.style.fontWeight,foreColor:i.style.color,opacity:1});o.node.setAttribute(\"class\",\"apexcharts-\".concat(t,\"-text\")),e.globals.dom.Paper.add(o)}}}]),t}(),it=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getTitleSubtitleCoords\",value:function(t){var e=this.w,i=0,a=0,s=\"title\"===t?e.config.title.floating:e.config.subtitle.floating,r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(t,\"-text\"));if(null!==r&&!s){var o=r.getBoundingClientRect();i=o.width,a=e.globals.axisCharts?o.height+5:o.height}return{width:i,height:a}}},{key:\"getLegendsRect\",value:function(){var t=this.w,e=t.globals.dom.elLegendWrap;t.config.legend.height||\"top\"!==t.config.legend.position&&\"bottom\"!==t.config.legend.position||(e.style.maxHeight=t.globals.svgHeight/2+\"px\");var i=Object.assign({},x.getBoundingClientRect(e));return null!==e&&!t.config.legend.floating&&t.config.legend.show?this.dCtx.lgRect={x:i.x,y:i.y,height:i.height,width:0===i.height?0:i.width}:this.dCtx.lgRect={x:0,y:0,height:0,width:0},\"left\"!==t.config.legend.position&&\"right\"!==t.config.legend.position||1.5*this.dCtx.lgRect.width>t.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:\"getLargestStringFromMultiArr\",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getxAxisLabelsCoords\",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=\"left\"!==e.config.legend.position&&\"right\"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new T(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||\"\"===String(r).trim())&&(o=r=\"1\");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,\"rotate(\".concat(e.config.xaxis.labels.rotate,\" 0 0)\"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:\"getxAxisGroupLabelsCoords\",value:function(){var t,e=this.w;if(!e.globals.hasXaxisGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:\"getxAxisTitleCoords\",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:\"getxAxisTimeScaleLabelsCoords\",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error(\"You have possibly supplied invalid Date format. Please supply a valid JavaScript Date\"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:\"additionalPaddingXLabels\",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){s.yaxis.length>1&&function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)}(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c=\"right\"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||\"bar\"!==s.chart.type&&\"candlestick\"!==s.chart.type&&\"rangeBar\"!==s.chart.type&&\"boxPlot\"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else\"datetime\"===r?e.dCtx.gridPad.right<o&&!a.rotateXLabels&&(a.skipLastTimelinelabel=!0):\"datetime\"!==r&&e.dCtx.gridPad.right<o/2-e.dCtx.yAxisWidthRight&&!a.rotateXLabels&&!i.config.xaxis.labels.trim&&(\"between\"!==i.config.xaxis.tickPlacement||i.globals.isBarHorizontal)&&(e.dCtx.xPadRight=o/2+1)}(t)};s.yaxis.forEach((function(t,i){n?(e.dCtx.gridPad.left<o&&(e.dCtx.xPadLeft=o/2+1),e.dCtx.xPadRight=o/2+1):l(t,i)}))}}]),t}(),st=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getyAxisLabelsCoords\",value:function(){var t=this,e=this.w,i=[],a=10,s=new B(this.dCtx.ctx);return e.config.yaxis.map((function(r,o){var n=e.globals.yAxisScale[o],l=0;if(!s.isYAxisHidden(o)&&r.labels.show&&void 0!==r.labels.minWidth&&(l=r.labels.minWidth),!s.isYAxisHidden(o)&&r.labels.show&&n.result.length){var h=e.globals.yLabelFormatters[o],c=n.niceMin===Number.MIN_VALUE?0:n.niceMin,d=String(c).length>String(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var p=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(p),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,p)}var f=new m(t.dCtx.ctx),b=\"rotate(\".concat(r.labels.rotate,\" 0 0)\"),v=f.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=f.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:\"getyAxisTitleCoords\",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r=\"rotate(\".concat(e.title.rotate,\" 0 0)\"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:\"getTotalYAxisWidth\",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"gridPadForColumnsInNumericAxis\",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return\"bar\"===t||\"rangeBar\"===t||\"candlestick\"===t||\"boxPlot\"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:\"gridPadFortitleSubtitle\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;[\"title\",\"subtitle\"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||\"bottom\"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"title\"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"subtitle\");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:\"setGridXPosForDualYAxis\",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:\"plotCoords\",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:\"setDimensionsForAxisCharts\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;(\"radar\"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||\"treemap\"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||\"treemap\"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch(\"top\"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case\"bottom\":i.translateY=c,d();break;case\"top\":i.translateY=this.lgRect.height+c,d();break;case\"left\":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case\"right\":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error(\"Legend position not supported\")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:\"setDimensionsForNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s=\"pie\"===i.chart.type||\"polarArea\"===i.chart.type||\"donut\"===i.chart.type?\"pie\":\"radialBar\",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case\"bottom\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"top\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"left\":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case\"right\":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error(\"Legend position not supported\")}}},{key:\"conditionalChecksForAxisCoords\",value:function(t,e,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&\"bottom\"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeight<a.config.xaxis.labels.minHeight&&(this.xAxisHeight=a.config.xaxis.labels.minHeight),a.config.xaxis.floating&&(this.xAxisHeight=0);var h=0,c=0;a.config.yaxis.forEach((function(t){h+=t.labels.minWidth,c+=t.labels.maxWidth})),this.yAxisWidth<h&&(this.yAxisWidth=h),this.yAxisWidth>c&&(this.yAxisWidth=c)}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:\"getLegendStyles\",value:function(){var t=document.createElement(\"style\");t.setAttribute(\"type\",\"text/css\");var e=document.createTextNode(\"\\t\\n    \\t\\n      .apexcharts-legend {\\t\\n        display: flex;\\t\\n        overflow: auto;\\t\\n        padding: 0 10px;\\t\\n      }\\t\\n      .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\\t\\n        flex-wrap: wrap\\t\\n      }\\t\\n      .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\t\\n        flex-direction: column;\\t\\n        bottom: 0;\\t\\n      }\\t\\n      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\t\\n        justify-content: flex-start;\\t\\n      }\\t\\n      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\\t\\n        justify-content: center;  \\t\\n      }\\t\\n      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\\t\\n        justify-content: flex-end;\\t\\n      }\\t\\n      .apexcharts-legend-series {\\t\\n        cursor: pointer;\\t\\n        line-height: normal;\\t\\n      }\\t\\n      .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\\t\\n        display: flex;\\t\\n        align-items: center;\\t\\n      }\\t\\n      .apexcharts-legend-text {\\t\\n        position: relative;\\t\\n        font-size: 14px;\\t\\n      }\\t\\n      .apexcharts-legend-text *, .apexcharts-legend-marker * {\\t\\n        pointer-events: none;\\t\\n      }\\t\\n      .apexcharts-legend-marker {\\t\\n        position: relative;\\t\\n        display: inline-block;\\t\\n        cursor: pointer;\\t\\n        margin-right: 3px;\\t\\n        border-style: solid;\\n      }\\t\\n      \\t\\n      .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\\t\\n        display: inline-block;\\t\\n      }\\t\\n      .apexcharts-legend-series.apexcharts-no-click {\\t\\n        cursor: auto;\\t\\n      }\\t\\n      .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\\t\\n        display: none !important;\\t\\n      }\\t\\n      .apexcharts-inactive-legend {\\t\\n        opacity: 0.45;\\t\\n      }\");return t.appendChild(e),t}},{key:\"getLegendBBox\",value:function(){var t=this.w.globals.dom.baseEl.querySelector(\".apexcharts-legend\").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:\"appendToForeignObject\",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:\"toggleDataSeries\",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||\"radialBar\"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\")),r=parseInt(s.getAttribute(\"data:realIndex\"),10)):(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(t+1,\"']\")),r=parseInt(s.getAttribute(\"rel\"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(\" .apexcharts-series[rel='\".concat(t+1,\"'] path\")),n=a.config.chart.type;if(\"pie\"===n||\"polarArea\"===n||\"donut\"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire(\"click\")}}},{key:\"hideSeries\",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l<n.length;l++)n[l].classList.contains(\"apexcharts-series-markers-wrap\")&&(n[l].classList.contains(\"apexcharts-hide\")?n[l].classList.remove(\"apexcharts-hide\"):n[l].classList.add(\"apexcharts-hide\"));a.globals.allSeriesCollapsed=a.globals.collapsedSeries.length===a.config.series.length,s=this._getSeriesBasedOnCollapsedState(s),this.lgCtx.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled)}},{key:\"riseCollapsedSeries\",value:function(t,e,i){var a=this.w,s=x.clone(a.config.series);if(t.length>0){for(var r=0;r<t.length;r++)t[r].index===i&&(a.globals.axisCharts?(s[i].data=t[r].data.slice(),t.splice(r,1),e.splice(r,1),a.globals.risingSeries.push(i)):(s[i]=t[r].data,t.splice(r,1),e.splice(r,1),a.globals.risingSeries.push(i)));s=this._getSeriesBasedOnCollapsedState(s),this.lgCtx.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled)}}},{key:\"_getSeriesBasedOnCollapsedState\",value:function(t){var e=this.w;return e.globals.axisCharts?t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed=\"bar\"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new nt(this)}return r(t,[{key:\"init\",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName(\"head\")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),\"bottom\"===i.legend.position||\"top\"===i.legend.position?this.legendAlignHorizontal():\"right\"!==i.legend.position&&\"left\"!==i.legend.position||this.legendAlignVertical()}}},{key:\"drawLegends\",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if(\"heatmap\"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+\" - \"+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h,c=o(a[l],{seriesIndex:l,w:e}),d=!1,g=!1;if(e.globals.collapsedSeries.length>0)for(var u=0;u<e.globals.collapsedSeries.length;u++)e.globals.collapsedSeries[u].index===l&&(d=!0);if(e.globals.ancillaryCollapsedSeriesIndices.length>0)for(var p=0;p<e.globals.ancillaryCollapsedSeriesIndices.length;p++)e.globals.ancillaryCollapsedSeriesIndices[p]===l&&(g=!0);var f=document.createElement(\"span\");f.classList.add(\"apexcharts-legend-marker\");var b=e.config.legend.markers.offsetX,v=e.config.legend.markers.offsetY,w=e.config.legend.markers.height,k=e.config.legend.markers.width,A=e.config.legend.markers.strokeWidth,S=e.config.legend.markers.strokeColor,C=e.config.legend.markers.radius,L=f.style;L.background=s[l],L.color=s[l],L.setProperty(\"background\",s[l],\"important\"),e.config.legend.markers.fillColors&&e.config.legend.markers.fillColors[l]&&(L.background=e.config.legend.markers.fillColors[l]),void 0!==e.globals.seriesColors[l]&&(L.background=e.globals.seriesColors[l],L.color=e.globals.seriesColors[l]),L.height=Array.isArray(w)?parseFloat(w[l])+\"px\":parseFloat(w)+\"px\",L.width=Array.isArray(k)?parseFloat(k[l])+\"px\":parseFloat(k)+\"px\",L.left=(Array.isArray(b)?parseFloat(b[l]):parseFloat(b))+\"px\",L.top=(Array.isArray(v)?parseFloat(v[l]):parseFloat(v))+\"px\",L.borderWidth=Array.isArray(A)?A[l]:A,L.borderColor=Array.isArray(S)?S[l]:S,L.borderRadius=Array.isArray(C)?parseFloat(C[l])+\"px\":parseFloat(C)+\"px\",e.config.legend.markers.customHTML&&(Array.isArray(e.config.legend.markers.customHTML)?e.config.legend.markers.customHTML[l]&&(f.innerHTML=e.config.legend.markers.customHTML[l]()):f.innerHTML=e.config.legend.markers.customHTML()),m.setAttrs(f,{rel:l+1,\"data:collapsed\":d||g}),(d||g)&&f.classList.add(\"apexcharts-inactive-legend\");var P=document.createElement(\"div\"),I=document.createElement(\"span\");I.classList.add(\"apexcharts-legend-text\"),I.innerHTML=Array.isArray(c)?c.join(\" \"):c;var T=e.config.legend.labels.useSeriesColors?e.globals.colors[l]:Array.isArray(e.config.legend.labels.colors)?null===(h=e.config.legend.labels.colors)||void 0===h?void 0:h[l]:e.config.legend.labels.colors;T||(T=e.config.chart.foreColor),I.style.color=T,I.style.fontSize=parseFloat(e.config.legend.fontSize)+\"px\",I.style.fontWeight=e.config.legend.fontWeight,I.style.fontFamily=i||e.config.chart.fontFamily,m.setAttrs(I,{rel:l+1,i:l,\"data:default-text\":encodeURIComponent(c),\"data:collapsed\":d||g}),P.appendChild(f),P.appendChild(I);var M=new y(this.ctx);if(!e.config.legend.showForZeroSeries)0===M.getSeriesTotalByIndex(l)&&M.seriesHaveSameValues(l)&&!M.isSeriesNull(l)&&-1===e.globals.collapsedSeriesIndices.indexOf(l)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(l)&&P.classList.add(\"apexcharts-hidden-zero-series\");e.config.legend.showForNullSeries||M.isSeriesNull(l)&&-1===e.globals.collapsedSeriesIndices.indexOf(l)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(l)&&P.classList.add(\"apexcharts-hidden-null-series\"),e.globals.dom.elLegendWrap.appendChild(P),e.globals.dom.elLegendWrap.classList.add(\"apexcharts-align-\".concat(e.config.legend.horizontalAlign)),e.globals.dom.elLegendWrap.classList.add(\"apx-legend-position-\"+e.config.legend.position),P.classList.add(\"apexcharts-legend-series\"),P.style.margin=\"\".concat(e.config.legend.itemMargin.vertical,\"px \").concat(e.config.legend.itemMargin.horizontal,\"px\"),e.globals.dom.elLegendWrap.style.width=e.config.legend.width?e.config.legend.width+\"px\":\"\",e.globals.dom.elLegendWrap.style.height=e.config.legend.height?e.config.legend.height+\"px\":\"\",m.setAttrs(P,{rel:l+1,seriesName:x.escapeString(a[l]),\"data:collapsed\":d||g}),(d||g)&&P.classList.add(\"apexcharts-inactive-legend\"),e.config.legend.onItemClick.toggleDataSeries||P.classList.add(\"apexcharts-no-click\")}e.globals.dom.elWrap.addEventListener(\"click\",t.onLegendClick,!0),e.config.legend.onItemHover.highlightDataSeries&&0===e.config.legend.customLegendItems.length&&(e.globals.dom.elWrap.addEventListener(\"mousemove\",t.onLegendHovered,!0),e.globals.dom.elWrap.addEventListener(\"mouseout\",t.onLegendHovered,!0))}},{key:\"setLegendWrapXY\",value:function(t,e){var i=this.w,a=i.globals.dom.elLegendWrap,s=a.getBoundingClientRect(),r=0,o=0;if(\"bottom\"===i.config.legend.position)o+=i.globals.svgHeight-s.height/2;else if(\"top\"===i.config.legend.position){var n=new ot(this.ctx),l=n.dimHelpers.getTitleSubtitleCoords(\"title\").height,h=n.dimHelpers.getTitleSubtitleCoords(\"subtitle\").height;o=o+(l>0?l-10:0)+(h>0?h-10:0)}a.style.position=\"absolute\",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+\"px\",a.style.top=o+\"px\",\"bottom\"===i.config.legend.position?(a.style.top=\"auto\",a.style.bottom=5-i.config.legend.offsetY+\"px\"):\"right\"===i.config.legend.position&&(a.style.left=\"auto\",a.style.right=25+i.config.legend.offsetX+\"px\");[\"width\",\"height\"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+\"px\")}))}},{key:\"legendAlignHorizontal\",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new ot(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords(\"title\"),s=i.dimHelpers.getTitleSubtitleCoords(\"subtitle\"),r=0;\"bottom\"===t.config.legend.position?r=-e.clwh/1.8:\"top\"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:\"legendAlignVertical\",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;\"left\"===t.config.legend.position&&(i=20),\"right\"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:\"onLegendHovered\",value:function(t){var e=this.w,i=t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\");if(\"heatmap\"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute(\"rel\"),10)-1;this.ctx.events.fireEvent(\"legendHover\",[this.ctx,a,this.w]),new N(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains(\"apexcharts-inactive-legend\")&&i&&new N(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:\"onLegendClick\",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\"))){var i=parseInt(t.target.getAttribute(\"rel\"),10)-1,a=\"true\"===t.target.getAttribute(\"data:collapsed\"),s=this.w.config.chart.events.legendClick;\"function\"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendClick\",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;\"function\"==typeof r&&t.target.classList.contains(\"apexcharts-legend-marker\")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendMarkerClick\",[this.ctx,i,this.w])),\"treemap\"!==e.config.chart.type&&\"heatmap\"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass=\"apexcharts-selected\",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:\"createToolbar\",value:function(){var t=this,e=this.w,i=function(){return document.createElement(\"div\")},a=i();if(a.setAttribute(\"class\",\"apexcharts-toolbar\"),a.style.top=e.config.chart.toolbar.offsetY+\"px\",a.style.right=3-e.config.chart.toolbar.offsetX+\"px\",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s<this.t.customIcons.length;s++)this.elCustomIcons.push(i());var r=[],o=function(i,a,s){var o=i.toLowerCase();t.t[o]&&e.config.chart.zoom.enabled&&r.push({el:a,icon:\"string\"==typeof t.t[o]?t.t[o]:s,title:t.localeValues[i],class:\"apexcharts-\".concat(o,\"-icon\")})};o(\"zoomIn\",this.elZoomIn,'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\n    <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n    <path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/>\\n</svg>\\n'),o(\"zoomOut\",this.elZoomOut,'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\n    <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n    <path d=\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/>\\n</svg>\\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:\"zoom\"===i?t.elZoom:t.elSelection,icon:\"string\"==typeof t.t[i]?t.t[i]:\"zoom\"===i?'<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\\n    <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\\n    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\\n    <path d=\"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\"/>\\n</svg>':'<svg fill=\"#6E8192\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\\n    <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n    <path d=\"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z\"/>\\n</svg>',title:t.localeValues[\"zoom\"===i?\"selectionZoom\":\"selection\"],class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-\".concat(i,\"-icon\")})};n(\"zoom\"),n(\"selection\"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:\"string\"==typeof this.t.pan?this.t.pan:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" fill=\"#000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\\n    <defs>\\n        <path d=\"M0 0h24v24H0z\" id=\"a\"/>\\n    </defs>\\n    <clipPath id=\"b\">\\n        <use overflow=\"visible\" xlink:href=\"#a\"/>\\n    </clipPath>\\n    <path clip-path=\"url(#b)\" d=\"M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z\"/>\\n</svg>',title:this.localeValues.pan,class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-pan-icon\"}),o(\"reset\",this.elZoomReset,'<svg fill=\"#000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\\n    <path d=\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"/>\\n    <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\\n</svg>'),this.t.download&&r.push({el:this.elMenuIcon,icon:\"string\"==typeof this.t.download?this.t.download:'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"/></svg>',title:this.localeValues.menu,class:\"apexcharts-menu-icon\"});for(var l=0;l<this.elCustomIcons.length;l++)r.push({el:this.elCustomIcons[l],icon:this.t.customIcons[l].icon,title:this.t.customIcons[l].title,index:this.t.customIcons[l].index,class:\"apexcharts-toolbar-custom-icon \"+this.t.customIcons[l].class});r.forEach((function(t,e){t.index&&x.moveIndexInArray(r,e,t.index)}));for(var h=0;h<r.length;h++)m.setAttrs(r[h].el,{class:r[h].class,title:r[h].title}),r[h].el.innerHTML=r[h].icon,a.appendChild(r[h].el);this._createHamburgerMenu(a),e.globals.zoomEnabled?this.elZoom.classList.add(this.selectedClass):e.globals.panEnabled?this.elPan.classList.add(this.selectedClass):e.globals.selectionEnabled&&this.elSelection.classList.add(this.selectedClass),this.addToolbarEventListeners()}},{key:\"_createHamburgerMenu\",value:function(t){this.elMenuItems=[],t.appendChild(this.elMenu),m.setAttrs(this.elMenu,{class:\"apexcharts-menu\"});var e=[{name:\"exportSVG\",title:this.localeValues.exportToSVG},{name:\"exportPNG\",title:this.localeValues.exportToPNG},{name:\"exportCSV\",title:this.localeValues.exportToCSV}];this.w.globals.allSeriesHasEqualX||e.splice(2,1);for(var i=0;i<e.length;i++)this.elMenuItems.push(document.createElement(\"div\")),this.elMenuItems[i].innerHTML=e[i].title,m.setAttrs(this.elMenuItems[i],{class:\"apexcharts-menu-item \".concat(e[i].name),title:e[i].title}),this.elMenu.appendChild(this.elMenuItems[i])}},{key:\"addToolbarEventListeners\",value:function(){var t=this;this.elZoomReset.addEventListener(\"click\",this.handleZoomReset.bind(this)),this.elSelection.addEventListener(\"click\",this.toggleZoomSelection.bind(this,\"selection\")),this.elZoom.addEventListener(\"click\",this.toggleZoomSelection.bind(this,\"zoom\")),this.elZoomIn.addEventListener(\"click\",this.handleZoomIn.bind(this)),this.elZoomOut.addEventListener(\"click\",this.handleZoomOut.bind(this)),this.elPan.addEventListener(\"click\",this.togglePanning.bind(this)),this.elMenuIcon.addEventListener(\"click\",this.toggleMenu.bind(this)),this.elMenuItems.forEach((function(e){e.classList.contains(\"exportSVG\")?e.addEventListener(\"click\",t.handleDownload.bind(t,\"svg\")):e.classList.contains(\"exportPNG\")?e.addEventListener(\"click\",t.handleDownload.bind(t,\"png\")):e.classList.contains(\"exportCSV\")&&e.addEventListener(\"click\",t.handleDownload.bind(t,\"csv\"))}));for(var e=0;e<this.t.customIcons.length;e++)this.elCustomIcons[e].addEventListener(\"click\",this.t.customIcons[e].click.bind(this,this.ctx,this.ctx.w))}},{key:\"toggleZoomSelection\",value:function(t){this.ctx.getSyncedCharts().forEach((function(e){e.ctx.toolbar.toggleOtherControls();var i=\"selection\"===t?e.ctx.toolbar.elSelection:e.ctx.toolbar.elZoom,a=\"selection\"===t?\"selectionEnabled\":\"zoomEnabled\";e.w.globals[a]=!e.w.globals[a],i.classList.contains(e.ctx.toolbar.selectedClass)?i.classList.remove(e.ctx.toolbar.selectedClass):i.classList.add(e.ctx.toolbar.selectedClass)}))}},{key:\"getToolbarIconsReference\",value:function(){var t=this.w;this.elZoom||(this.elZoom=t.globals.dom.baseEl.querySelector(\".apexcharts-zoom-icon\")),this.elPan||(this.elPan=t.globals.dom.baseEl.querySelector(\".apexcharts-pan-icon\")),this.elSelection||(this.elSelection=t.globals.dom.baseEl.querySelector(\".apexcharts-selection-icon\"))}},{key:\"enableZoomPanFromToolbar\",value:function(t){this.toggleOtherControls(),\"pan\"===t?this.w.globals.panEnabled=!0:this.w.globals.zoomEnabled=!0;var e=\"pan\"===t?this.elPan:this.elZoom,i=\"pan\"===t?this.elZoom:this.elPan;e&&e.classList.add(this.selectedClass),i&&i.classList.remove(this.selectedClass)}},{key:\"togglePanning\",value:function(){this.ctx.getSyncedCharts().forEach((function(t){t.ctx.toolbar.toggleOtherControls(),t.w.globals.panEnabled=!t.w.globals.panEnabled,t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass)?t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass):t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass)}))}},{key:\"toggleOtherControls\",value:function(){var t=this,e=this.w;e.globals.panEnabled=!1,e.globals.zoomEnabled=!1,e.globals.selectionEnabled=!1,this.getToolbarIconsReference(),[this.elPan,this.elSelection,this.elZoom].forEach((function(e){e&&e.classList.remove(t.selectedClass)}))}},{key:\"handleZoomIn\",value:function(){var t=this.w;t.globals.isRangeBar&&(this.minX=t.globals.minY,this.maxX=t.globals.maxY);var e=(this.minX+this.maxX)/2,i=(this.minX+e)/2,a=(this.maxX+e)/2,s=this._getNewMinXMaxX(i,a);t.globals.disableZoomIn||this.zoomUpdateOptions(s.minX,s.maxX)}},{key:\"handleZoomOut\",value:function(){var t=this.w;if(t.globals.isRangeBar&&(this.minX=t.globals.minY,this.maxX=t.globals.maxY),!(\"datetime\"===t.config.xaxis.type&&new Date(this.minX).getUTCFullYear()<1e3)){var e=(this.minX+this.maxX)/2,i=this.minX-(e-this.minX),a=this.maxX-(e-this.maxX),s=this._getNewMinXMaxX(i,a);t.globals.disableZoomOut||this.zoomUpdateOptions(s.minX,s.maxX)}}},{key:\"_getNewMinXMaxX\",value:function(t,e){var i=this.w.config.xaxis.convertedCatToNumeric;return{minX:i?Math.floor(t):t,maxX:i?Math.floor(e):e}}},{key:\"zoomUpdateOptions\",value:function(t,e){var i=this.w;if(void 0!==t||void 0!==e){if(!(i.config.xaxis.convertedCatToNumeric&&(t<1&&(t=1,e=i.globals.dataPoints),e-t<2))){var a={min:t,max:e},s=this.getBeforeZoomRange(a);s&&(a=s.xaxis);var r={xaxis:a},o=x.clone(i.globals.initialConfig.yaxis);if(i.config.chart.zoom.autoScaleYaxis)o=new _(this.ctx).autoScaleY(this.ctx,o,{xaxis:a});i.config.chart.group||(r.yaxis=o),this.w.globals.zoomed=!0,this.ctx.updateHelpers._updateOptions(r,!1,this.w.config.chart.animations.dynamicAnimation.enabled),this.zoomCallback(a,o)}}else this.handleZoomReset()}},{key:\"zoomCallback\",value:function(t,e){\"function\"==typeof this.ev.zoomed&&this.ev.zoomed(this.ctx,{xaxis:t,yaxis:e})}},{key:\"getBeforeZoomRange\",value:function(t,e){var i=null;return\"function\"==typeof this.ev.beforeZoom&&(i=this.ev.beforeZoom(this,{xaxis:t,yaxis:e})),i}},{key:\"toggleMenu\",value:function(){var t=this;window.setTimeout((function(){t.elMenu.classList.contains(\"apexcharts-menu-open\")?t.elMenu.classList.remove(\"apexcharts-menu-open\"):t.elMenu.classList.add(\"apexcharts-menu-open\")}),0)}},{key:\"handleDownload\",value:function(t){var e=this.w,i=new G(this.ctx);switch(t){case\"svg\":i.exportToSVG(this.ctx);break;case\"png\":i.exportToPng(this.ctx);break;case\"csv\":i.exportToCSV({series:e.config.series,columnDelimiter:e.config.chart.toolbar.export.csv.columnDelimiter})}}},{key:\"handleZoomReset\",value:function(t){this.ctx.getSyncedCharts().forEach((function(t){var e=t.w;if(e.globals.lastXAxis.min=void 0,e.globals.lastXAxis.max=void 0,t.updateHelpers.revertDefaultAxisMinMax(),\"function\"==typeof e.config.chart.events.beforeResetZoom){var i=e.config.chart.events.beforeResetZoom(t,e);i&&t.updateHelpers.revertDefaultAxisMinMax(i)}\"function\"==typeof e.config.chart.events.zoomed&&t.ctx.toolbar.zoomCallback({min:e.config.xaxis.min,max:e.config.xaxis.max}),e.globals.zoomed=!1;var a=t.ctx.series.emptyCollapsedSeries(x.clone(e.globals.initialSeries));t.updateHelpers._updateSeries(a,e.config.chart.animations.dynamicAnimation.enabled)}))}},{key:\"destroy\",value:function(){this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null}}]),t}(),ct=function(t){n(i,ht);var e=d(i);function i(t){var s;return a(this,i),(s=e.call(this,t)).ctx=t,s.w=t.w,s.dragged=!1,s.graphics=new m(s.ctx),s.eventList=[\"mousedown\",\"mouseleave\",\"mousemove\",\"touchstart\",\"touchmove\",\"mouseup\",\"touchend\"],s.clientX=0,s.clientY=0,s.startX=0,s.endX=0,s.dragX=0,s.startY=0,s.endY=0,s.dragY=0,s.moveDirection=\"none\",s}return r(i,[{key:\"init\",value:function(t){var e=this,i=t.xyRatios,a=this.w,s=this;this.xyRatios=i,this.zoomRect=this.graphics.drawRect(0,0,0,0),this.selectionRect=this.graphics.drawRect(0,0,0,0),this.gridRect=a.globals.dom.baseEl.querySelector(\".apexcharts-grid\"),this.zoomRect.node.classList.add(\"apexcharts-zoom-rect\"),this.selectionRect.node.classList.add(\"apexcharts-selection-rect\"),a.globals.dom.elGraphical.add(this.zoomRect),a.globals.dom.elGraphical.add(this.selectionRect),\"x\"===a.config.chart.selection.type?this.slDraggableRect=this.selectionRect.draggable({minX:0,minY:0,maxX:a.globals.gridWidth,maxY:a.globals.gridHeight}).on(\"dragmove\",this.selectionDragging.bind(this,\"dragging\")):\"y\"===a.config.chart.selection.type?this.slDraggableRect=this.selectionRect.draggable({minX:0,maxX:a.globals.gridWidth}).on(\"dragmove\",this.selectionDragging.bind(this,\"dragging\")):this.slDraggableRect=this.selectionRect.draggable().on(\"dragmove\",this.selectionDragging.bind(this,\"dragging\")),this.preselectedSelection(),this.hoverArea=a.globals.dom.baseEl.querySelector(\"\".concat(a.globals.chartClass,\" .apexcharts-svg\")),this.hoverArea.classList.add(\"apexcharts-zoomable\"),this.eventList.forEach((function(t){e.hoverArea.addEventListener(t,s.svgMouseEvents.bind(s,i),{capture:!1,passive:!0})}))}},{key:\"destroy\",value:function(){this.slDraggableRect&&(this.slDraggableRect.draggable(!1),this.slDraggableRect.off(),this.selectionRect.off()),this.selectionRect=null,this.zoomRect=null,this.gridRect=null}},{key:\"svgMouseEvents\",value:function(t,e){var i=this.w,a=this,s=this.ctx.toolbar,r=i.globals.zoomEnabled?i.config.chart.zoom.type:i.config.chart.selection.type,o=i.config.chart.toolbar.autoSelected;if(e.shiftKey?(this.shiftWasPressed=!0,s.enableZoomPanFromToolbar(\"pan\"===o?\"zoom\":\"pan\")):this.shiftWasPressed&&(s.enableZoomPanFromToolbar(o),this.shiftWasPressed=!1),e.target){var n,l=e.target.classList;if(e.target.parentNode&&null!==e.target.parentNode&&(n=e.target.parentNode.classList),!(l.contains(\"apexcharts-selection-rect\")||l.contains(\"apexcharts-legend-marker\")||l.contains(\"apexcharts-legend-text\")||n&&n.contains(\"apexcharts-toolbar\"))){if(a.clientX=\"touchmove\"===e.type||\"touchstart\"===e.type?e.touches[0].clientX:\"touchend\"===e.type?e.changedTouches[0].clientX:e.clientX,a.clientY=\"touchmove\"===e.type||\"touchstart\"===e.type?e.touches[0].clientY:\"touchend\"===e.type?e.changedTouches[0].clientY:e.clientY,\"mousedown\"===e.type&&1===e.which){var h=a.gridRect.getBoundingClientRect();a.startX=a.clientX-h.left,a.startY=a.clientY-h.top,a.dragged=!1,a.w.globals.mousedown=!0}if((\"mousemove\"===e.type&&1===e.which||\"touchmove\"===e.type)&&(a.dragged=!0,i.globals.panEnabled?(i.globals.selection=null,a.w.globals.mousedown&&a.panDragging({context:a,zoomtype:r,xyRatios:t})):(a.w.globals.mousedown&&i.globals.zoomEnabled||a.w.globals.mousedown&&i.globals.selectionEnabled)&&(a.selection=a.selectionDrawing({context:a,zoomtype:r}))),\"mouseup\"===e.type||\"touchend\"===e.type||\"mouseleave\"===e.type){var c=a.gridRect.getBoundingClientRect();a.w.globals.mousedown&&(a.endX=a.clientX-c.left,a.endY=a.clientY-c.top,a.dragX=Math.abs(a.endX-a.startX),a.dragY=Math.abs(a.endY-a.startY),(i.globals.zoomEnabled||i.globals.selectionEnabled)&&a.selectionDrawn({context:a,zoomtype:r}),i.globals.panEnabled&&i.config.xaxis.convertedCatToNumeric&&a.delayedPanScrolled()),i.globals.zoomEnabled&&a.hideSelectionRect(this.selectionRect),a.dragged=!1,a.w.globals.mousedown=!1}this.makeSelectionRectDraggable()}}}},{key:\"makeSelectionRectDraggable\",value:function(){var t=this.w;if(this.selectionRect){var e=this.selectionRect.node.getBoundingClientRect();e.width>0&&e.height>0&&this.slDraggableRect.selectize({points:\"l, r\",pointSize:8,pointType:\"rect\"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on(\"resizing\",this.selectionDragging.bind(this,\"resizing\"))}}},{key:\"preselectedSelection\",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),\"function\"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:\"drawSelectionRect\",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:\"translate(\"+o+\", \"+l+\")\"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,\"fill-opacity\":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,\"stroke-width\":h.config.chart.zoom.zoomedArea.stroke.width,\"stroke-opacity\":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,\"fill-opacity\":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,\"stroke-width\":h.config.chart.selection.stroke.width,\"stroke-dasharray\":h.config.chart.selection.stroke.dashArray,\"stroke-opacity\":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:\"hideSelectionRect\",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:\"selectionDrawing\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g=\"x\"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:\"y\"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging(\"resizing\"),g}},{key:\"selectionDragging\",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;\"resizing\"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n(\"x\"),y:n(\"y\"),width:n(\"width\"),height:n(\"height\")};a.globals.selection=l,\"function\"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:\"selectionDrawn\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),p=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),\"xy\"!==i&&\"x\"!==i||(p={min:h,max:c}),\"xy\"!==i&&\"y\"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var f=new _(s.ctx);u=f.autoScaleY(s.ctx,u,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var v={xaxis:p};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),\"function\"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},\"xy\"!==i&&\"y\"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,\"function\"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:\"panDragging\",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection=\"left\":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection=\"right\":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection=\"up\":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection=\"down\")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:\"delayedPanScrolled\",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;\"left\"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):\"right\"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:\"panScrolled\",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),\"left\"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):\"right\"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(t<i.globals.initialMinX||e>i.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new _(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:\"updateScrolledChart\",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),\"function\"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(),dt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:\"getNearestValues\",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove(\"hovering-zoom\"),e.classList.remove(\"hovering-pan\")):r.globals.zoomEnabled?(e.classList.remove(\"hovering-pan\"),e.classList.add(\"hovering-zoom\")):r.globals.panEnabled&&(e.classList.remove(\"hovering-zoom\"),e.classList.add(\"hovering-pan\"));var p=Math.round(g/h),f=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/h),p-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,p=v.j,null!==b&&(m=r.globals.seriesXvalues[b],p=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!p||p<1)&&(p=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=f:r.globals.capturedDataPointIndex=p,{capturedSeries:b,j:r.globals.isBarHorizontal?f:p,hoverX:g,hoverY:u}}},{key:\"closestInMultiArray\",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a<h&&(h=a,n=i)}))})),-1!==n){var c=a[r][n],d=Math.abs(e-c);o=r,a.forEach((function(t,i){var a=Math.abs(e-t[n]);a<d&&(d=a,o=i)}))}return{index:o,j:n}}},{key:\"getFirstActiveXArray\",value:function(t){for(var e=this.w,i=0,a=t.map((function(t,e){return t.length>0?e:-1})),s=0;s<a.length;s++)if(-1!==a[s]&&-1===e.globals.collapsedSeriesIndices.indexOf(s)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(s)){i=a[s];break}return i}},{key:\"closestInArray\",value:function(t,e){for(var i=e[0],a=null,s=Math.abs(t-i),r=0;r<e.length;r++){var o=Math.abs(t-e[r]);o<s&&(s=o,a=r)}return{index:a}}},{key:\"isXoverlap\",value:function(t){var e=[],i=this.w.globals.seriesX.filter((function(t){return void 0!==t[0]}));if(i.length>0)for(var a=0;a<i.length-1;a++)void 0!==i[a][t]&&void 0!==i[a+1][t]&&i[a][t]!==i[a+1][t]&&e.push(\"unEqual\");return 0===e.length}},{key:\"isInitialSeriesSameLen\",value:function(){for(var t=!0,e=this.w.globals.initialSeries,i=0;i<e.length-1;i++)if(e[i].data.length!==e[i+1].data.length){t=!1;break}return t}},{key:\"getBarsHeight\",value:function(t){return u(t).reduce((function(t,e){return t+e.getBBox().height}),0)}},{key:\"getElMarkers\",value:function(t){return\"number\"==typeof t?this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-series-markers-wrap > *\")):this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap > *\")}},{key:\"getAllMarkers\",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap\");(t=u(t)).sort((function(t,e){var i=Number(t.getAttribute(\"data:realIndex\")),a=Number(e.getAttribute(\"data:realIndex\"));return a<i?1:a>i?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(\".apexcharts-marker\"))})),e}},{key:\"hasMarkers\",value:function(t){return this.getElMarkers(t).length>0}},{key:\"getElBars\",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-bar-series,  .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series\")}},{key:\"hasBars\",value:function(){return this.getElBars().length>0}},{key:\"getHoverMarkerSize\",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:\"toggleAllTooltipSeriesGroups\",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-tooltip-series-group\"));for(var a=i.allTooltipSeriesGroups,s=0;s<a.length;s++)\"enable\"===t?(a[s].classList.add(\"apexcharts-active\"),a[s].style.display=e.config.tooltip.items.display):(a[s].classList.remove(\"apexcharts-active\"),a[s].style.display=\"none\")}}]),t}(),gt=function(){function t(e){a(this,t),this.w=e.w,this.ctx=e.ctx,this.ttCtx=e,this.tooltipUtil=new dt(e)}return r(t,[{key:\"drawSeriesTexts\",value:function(t){var e=t.shared,i=void 0===e||e,a=t.ttItems,s=t.i,r=void 0===s?0:s,o=t.j,n=void 0===o?null:o,l=t.y1,h=t.y2,c=t.e,d=this.w;void 0!==d.config.tooltip.custom?this.handleCustomTooltip({i:r,j:n,y1:l,y2:h,w:d}):this.toggleActiveInactiveSeries(i);var g=this.getValuesToPrint({i:r,j:n});this.printLabels({i:r,j:n,values:g,ttItems:a,shared:i,e:c});var u=this.ttCtx.getElTooltip();this.ttCtx.tooltipRect.ttWidth=u.getBoundingClientRect().width,this.ttCtx.tooltipRect.ttHeight=u.getBoundingClientRect().height}},{key:\"printLabels\",value:function(t){var i,a=this,s=t.i,r=t.j,o=t.values,n=t.ttItems,l=t.shared,h=t.e,c=this.w,d=[],g=function(t){return c.globals.seriesGoals[t]&&c.globals.seriesGoals[t][r]&&Array.isArray(c.globals.seriesGoals[t][r])},u=o.xVal,p=o.zVal,f=o.xAxisTTVal,x=\"\",b=c.globals.colors[s];null!==r&&c.config.plotOptions.bar.distributed&&(b=c.globals.colors[r]);for(var v=function(t,o){var v=a.getFormatters(s);x=a.getSeriesName({fn:v.yLbTitleFormatter,index:s,seriesIndex:s,j:r}),\"treemap\"===c.config.chart.type&&(x=v.yLbTitleFormatter(String(c.config.series[s].data[r].x),{series:c.globals.series,seriesIndex:s,dataPointIndex:r,w:c}));var m=c.config.tooltip.inverseOrder?o:t;if(c.globals.axisCharts){var y=function(t){var e,i,a,s;return c.globals.isRangeData?v.yLbFormatter(null===(e=c.globals.seriesRangeStart)||void 0===e||null===(i=e[t])||void 0===i?void 0:i[r],{series:c.globals.seriesRangeStart,seriesIndex:t,dataPointIndex:r,w:c})+\" - \"+v.yLbFormatter(null===(a=c.globals.seriesRangeEnd)||void 0===a||null===(s=a[t])||void 0===s?void 0:s[r],{series:c.globals.seriesRangeEnd,seriesIndex:t,dataPointIndex:r,w:c}):v.yLbFormatter(c.globals.series[t][r],{series:c.globals.series,seriesIndex:t,dataPointIndex:r,w:c})};if(l)v=a.getFormatters(m),x=a.getSeriesName({fn:v.yLbTitleFormatter,index:m,seriesIndex:s,j:r}),b=c.globals.colors[m],i=y(m),g(m)&&(d=c.globals.seriesGoals[m][r].map((function(t){return{attrs:t,val:v.yLbFormatter(t.value,{seriesIndex:m,dataPointIndex:r,w:c})}})));else{var w,k=null==h||null===(w=h.target)||void 0===w?void 0:w.getAttribute(\"fill\");k&&(b=-1!==k.indexOf(\"url\")?document.querySelector(k.substr(4).slice(0,-1)).childNodes[0].getAttribute(\"stroke\"):k),i=y(s),g(s)&&Array.isArray(c.globals.seriesGoals[s][r])&&(d=c.globals.seriesGoals[s][r].map((function(t){return{attrs:t,val:v.yLbFormatter(t.value,{seriesIndex:s,dataPointIndex:r,w:c})}})))}}null===r&&(i=v.yLbFormatter(c.globals.series[s],e(e({},c),{},{seriesIndex:s,dataPointIndex:s}))),a.DOMHandling({i:s,t:m,j:r,ttItems:n,values:{val:i,goalVals:d,xVal:u,xAxisTTVal:f,zVal:p},seriesName:x,shared:l,pColor:b})},m=0,y=c.globals.series.length-1;m<c.globals.series.length;m++,y--)v(m,y)}},{key:\"getFormatters\",value:function(t){var e,i=this.w,a=i.globals.yLabelFormatters[t];return void 0!==i.globals.ttVal?Array.isArray(i.globals.ttVal)?(a=i.globals.ttVal[t]&&i.globals.ttVal[t].formatter,e=i.globals.ttVal[t]&&i.globals.ttVal[t].title&&i.globals.ttVal[t].title.formatter):(a=i.globals.ttVal.formatter,\"function\"==typeof i.globals.ttVal.title.formatter&&(e=i.globals.ttVal.title.formatter)):e=i.config.tooltip.y.title.formatter,\"function\"!=typeof a&&(a=i.globals.yLabelFormatters[0]?i.globals.yLabelFormatters[0]:function(t){return t}),\"function\"!=typeof e&&(e=function(t){return t}),{yLbFormatter:a,yLbTitleFormatter:e}}},{key:\"getSeriesName\",value:function(t){var e=t.fn,i=t.index,a=t.seriesIndex,s=t.j,r=this.w;return e(String(r.globals.seriesNames[i]),{series:r.globals.series,seriesIndex:a,dataPointIndex:s,w:r})}},{key:\"DOMHandling\",value:function(t){t.i;var e=t.t,i=t.j,a=t.ttItems,s=t.values,r=t.seriesName,o=t.shared,n=t.pColor,l=this.w,h=this.ttCtx,c=s.val,d=s.goalVals,g=s.xVal,u=s.xAxisTTVal,p=s.zVal,f=null;f=a[e].children,l.config.tooltip.fillSeriesColor&&(a[e].style.backgroundColor=n,f[0].style.display=\"none\"),h.showTooltipTitle&&(null===h.tooltipTitle&&(h.tooltipTitle=l.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-title\")),h.tooltipTitle.innerHTML=g),h.isXAxisTooltipEnabled&&(h.xaxisTooltipText.innerHTML=\"\"!==u?u:g);var x=a[e].querySelector(\".apexcharts-tooltip-text-y-label\");x&&(x.innerHTML=r||\"\");var b=a[e].querySelector(\".apexcharts-tooltip-text-y-value\");b&&(b.innerHTML=void 0!==c?c:\"\"),f[0]&&f[0].classList.contains(\"apexcharts-tooltip-marker\")&&(l.config.tooltip.marker.fillColors&&Array.isArray(l.config.tooltip.marker.fillColors)&&(n=l.config.tooltip.marker.fillColors[e]),f[0].style.backgroundColor=n),l.config.tooltip.marker.show||(f[0].style.display=\"none\");var v=a[e].querySelector(\".apexcharts-tooltip-text-goals-label\"),m=a[e].querySelector(\".apexcharts-tooltip-text-goals-value\");if(d.length&&l.globals.seriesGoals[e]){var y=function(){var t=\"<div >\",e=\"<div>\";d.forEach((function(i,a){t+=' <div style=\"display: flex\"><span class=\"apexcharts-tooltip-marker\" style=\"background-color: '.concat(i.attrs.strokeColor,'; height: 3px; border-radius: 0; top: 5px;\"></span> ').concat(i.attrs.name,\"</div>\"),e+=\"<div>\".concat(i.val,\"</div>\")})),v.innerHTML=t+\"</div>\",m.innerHTML=e+\"</div>\"};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML=\"\",m.innerHTML=\"\"):y()}else v.innerHTML=\"\",m.innerHTML=\"\";null!==p&&(a[e].querySelector(\".apexcharts-tooltip-text-z-label\").innerHTML=l.config.tooltip.z.title,a[e].querySelector(\".apexcharts-tooltip-text-z-value\").innerHTML=void 0!==p?p:\"\");o&&f[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?f[0].parentNode.style.display=\"none\":f[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:\"toggleActiveInactiveSeries\",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups(\"enable\");else{this.tooltipUtil.toggleAllTooltipSeriesGroups(\"disable\");var i=e.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-series-group\");i&&(i.classList.add(\"apexcharts-active\"),i.style.display=e.config.tooltip.items.display)}}},{key:\"getValuesToPrint\",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r=\"\",o=\"\",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&\"treemap\"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:\"\";var d=r;a.globals.isXNumeric&&\"datetime\"===a.config.xaxis.type?r=new T(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o=\"function\"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(\" \"):l,xVal:Array.isArray(r)?r.join(\" \"):r,xAxisTTVal:Array.isArray(o)?o.join(\" \"):o,zVal:n}}},{key:\"handleCustomTooltip\",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:\"moveXCrosshairs\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute(\"x\",r),s.setAttribute(\"x1\",r),s.setAttribute(\"x2\",r),s.setAttribute(\"y2\",a.globals.gridHeight),s.classList.add(\"apexcharts-active\")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;\"tickWidth\"!==a.config.xaxis.crosshairs.width&&\"barWidth\"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:\"moveYCrosshairs\",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:\"moveXAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add(\"apexcharts-active\");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+\"px\",i.xaxisTooltip.style.left=t+\"px\",i.xaxisTooltip.style.top=a+\"px\"}}}},{key:\"moveYAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));var a=parseInt(i.ycrosshairsHidden.getAttribute(\"y1\"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add(\"apexcharts-active\"),i.yaxisTTEls[t].style.top=s+\"px\",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+\"px\"):i.yaxisTTEls[t].classList.remove(\"apexcharts-active\")}},{key:\"moveTooltip\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(l=s.e.clientX-c.left)>a.globals.gridWidth/2&&(l-=s.tooltipRect.ttWidth),(h=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(h-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+\"px\",r.style.top=h+\"px\")}},{key:\"moveMarkers\",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-marker\")),r=0;r<s.length;r++)parseInt(s[r].getAttribute(\"rel\"),10)===e&&(a.marker.resetPointsSize(),a.marker.enlargeCurrentPoint(e,s[r]));else a.marker.resetPointsSize(),this.moveDynamicPointOnHover(e,t)}},{key:\"moveDynamicPointOnHover\",value:function(t,e){var i,a,s=this.w,r=this.ttCtx,o=s.globals.pointsArray,n=r.tooltipUtil.getHoverMarkerSize(e),l=s.config.series[e].type;if(!l||\"column\"!==l&&\"candlestick\"!==l&&\"boxPlot\"!==l){i=o[e][t][0],a=o[e][t][1]?o[e][t][1]:0;var h=s.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(e,\"'] .apexcharts-series-markers circle\"));h&&a<s.globals.gridHeight&&a>0&&(h.setAttribute(\"r\",n),h.setAttribute(\"cx\",i),h.setAttribute(\"cy\",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:\"moveDynamicPointsOnHover\",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new N(this.ctx).getActiveConfigSeriesIndex(\"asc\",[\"line\",\"area\",\"scatter\",\"bubble\"]);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h<a.globals.series.length;h++){var c=o[h];if(a.globals.comboCharts&&void 0===c&&l.splice(h,0,null),c&&c.length){var d=o[h][t][1],g=void 0;if(l[h].setAttribute(\"cx\",s),\"rangeArea\"===a.config.chart.type&&!a.globals.comboCharts){var u=t+a.globals.series[h].length;g=o[h][u][1],d-=Math.abs(d-g)/2}null!==d&&!isNaN(d)&&d<a.globals.gridHeight+n&&d+n>0?(l[h]&&l[h].setAttribute(\"r\",n),l[h]&&l[h].setAttribute(\"cy\",d)):l[h]&&l[h].setAttribute(\"r\",0)}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,n)}},{key:\"moveStickyTooltipOverBars\",value:function(t,e){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new N(this.ctx).getActiveConfigSeriesIndex(\"desc\")+1);var o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[rel='\".concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-candlestick-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-boxPlot-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-rangebar-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"']\"));o||\"number\"!=typeof e||(o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[data\\\\:realIndex='\".concat(e,\"'] path[j='\").concat(t,\"'],\\n        .apexcharts-candlestick-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n        .apexcharts-boxPlot-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n        .apexcharts-rangebar-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"']\")));var n=o?parseFloat(o.getAttribute(\"cx\")):0,l=o?parseFloat(o.getAttribute(\"cy\")):0,h=o?parseFloat(o.getAttribute(\"barWidth\")):0,c=a.getElGrid().getBoundingClientRect(),d=o&&(o.classList.contains(\"apexcharts-candlestick-area\")||o.classList.contains(\"apexcharts-boxPlot-area\"));i.globals.isXNumeric?(o&&!d&&(n-=s%2!=0?h/2:0),o&&d&&i.globals.comboCharts&&(n-=h/2)):i.globals.isBarHorizontal||(n=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(n)&&(n=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?l-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?l=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:l+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(l=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(n),a.fixedTooltip||this.moveTooltip(n,l||i.globals.gridHeight)}}]),t}(),pt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new ut(e)}return r(t,[{key:\"drawDynamicPoints\",value:function(){var t=this.w,e=new m(this.ctx),i=new H(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute(\"data:realIndex\"))-parseFloat(e.getAttribute(\"data:realIndex\"))}));for(var s=0;s<a.length;s++){var r=a[s].querySelector(\".apexcharts-series-markers-wrap\");if(null!==r){var o=void 0,n=\"apexcharts-marker w\".concat((Math.random()+1).toString(36).substring(4));\"line\"!==t.config.chart.type&&\"area\"!==t.config.chart.type||t.globals.comboCharts||t.config.tooltip.intersect||(n+=\" no-pointer-events\");var l=i.getMarkerConfig({cssClass:n,seriesIndex:Number(r.getAttribute(\"data:realIndex\"))});(o=e.drawMarker(0,0,l)).node.setAttribute(\"default-marker-size\",0);var h=document.createElementNS(t.globals.SVGNS,\"g\");h.classList.add(\"apexcharts-series-markers\"),h.appendChild(o.node),r.appendChild(h)}}}},{key:\"enlargeCurrentPoint\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;\"bubble\"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute(\"cx\"),o=e.getAttribute(\"cy\");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(\"radar\"===s.config.chart.type){var n=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-n.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:\"enlargePoints\",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),o=e.config.markers.hover.size,n=0;n<r.length;n++){var l=r[n].getAttribute(\"rel\"),h=r[n].getAttribute(\"index\");if(void 0===o&&(o=e.globals.markers.size[h]+e.config.markers.hover.sizeOffset),s===parseInt(l,10)){i.newPointSize(s,r[n]);var c=r[n].getAttribute(\"cx\"),d=r[n].getAttribute(\"cy\");i.tooltipPosition.moveXCrosshairs(c),a.fixedTooltip||i.tooltipPosition.moveTooltip(c,d,o)}else i.oldPointSize(r[n])}}},{key:\"newPointSize\",value:function(t,e){var i=this.w,a=i.config.markers.hover.size,s=0===t?e.parentNode.firstChild:e.parentNode.lastChild;if(\"0\"!==s.getAttribute(\"default-marker-size\")){var r=parseInt(s.getAttribute(\"index\"),10);void 0===a&&(a=i.globals.markers.size[r]+i.config.markers.hover.sizeOffset),a<0&&(a=0),s.setAttribute(\"r\",a)}}},{key:\"oldPointSize\",value:function(t){var e=parseFloat(t.getAttribute(\"default-marker-size\"));t.setAttribute(\"r\",e)}},{key:\"resetPointsSize\",value:function(){for(var t=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),e=0;e<t.length;e++){var i=parseFloat(t[e].getAttribute(\"default-marker-size\"));x.isNumber(i)&&i>=0?t[e].setAttribute(\"r\",i):t[e].setAttribute(\"r\",0)}}}]),t}(),ft=function(){function t(e){a(this,t),this.w=e.w;var i=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!i.globals.isBarHorizontal&&\"rangeBar\"===i.config.chart.type&&i.config.plotOptions.bar.rangeBarGroupRows}return r(t,[{key:\"getAttr\",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:\"handleHeatTreeTooltip\",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains(\"apexcharts-\".concat(r,\"-rect\"))){var l=this.getAttr(e,\"i\"),h=this.getAttr(e,\"j\"),c=this.getAttr(e,\"cx\"),d=this.getAttr(e,\"cy\"),g=this.getAttr(e,\"width\"),u=this.getAttr(e,\"height\");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var p=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-p.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-p.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:\"handleMarkerTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains(\"apexcharts-marker\")){var h=parseInt(s.paths.getAttribute(\"cx\"),10),c=parseInt(s.paths.getAttribute(\"cy\"),10),d=parseFloat(s.paths.getAttribute(\"val\"));if(i=parseInt(s.paths.getAttribute(\"rel\"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute(\"rel\"),10)-1,l.intersect){var g=x.findAncestor(s.paths,\"apexcharts-series\");g&&(e=parseInt(g.getAttribute(\"data:realIndex\"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),\"mouseup\"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:\"handleBarTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var p=parseInt(s.paths.parentNode.getAttribute(\"data:realIndex\"),10),f=r.globals.isMultipleYAxis?r.config.yaxis[p]&&r.config.yaxis[p].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!f?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(f&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!f||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+\"px\",n.style.top=c+\"px\")}},{key:\"getBarTooltipXY\",value:function(t){var e=this,i=t.e,a=t.opt,s=this.w,r=null,o=this.ttCtx,n=0,l=0,h=0,c=0,d=0,g=i.target.classList;if(g.contains(\"apexcharts-bar-area\")||g.contains(\"apexcharts-candlestick-area\")||g.contains(\"apexcharts-boxPlot-area\")||g.contains(\"apexcharts-rangebar-area\")){var u=i.target,p=u.getBoundingClientRect(),f=a.elGrid.getBoundingClientRect(),x=p.height;d=p.height;var b=p.width,v=parseInt(u.getAttribute(\"cx\"),10),m=parseInt(u.getAttribute(\"cy\"),10);c=parseFloat(u.getAttribute(\"barWidth\"));var y=\"touchmove\"===i.type?i.touches[0].clientX:i.clientX;r=parseInt(u.getAttribute(\"j\"),10),n=parseInt(u.parentNode.getAttribute(\"rel\"),10)-1;var w=u.getAttribute(\"data-range-y1\"),k=u.getAttribute(\"data-range-y2\");s.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute(\"data:realIndex\"),10));var A=function(t){return s.globals.isXNumeric?v-b/2:e.isVerticalGroupedRangeBar?v+b/2:v-o.dataPointsDividedWidth+b/2},S=function(){return m-o.dataPointsDividedHeight+x/2-o.tooltipRect.ttHeight/2};o.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:n,j:r,y1:w?parseInt(w,10):null,y2:k?parseInt(k,10):null,shared:!o.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(l=y-f.left+15,h=S()):(l=A(),h=i.clientY-f.top-o.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((l=v)<o.xyRatios.baseLineInvertedY&&(l=v-o.tooltipRect.ttWidth),h=S()):(l=A(),h=m)}return{x:l,y:h,barHeight:d,barWidth:c,i:n,j:r}}}]),t}(),xt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:\"drawXaxisTooltip\",value:function(){var t=this.w,e=this.ttCtx,i=\"bottom\"===t.config.xaxis.position;e.xaxisOffY=i?t.globals.gridHeight+1:-t.globals.xAxisHeight-t.config.xaxis.axisTicks.height+3;var a=i?\"apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom\":\"apexcharts-xaxistooltip apexcharts-xaxistooltip-top\",s=t.globals.dom.elWrap;e.isXAxisTooltipEnabled&&(null===t.globals.dom.baseEl.querySelector(\".apexcharts-xaxistooltip\")&&(e.xaxisTooltip=document.createElement(\"div\"),e.xaxisTooltip.setAttribute(\"class\",a+\" apexcharts-theme-\"+t.config.tooltip.theme),s.appendChild(e.xaxisTooltip),e.xaxisTooltipText=document.createElement(\"div\"),e.xaxisTooltipText.classList.add(\"apexcharts-xaxistooltip-text\"),e.xaxisTooltipText.style.fontFamily=t.config.xaxis.tooltip.style.fontFamily||t.config.chart.fontFamily,e.xaxisTooltipText.style.fontSize=t.config.xaxis.tooltip.style.fontSize,e.xaxisTooltip.appendChild(e.xaxisTooltipText)))}},{key:\"drawYaxisTooltip\",value:function(){for(var t=this.w,e=this.ttCtx,i=function(i){var a=t.config.yaxis[i].opposite||t.config.yaxis[i].crosshairs.opposite;e.yaxisOffX=a?t.globals.gridWidth+1:1;var s=\"apexcharts-yaxistooltip apexcharts-yaxistooltip-\".concat(i,a?\" apexcharts-yaxistooltip-right\":\" apexcharts-yaxistooltip-left\");t.globals.yAxisSameScaleIndices.map((function(e,a){e.map((function(e,a){a===i&&(s+=t.config.yaxis[a].show?\" \":\" apexcharts-yaxistooltip-hidden\")}))}));var r=t.globals.dom.elWrap;null===t.globals.dom.baseEl.querySelector(\".apexcharts-yaxistooltip apexcharts-yaxistooltip-\".concat(i))&&(e.yaxisTooltip=document.createElement(\"div\"),e.yaxisTooltip.setAttribute(\"class\",s+\" apexcharts-theme-\"+t.config.tooltip.theme),r.appendChild(e.yaxisTooltip),0===i&&(e.yaxisTooltipText=[]),e.yaxisTooltipText[i]=document.createElement(\"div\"),e.yaxisTooltipText[i].classList.add(\"apexcharts-yaxistooltip-text\"),e.yaxisTooltip.appendChild(e.yaxisTooltipText[i]))},a=0;a<t.config.yaxis.length;a++)i(a)}},{key:\"setXCrosshairWidth\",value:function(){var t=this.w,e=this.ttCtx,i=e.getElXCrosshairs();if(e.xcrosshairsWidth=parseInt(t.config.xaxis.crosshairs.width,10),t.globals.comboCharts){var a=t.globals.dom.baseEl.querySelector(\".apexcharts-bar-area\");if(null!==a&&\"barWidth\"===t.config.xaxis.crosshairs.width){var s=parseFloat(a.getAttribute(\"barWidth\"));e.xcrosshairsWidth=s}else if(\"tickWidth\"===t.config.xaxis.crosshairs.width){var r=t.globals.labels.length;e.xcrosshairsWidth=t.globals.gridWidth/r}}else if(\"tickWidth\"===t.config.xaxis.crosshairs.width){var o=t.globals.labels.length;e.xcrosshairsWidth=t.globals.gridWidth/o}else if(\"barWidth\"===t.config.xaxis.crosshairs.width){var n=t.globals.dom.baseEl.querySelector(\".apexcharts-bar-area\");if(null!==n){var l=parseFloat(n.getAttribute(\"barWidth\"));e.xcrosshairsWidth=l}else e.xcrosshairsWidth=1}t.globals.isBarHorizontal&&(e.xcrosshairsWidth=0),null!==i&&e.xcrosshairsWidth>0&&i.setAttribute(\"width\",e.xcrosshairsWidth)}},{key:\"handleYCrosshair\",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs\"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs-hidden\")}},{key:\"drawYaxisTooltipText\",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new pt(this),this.intersect=new ft(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:\"getElTooltip\",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\"):null}},{key:\"getElXCrosshairs\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-xcrosshairs\")}},{key:\"getElGrid\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-grid\")}},{key:\"drawTooltip\",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement(\"div\");if(i.classList.add(\"apexcharts-tooltip\"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add(\"apexcharts-theme-\".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new V(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&\"rangeBar\"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement(\"div\"),this.tooltipTitle.classList.add(\"apexcharts-tooltip-title\"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-legend-text\"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:\"createTTElements\",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement(\"div\");o.classList.add(\"apexcharts-tooltip-series-group\"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add(\"apexcharts-tooltip-series-group-hidden\");var n=document.createElement(\"span\");n.classList.add(\"apexcharts-tooltip-marker\"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement(\"div\");l.classList.add(\"apexcharts-tooltip-text\"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,[\"y\",\"goals\",\"z\"].forEach((function(t){var e=document.createElement(\"div\");e.classList.add(\"apexcharts-tooltip-\".concat(t,\"-group\"));var i=document.createElement(\"span\");i.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-label\")),e.appendChild(i);var a=document.createElement(\"span\");a.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-value\")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o<t;o++)r(o);return a}},{key:\"addSVGEvents\",value:function(){var t=this.w,e=t.config.chart.type,i=this.getElTooltip(),a=!(\"bar\"!==e&&\"candlestick\"!==e&&\"boxPlot\"!==e&&\"rangeBar\"!==e),s=\"area\"===e||\"line\"===e||\"scatter\"===e||\"bubble\"===e||\"radar\"===e,r=t.globals.dom.Paper.node,o=this.getElGrid();o&&(this.seriesBound=o.getBoundingClientRect());var n,l=[],h=[],c={hoverArea:r,elGrid:o,tooltipEl:i,tooltipY:l,tooltipX:h,ttItems:this.ttItems};if(t.globals.axisCharts&&(s?n=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series[data\\\\:longestSeries='true'] .apexcharts-marker\"):a?n=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area\"):\"heatmap\"!==e&&\"treemap\"!==e||(n=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap\")),n&&n.length))for(var d=0;d<n.length;d++)l.push(n[d].getAttribute(\"cy\")),h.push(n[d].getAttribute(\"cx\"));if(t.globals.xyCharts&&!this.showOnIntersect||t.globals.comboCharts&&!this.showOnIntersect||a&&this.tooltipUtil.hasBars()&&this.tConfig.shared)this.addPathsEventListeners([r],c);else if(a&&!t.globals.comboCharts||s&&this.showOnIntersect)this.addDatapointEventsListeners(c);else if(!t.globals.axisCharts||\"heatmap\"===e||\"treemap\"===e){var g=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");this.addPathsEventListeners(g,c)}if(this.showOnIntersect){var u=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker\");u.length>0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:\"drawFixedTooltipRect\",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf(\"right\")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf(\"bottom\")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+\"px\",e.style.top=o+\"px\",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:\"addDatapointEventsListeners\",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area\");this.addPathsEventListeners(e,t)}},{key:\"addPathsEventListeners\",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};[\"mousemove\",\"mouseup\",\"touchmove\",\"mouseout\",\"touchend\"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s<t.length;s++)a(s)}},{key:\"onSeriesHover\",value:function(t,e){var i=this,a=Date.now()-this.lastHoverTime;a>=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:\"seriesHover\",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:\"seriesHoverByContext\",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new N(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:\"axisChartsTooltips\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n=\"touchmove\"===a.type?a.touches[0].clientX:a.clientX,l=\"touchmove\"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,l<o.top||l>o.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute(\"index\"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||\"bar\"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(\"mousemove\"===a.type||\"touchmove\"===a.type||\"mouseup\"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add(\"apexcharts-active\");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add(\"apexcharts-active\"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if(\"heatmap\"===r.config.chart.type||\"treemap\"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+\"px\",c.style.top=i+\"px\"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var f=0;f<r.config.yaxis.length;f++)this.axesTooltip.drawYaxisTooltipText(f,l,this.xyRatios);s.tooltipEl.classList.add(\"apexcharts-active\")}else\"mouseout\"!==a.type&&\"touchend\"!==a.type||this.handleMouseOut(s)}}},{key:\"nonAxisChartsTooltips\",value:function(t){var e=t.e,i=t.opt,a=t.tooltipRect,s=this.w,r=i.paths.getAttribute(\"rel\"),o=this.getElTooltip(),n=s.globals.dom.elWrap.getBoundingClientRect();if(\"mousemove\"===e.type||\"touchmove\"===e.type){o.classList.add(\"apexcharts-active\"),this.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:parseInt(r,10)-1,shared:!1});var l=s.globals.clientX-n.left-a.ttWidth/2,h=s.globals.clientY-n.top-a.ttHeight-10;if(o.style.left=l+\"px\",o.style.top=h+\"px\",s.config.legend.tooltipHoverFormatter){var c=r-1,d=(0,s.config.legend.tooltipHoverFormatter)(this.legendLabels[c].getAttribute(\"data:default-text\"),{seriesIndex:c,dataPointIndex:c,w:s});this.legendLabels[c].innerHTML=d}}else\"mouseout\"!==e.type&&\"touchend\"!==e.type||(o.classList.remove(\"apexcharts-active\"),s.config.legend.tooltipHoverFormatter&&this.legendLabels.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)})))}},{key:\"handleStickyTooltip\",value:function(t,e,i,a){var s=this.w,r=this.tooltipUtil.getNearestValues({context:this,hoverArea:a.hoverArea,elGrid:a.elGrid,clientX:e,clientY:i}),o=r.j,n=r.capturedSeries;s.globals.collapsedSeriesIndices.includes(n)&&(n=null);var l=a.elGrid.getBoundingClientRect();if(r.hoverX<0||r.hoverX>l.width)this.handleMouseOut(a);else if(null!==n)this.handleStickyCapturedSeries(t,n,a,o);else if(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal){var h=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,h,o,a.ttItems)}}},{key:\"handleStickyCapturedSeries\",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);if(void 0!==s.globals.series[e][a])this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,r,a,i.ttItems)}}},{key:\"deactivateHoverFilter\",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(\".apexcharts-bar-area\"),a=0;a<i.length;a++)e.pathMouseLeave(i[a])}},{key:\"handleMouseOut\",value:function(t){var e=this.w,i=this.getElXCrosshairs();if(t.tooltipEl.classList.remove(\"apexcharts-active\"),this.deactivateHoverFilter(),\"bubble\"!==e.config.chart.type&&this.marker.resetPointsSize(),null!==i&&i.classList.remove(\"apexcharts-active\"),null!==this.ycrosshairs&&this.ycrosshairs.classList.remove(\"apexcharts-active\"),this.isXAxisTooltipEnabled&&this.xaxisTooltip.classList.remove(\"apexcharts-active\"),this.yaxisTooltips.length){null===this.yaxisTTEls&&(this.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));for(var a=0;a<this.yaxisTTEls.length;a++)this.yaxisTTEls[a].classList.remove(\"apexcharts-active\")}e.config.legend.tooltipHoverFormatter&&this.legendLabels.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}))}},{key:\"markerClick\",value:function(t,e,i){var a=this.w;\"function\"==typeof a.config.chart.events.markerClick&&a.config.chart.events.markerClick(t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}),this.ctx.events.fireEvent(\"markerClick\",[t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}])}},{key:\"create\",value:function(t,i,a,s,r){var o,n,l,h,c,d,g,u,p,f,x,b,v,y,w,k,A=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=i;\"mouseup\"===t.type&&this.markerClick(t,a,s),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(a),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var I=S.config.legend.tooltipHoverFormatter,T=Array.from(this.legendLabels);T.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}));for(var M=0;M<T.length;M++){var X=T[M],z=parseInt(X.getAttribute(\"i\"),10),E=decodeURIComponent(X.getAttribute(\"data:default-text\")),Y=I(E,{seriesIndex:A?z:a,dataPointIndex:s,w:S});if(A)X.innerHTML=S.globals.collapsedSeriesIndices.indexOf(z)<0?Y:E;else if(X.innerHTML=z===a?Y:E,a===z)break}}var F=e(e({ttItems:r,i:a,j:s},void 0!==(null===(o=S.globals.seriesRange)||void 0===o||null===(n=o[a])||void 0===n||null===(l=n[s])||void 0===l||null===(h=l.y[0])||void 0===h?void 0:h.y1)&&{y1:null===(c=S.globals.seriesRange)||void 0===c||null===(d=c[a])||void 0===d||null===(g=d[s])||void 0===g||null===(u=g.y[0])||void 0===u?void 0:u.y1}),void 0!==(null===(p=S.globals.seriesRange)||void 0===p||null===(f=p[a])||void 0===f||null===(x=f[s])||void 0===x||null===(b=x.y[0])||void 0===b?void 0:b.y2)&&{y2:null===(v=S.globals.seriesRange)||void 0===v||null===(y=v[a])||void 0===y||null===(w=y[s])||void 0===w||null===(k=w.y[0])||void 0===k?void 0:k.y2});if(A){if(C.tooltipLabels.drawSeriesTexts(e(e({},F),{},{shared:!this.showOnIntersect&&this.tConfig.shared})),L)S.globals.markers.largestSize>0?C.marker.enlargePoints(s):C.tooltipPosition.moveDynamicPointsOnHover(s);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var R=new m(this.ctx),H=S.globals.dom.Paper.select(\".apexcharts-bar-area[j='\".concat(s,\"']\"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(s,a);for(var D=0;D<H.length;D++)R.pathMouseEnter(H[D])}}else C.tooltipLabels.drawSeriesTexts(e({shared:!1},F)),this.tooltipUtil.hasBars()&&C.tooltipPosition.moveStickyTooltipOverBars(s,a),L&&C.tooltipPosition.moveMarkers(a,s)}}]),t}(),vt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e,this.totalFormatter=this.w.config.plotOptions.bar.dataLabels.total.formatter,this.totalFormatter||(this.totalFormatter=this.w.config.dataLabels.formatter)}return r(t,[{key:\"handleBarDataLabels\",value:function(t){var e=t.x,i=t.y,a=t.y1,s=t.y2,r=t.i,o=t.j,n=t.realIndex,l=t.groupIndex,h=t.series,c=t.barHeight,d=t.barWidth,g=t.barXPosition,u=t.barYPosition,p=t.visibleSeries,f=t.renderedPath,x=this.w,b=new m(this.barCtx.ctx),v=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[n]:this.barCtx.strokeWidth,y=e+parseFloat(d*p),w=i+parseFloat(c*p);x.globals.isXNumeric&&!x.globals.isBarHorizontal&&(y=e+parseFloat(d*(p+1)),w=i+parseFloat(c*(p+1))-v);var k,A=null,S=e,C=i,L={},P=x.config.dataLabels,I=this.barCtx.barOptions.dataLabels,T=this.barCtx.barOptions.dataLabels.total;void 0!==u&&this.barCtx.isRangeBar&&(w=u,C=u),void 0!==g&&this.barCtx.isVerticalGroupedRangeBar&&(y=g,S=g);var M=P.offsetX,X=P.offsetY,z={width:0,height:0};if(x.config.dataLabels.enabled){var E=this.barCtx.series[r][o];z=b.getTextRects(x.globals.yLabelFormatters[0](E),parseFloat(P.style.fontSize))}var Y={x:e,y:i,i:r,j:o,realIndex:n,groupIndex:l||-1,renderedPath:f,bcx:y,bcy:w,barHeight:c,barWidth:d,textRects:z,strokeWidth:v,dataLabelsX:S,dataLabelsY:C,dataLabelsConfig:P,barDataLabelsConfig:I,barTotalDataLabelsConfig:T,offX:M,offY:X};return L=this.barCtx.isHorizontal?this.calculateBarsDataLabelsPosition(Y):this.calculateColumnsDataLabelsPosition(Y),f.attr({cy:L.bcy,cx:L.bcx,j:o,val:h[r][o],barHeight:c,barWidth:d}),k=this.drawCalculatedDataLabels({x:L.dataLabelsX,y:L.dataLabelsY,val:this.barCtx.isRangeBar?[a,s]:h[r][o],i:n,j:o,barWidth:d,barHeight:c,textRects:z,dataLabelsConfig:P}),x.config.chart.stacked&&T.enabled&&(A=this.drawTotalDataLabels({x:L.totalDataLabelsX,y:L.totalDataLabelsY,realIndex:n,textAnchor:L.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:n,j:o}),dataLabelsConfig:P,barTotalDataLabelsConfig:T})),{dataLabels:k,totalDataLabels:A}}},{key:\"getStackedTotalDataLabel\",value:function(t){var i=t.realIndex,a=t.j,s=this.w,r=this.barCtx.stackedSeriesTotals[a];return this.totalFormatter&&(r=this.totalFormatter(r,e(e({},s),{},{seriesIndex:i,dataPointIndex:a,w:s}))),r}},{key:\"calculateColumnsDataLabelsPosition\",value:function(t){var e,i,a=this.w,s=t.i,r=t.j,o=t.realIndex,n=t.groupIndex,l=t.y,h=t.bcx,c=t.barWidth,d=t.barHeight,g=t.textRects,u=t.dataLabelsX,p=t.dataLabelsY,f=t.dataLabelsConfig,x=t.barDataLabelsConfig,b=t.barTotalDataLabelsConfig,v=t.strokeWidth,y=t.offX,w=t.offY;d=Math.abs(d);var k=\"vertical\"===a.config.plotOptions.bar.dataLabels.orientation;h=h-v/2+(-1!==n?n*c:0);var A=a.globals.gridWidth/a.globals.dataPoints;if(this.barCtx.isVerticalGroupedRangeBar?u+=c/2:u=a.globals.isXNumeric?h-c/2+y:h-A+c/2+y,k){u=u+g.height/2-v/2-2}var S=this.barCtx.series[s][r]<0,C=l;switch(this.barCtx.isReversed&&(C=l-d+(S?2*d:0),l-=d),x.position){case\"center\":p=k?S?C+d/2+w:C+d/2-w:S?C-d/2+g.height/2+w:C+d/2+g.height/2-w;break;case\"bottom\":p=k?S?C+d+w:C+d-w:S?C-d+g.height+v+w:C+d-g.height/2+v-w;break;case\"top\":p=k?S?C+w:C-w:S?C-g.height/2-w:C+g.height+w}if(this.barCtx.lastActiveBarSerieIndex===o&&b.enabled){var L=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:o,j:r}),f.fontSize);e=S?C-L.height/2-w-b.offsetY+18:C+L.height+w+b.offsetY-18,i=u+b.offsetX}return a.config.chart.stacked||(p<0?p=0+v:p+g.height/3>a.globals.gridHeight&&(p=a.globals.gridHeight-v)),{bcx:h,bcy:l,dataLabelsX:u,dataLabelsY:p,totalDataLabelsX:i,totalDataLabelsY:e,totalDataLabelsAnchor:\"middle\"}}},{key:\"calculateBarsDataLabelsPosition\",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.groupIndex,n=t.bcy,l=t.barHeight,h=t.barWidth,c=t.textRects,d=t.dataLabelsX,g=t.strokeWidth,u=t.dataLabelsConfig,p=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,x=t.offX,b=t.offY,v=e.globals.gridHeight/e.globals.dataPoints;h=Math.abs(h);var y,w,k=(n+=-1!==o?o*l:0)-(this.barCtx.isRangeBar?0:v)+l/2+c.height/2+b-3,A=\"start\",S=this.barCtx.series[a][s]<0,C=i;switch(this.barCtx.isReversed&&(C=i+h-(S?2*h:0),i=e.globals.gridWidth-h),p.position){case\"center\":d=S?C+h/2-x:Math.max(c.width/2,C-h/2)+x;break;case\"bottom\":d=S?C+h-g-Math.round(c.width/2)-x:C-h+g+Math.round(c.width/2)+x;break;case\"top\":d=S?C-g+Math.round(c.width/2)-x:C-g-Math.round(c.width/2)+x}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var L=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),u.fontSize);S?(y=C-g+Math.round(L.width/2)-x-f.offsetX-15,A=\"end\"):y=C-g-Math.round(L.width/2)+x+f.offsetX+15,w=k+f.offsetY}return e.config.chart.stacked||(d<0?d=d+c.width+g:d+c.width/2>e.globals.gridWidth&&(d=e.globals.gridWidth-c.width-g)),{bcx:i,bcy:n,dataLabelsX:d,dataLabelsY:k,totalDataLabelsX:y,totalDataLabelsY:w,totalDataLabelsAnchor:A}}},{key:\"drawCalculatedDataLabels\",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g=\"rotate(0)\";\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(g=\"rotate(-90, \".concat(i,\", \").concat(a,\")\"));var u=new O(this.barCtx.ctx),p=new m(this.barCtx.ctx),f=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=p.group({class:\"apexcharts-data-labels\",transform:g});var v=\"\";void 0!==s&&(v=f(s,e(e({},d),{},{seriesIndex:r,dataPointIndex:o,w:d}))),!s&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(v=\"\");var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if(\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(\"top\"===w&&(c.textAnchor=y?\"end\":\"start\"),\"center\"===w&&(c.textAnchor=\"middle\"),\"bottom\"===w&&(c.textAnchor=y?\"end\":\"start\")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)h<p.getTextRects(v,parseFloat(c.style.fontSize)).width&&(v=\"\");d.config.chart.stacked&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&(this.barCtx.isHorizontal?n.width/1.6>Math.abs(h)&&(v=\"\"):n.height/1.6>Math.abs(l)&&(v=\"\"));var k=e({},c);this.barCtx.isHorizontal&&s<0&&(\"start\"===c.textAnchor?k.textAnchor=\"end\":\"end\"===c.textAnchor&&(k.textAnchor=\"start\")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:\"drawTotalDataLabels\",value:function(t){var e,i=t.x,a=t.y,s=t.val,r=t.realIndex,o=t.textAnchor,n=t.barTotalDataLabelsConfig,l=new m(this.barCtx.ctx);return n.enabled&&void 0!==i&&void 0!==a&&this.barCtx.lastActiveBarSerieIndex===r&&(e=l.drawText({x:i,y:a,foreColor:n.style.color,text:s,textAnchor:o,fontFamily:n.style.fontFamily,fontSize:n.style.fontSize,fontWeight:n.style.fontWeight})),e}}]),t}(),mt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:\"initVariables\",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i<t.length;i++)if(t[i].length>0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;a<t[i].length;a++)e.globals.seriesX[i][a]>e.globals.minX&&e.globals.seriesX[i][a]<e.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=e.globals.dataPoints;0===this.barCtx.seriesLen&&(this.barCtx.seriesLen=1),this.barCtx.zeroSerieses=[],e.globals.comboCharts||this.checkZeroSeries({series:t})}},{key:\"initialPositions\",value:function(){var t,e,i,a,s,r,o,n,l=this.w,h=l.globals.dataPoints;this.barCtx.isRangeBar&&(h=l.globals.labels.length);var c=this.barCtx.seriesLen;if(l.config.plotOptions.bar.rangeBarGroupRows&&(c=1),this.barCtx.isHorizontal)s=(i=l.globals.gridHeight/h)/c,l.globals.isXNumeric&&(s=(i=l.globals.gridHeight/this.barCtx.totalItems)/this.barCtx.seriesLen),s=s*parseInt(this.barCtx.barOptions.barHeight,10)/100,-1===String(this.barCtx.barOptions.barHeight).indexOf(\"%\")&&(s=parseInt(this.barCtx.barOptions.barHeight,10)),n=this.barCtx.baseLineInvertedY+l.globals.padHorizontal+(this.barCtx.isReversed?l.globals.gridWidth:0)-(this.barCtx.isReversed?2*this.barCtx.baseLineInvertedY:0),this.barCtx.isFunnel&&(n=l.globals.gridWidth/2),e=(i-s*this.barCtx.seriesLen)/2;else{if(a=l.globals.gridWidth/this.barCtx.visibleItems,l.config.xaxis.convertedCatToNumeric&&(a=l.globals.gridWidth/l.globals.dataPoints),r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100,l.globals.isXNumeric){var d=this.barCtx.xRatio;l.config.xaxis.convertedCatToNumeric&&(d=this.barCtx.initialXRatio),l.globals.minXDiff&&.5!==l.globals.minXDiff&&l.globals.minXDiff/d>0&&(a=l.globals.minXDiff/d),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}-1===String(this.barCtx.barOptions.columnWidth).indexOf(\"%\")&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:\"initializeStackedPrevVars\",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]})):(t.prevY=[],t.prevX=[],t.prevYF=[],t.prevXF=[],t.prevYVal=[],t.prevXVal=[])}},{key:\"initializeStackedXYVars\",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]})):(t.xArrj=[],t.xArrjF=[],t.xArrjVal=[],t.yArrj=[],t.yArrjF=[],t.yArrjVal=[])}},{key:\"getPathFillColor\",value:function(t,e,i,a){var s,r,o,n,l=this.w,h=new R(this.barCtx.ctx),c=null,d=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(c=a.color)}));return l.config.series[e].data[i]&&l.config.series[e].data[i].fillColor&&(c=l.config.series[e].data[i].fillColor),h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?d:a,dataPointIndex:i,color:c,value:t[e][i],fillConfig:null===(s=l.config.series[e].data[i])||void 0===s?void 0:s.fill,fillType:null!==(r=l.config.series[e].data[i])&&void 0!==r&&null!==(o=r.fill)&&void 0!==o&&o.type?null===(n=l.config.series[e].data[i])||void 0===n?void 0:n.fill.type:l.config.fill.type})}},{key:\"getStrokeWidth\",value:function(t,e,i){var a=0,s=this.w;return this.barCtx.series[t][e]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:\"shouldApplyRadius\",value:function(t){var e=this.w,i=!1;return e.config.plotOptions.bar.borderRadius>0&&(e.config.chart.stacked&&\"last\"===e.config.plotOptions.bar.borderRadiusWhenStacked?this.barCtx.lastActiveBarSerieIndex===t&&(i=!0):i=!0),i}},{key:\"barBackground\",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new N(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add(\"apexcharts-backgroundBar\")}}},{key:\"getColumnPaths\",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.columnWidthOffset&&(p=a-d.config.series[l].data[c].columnWidthOffset/2,u=i+d.config.series[l].data[c].columnWidthOffset);var f=p,x=p+u;s+=.001,r+=.001;var b=g.move(f,s),v=g.move(f,s),y=g.line(x-o,s);if(d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(f,r)+g.line(x-o,r)+g.line(x-o,s)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),v=v+g.line(f,s)+y+y+y+y+y+g.line(f,s)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.yArrj.push(r),w.yArrjF.push(Math.abs(s-r)),w.yArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:\"getBarpaths\",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.barHeightOffset&&(u=i-d.config.series[l].data[c].barHeightOffset/2,p=a+d.config.series[l].data[c].barHeightOffset);var f=u,x=u+p;s+=.001,r+=.001;var b=g.move(s,f),v=g.move(s,f);d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1));var y=g.line(s,x-o);if(b=b+g.line(r,f)+g.line(r,x-o)+y+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),v=v+g.line(s,f)+y+y+y+y+y+g.line(s,f)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.xArrj.push(r),w.xArrjF.push(Math.abs(s-r)),w.xArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:\"checkZeroSeries\",value:function(t){for(var e=t.series,i=this.w,a=0;a<e.length;a++){for(var s=0,r=0;r<e[i.globals.maxValsInArrayIndex].length;r++)s+=e[a][r];0===s&&this.barCtx.zeroSerieses.push(a)}}},{key:\"getXForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}},{key:\"getYForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),i}},{key:\"getGoalValues\",value:function(t,i,a,s,r){var n=this,l=this.w,h=[],c=function(e,s){var r;h.push((o(r={},t,\"x\"===t?n.getXForValue(e,i,!1):n.getYForValue(e,a,!1)),o(r,\"attrs\",s),r))};if(l.globals.seriesGoals[s]&&l.globals.seriesGoals[s][r]&&Array.isArray(l.globals.seriesGoals[s][r])&&l.globals.seriesGoals[s][r].forEach((function(t){c(t.value,t)})),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,g={strokeHeight:\"x\"===t?0:l.globals.markers.size[s],strokeWidth:\"x\"===t?l.globals.markers.size[s]:0,strokeDashArray:0,strokeLineCap:\"round\",strokeColor:Array.isArray(d[s])?d[s][0]:d[s]};c(l.globals.seriesRangeStart[s][r],g),c(l.globals.seriesRangeEnd[s][r],e(e({},g),{},{strokeColor:Array.isArray(d[s])?d[s][1]:d[s]}))}return h}},{key:\"drawGoalLine\",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:\"apexcharts-bar-goals-groups\"});l.node.classList.add(\"apexcharts-element-hidden\"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(this.barCtx.w.globals.cuid,\")\"));var h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}},{key:\"drawBarShadow\",value:function(t){var e=t.prevPaths,i=t.currPaths,a=t.color,s=this.w,r=e.x,o=e.x1,n=e.barYPosition,l=i.x,h=i.x1,c=i.barYPosition,d=n+i.barHeight,g=new m(this.barCtx.ctx),u=new x,p=g.move(o,d)+g.line(r,d)+g.line(l,c)+g.line(h,c)+g.line(o,d)+(\"around\"===s.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\");return g.drawPath({d:p,fill:u.shadeColor(.5,x.rgb2hex(a)),stroke:\"none\",strokeWidth:0,fillOpacity:1,classes:\"apexcharts-bar-shadows\"})}}]),t}(),yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!s.globals.isBarHorizontal&&s.globals.seriesRange.length&&s.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.pathArr=[];var r=new N(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex(\"desc\",[\"bar\",\"column\"]);var o=r.getBarSeriesIndices(),n=new y(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new mt(this)}return r(t,[{key:\"draw\",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:\"apexcharts-bar-series apexcharts-plot-series\"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn(\"WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.\");for(var n=0,l=0;n<t.length;n++,l++){var h,c,d,g,u=void 0,p=void 0,f=[],b=[],v=a.globals.comboCharts?i[n]:n,w=s.group({class:\"apexcharts-series\",rel:n+1,seriesName:x.escapeString(a.globals.seriesNames[v]),\"data:realIndex\":v});this.ctx.series.addCollapsedClassToSeries(w,v),t[n].length>0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);var C=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v});a.globals.delayedElements.push({el:C.node}),C.node.classList.add(\"apexcharts-element-hidden\");var L=s.group({class:\"apexcharts-bar-goals-markers\"}),P=s.group({class:\"apexcharts-bar-shadows\"});a.globals.delayedElements.push({el:P.node}),P.node.classList.add(\"apexcharts-element-hidden\");for(var I=0;I<a.globals.dataPoints;I++){var T=this.barHelpers.getStrokeWidth(n,I,v),M=null,X={indexes:{i:n,j:I,realIndex:v,bc:l},x:u,y:p,strokeWidth:T,elSeries:w};this.isHorizontal?(M=this.drawBarPaths(e(e({},X),{},{barHeight:k,zeroW:g,yDivision:c})),A=this.series[n][I]/this.invertedYRatio):(M=this.drawColumnPaths(e(e({},X),{},{xDivision:h,barWidth:A,zeroH:d})),k=this.series[n][I]/this.yRatio[this.yaxisIndex]);var z=this.barHelpers.getPathFillColor(t,n,I,v);if(this.isFunnel&&this.barOptions.isFunnel3d&&this.pathArr.length&&I>0){var E=this.barHelpers.drawBarShadow({color:\"string\"==typeof z&&-1===(null==z?void 0:z.indexOf(\"url\"))?z:x.hexToRgba(a.globals.colors[n]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:M});E&&P.add(E)}this.pathArr.push(M);var Y=this.barHelpers.drawGoalLine({barXPosition:M.barXPosition,barYPosition:M.barYPosition,goalX:M.goalX,goalY:M.goalY,barHeight:k,barWidth:A});Y&&L.add(Y),p=M.y,u=M.x,I>0&&b.push(u+A/2),f.push(p),this.renderSeries({realIndex:v,pathFill:z,j:I,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:p,series:t,barHeight:M.barHeight?M.barHeight:k,barWidth:M.barWidth?M.barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,elBarShadows:P,visibleSeries:this.visibleI,type:\"bar\"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=f,o.add(w)}return o}},{key:\"renderSeries\",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.groupIndex,n=t.pathFrom,l=t.pathTo,h=t.strokeWidth,c=t.elSeries,d=t.x,g=t.y,u=t.y1,p=t.y2,f=t.series,x=t.barHeight,b=t.barWidth,y=t.barXPosition,w=t.barYPosition,k=t.elDataLabelsWrap,A=t.elGoalsMarkers,S=t.elBarShadows,C=t.visibleSeries,L=t.type,P=this.w,I=new m(this.ctx);a||(a=this.barOptions.distributed?P.globals.stroke.colors[s]:P.globals.stroke.colors[e]),P.config.series[r].data[s]&&P.config.series[r].data[s].strokeColor&&(a=P.config.series[r].data[s].strokeColor),this.isNullValue&&(i=\"none\");var T=s/P.config.chart.animations.animateGradually.delay*(P.config.chart.animations.speed/P.globals.dataPoints)/2.4,M=I.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:l,stroke:a,strokeWidth:h,strokeLineCap:P.config.stroke.lineCap,fill:i,animationDelay:T,initialSpeed:P.config.chart.animations.speed,dataChangeSpeed:P.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(L,\"-area\")});M.attr(\"clip-path\",\"url(#gridRectMask\".concat(P.globals.cuid,\")\"));var X=P.config.forecastDataPoints;X.count>0&&s>=P.globals.dataPoints-X.count&&(M.node.setAttribute(\"stroke-dasharray\",X.dashArray),M.node.setAttribute(\"stroke-width\",X.strokeWidth),M.node.setAttribute(\"fill-opacity\",X.fillOpacity)),void 0!==u&&void 0!==p&&(M.attr(\"data-range-y1\",u),M.attr(\"data-range-y2\",p)),new v(this.ctx).setSelectionFilter(M,e,s),c.add(M);var z=new vt(this).handleBarDataLabels({x:d,y:g,y1:u,y2:p,i:r,j:s,series:f,realIndex:e,groupIndex:o,barHeight:x,barWidth:b,barXPosition:y,barYPosition:w,renderedPath:M,visibleSeries:C});return null!==z.dataLabels&&k.add(z.dataLabels),z.totalDataLabels&&k.add(z.totalDataLabels),c.add(k),A&&c.add(A),S&&c.add(S),c}},{key:\"drawBarPaths\",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,p=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e<d&&0===t[g]&&p++})),u>0&&(a=this.seriesLen*a/u),e=n+a*this.visibleI,e-=a*p}else e=n+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[d][g],r)-r)/2),o=this.barHelpers.getXForValue(this.series[d][g],r);var f=this.barHelpers.getBarpaths({barYPosition:e,barHeight:a,x1:r,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:d,j:g,w:c});return c.globals.isXNumeric||(n+=l),this.barHelpers.barBackground({j:g,i:d,y1:e-a*this.visibleI,y2:a*this.seriesLen,elSeries:h}),{pathTo:f.pathTo,pathFrom:f.pathFrom,x1:r,x:o,y:n,goalX:this.barHelpers.getGoalValues(\"x\",r,null,d,g),barYPosition:e,barHeight:a}}},{key:\"drawColumnPaths\",value:function(t){var e,i=t.indexes,a=t.x,s=t.y,r=t.xDivision,o=t.barWidth,n=t.zeroH,l=t.strokeWidth,h=t.elSeries,c=this.w,d=i.realIndex,g=i.i,u=i.j,p=i.bc;if(c.globals.isXNumeric){var f=d;c.globals.seriesX[d].length||(f=c.globals.maxValsInArrayIndex),c.globals.seriesX[f][u]&&(a=(c.globals.seriesX[f][u]-c.globals.minX)/this.xRatio-o*this.seriesLen/2),e=a+o*this.visibleI}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var x=0,b=0;c.globals.seriesPercent.forEach((function(t,e){t[u]&&x++,e<g&&0===t[u]&&b++})),x>0&&(o=this.seriesLen*o/x),e=a+o*this.visibleI,e-=o*b}else e=a+o*this.visibleI;s=this.barHelpers.getYForValue(this.series[g][u],n);var v=this.barHelpers.getColumnPaths({barXPosition:e,barWidth:o,y1:n,y2:s,strokeWidth:l,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:p,j:u,i:g,x1:e-l/2-o*this.visibleI,x2:o*this.seriesLen+l/2,elSeries:h}),{pathTo:v.pathTo,pathFrom:v.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues(\"y\",null,n,g,u),barXPosition:e,barWidth:o}}},{key:\"getPreviousPath\",value:function(t,e){for(var i,a=this.w,s=0;s<a.globals.previousPaths.length;s++){var r=a.globals.previousPaths[s];r.paths&&r.paths.length>0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),wt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i){var a=this,s=this.w;this.graphics=new m(this.ctx),this.bar=new yt(this.ctx,this.xyRatios);var r=new y(this.ctx,s);t=r.getLogSeries(t),this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),\"100%\"===s.config.chart.stackType&&(t=s.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);for(var o=this.graphics.group({class:\"apexcharts-bar-series apexcharts-plot-series\"}),n=0,l=0,h=function(r,h){var c=void 0,d=void 0,g=void 0,u=void 0,p=-1;a.groupCtx=a,s.globals.seriesGroups.forEach((function(t,e){t.indexOf(s.config.series[r].name)>-1&&(p=e)})),-1!==p&&(a.groupCtx=a[s.globals.seriesGroups[p]]);var f=[],b=[],v=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=v),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var m=a.graphics.group({class:\"apexcharts-series\",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:r+1,\"data:realIndex\":v});a.ctx.series.addCollapsedClassToSeries(m,v);var y=a.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),w=a.graphics.group({class:\"apexcharts-bar-goals-markers\"}),k=0,A=0,S=a.initialPositions(n,l,c,d,g,u);l=S.y,k=S.barHeight,d=S.yDivision,u=S.zeroW,n=S.x,A=S.barWidth,c=S.xDivision,g=S.zeroH,a.barHelpers.initializeStackedXYVars(a),1===a.groupCtx.prevY.length&&a.groupCtx.prevY[0].every((function(t){return isNaN(t)}))&&(a.groupCtx.prevY[0]=a.groupCtx.prevY[0].map((function(t){return g})),a.groupCtx.prevYF[0]=a.groupCtx.prevYF[0].map((function(t){return 0})));for(var C=0;C<s.globals.dataPoints;C++){var L=a.barHelpers.getStrokeWidth(r,C,v),P={indexes:{i:r,j:C,realIndex:v,bc:h},strokeWidth:L,x:n,y:l,elSeries:m,groupIndex:p,seriesGroup:s.globals.seriesGroups[p]},I=null;a.isHorizontal?(I=a.drawStackedBarPaths(e(e({},P),{},{zeroW:u,barHeight:k,yDivision:d})),A=a.series[r][C]/a.invertedYRatio):(I=a.drawStackedColumnPaths(e(e({},P),{},{xDivision:c,barWidth:A,zeroH:g})),k=a.series[r][C]/a.yRatio[a.yaxisIndex]);var T=a.barHelpers.drawGoalLine({barXPosition:I.barXPosition,barYPosition:I.barYPosition,goalX:I.goalX,goalY:I.goalY,barHeight:k,barWidth:A});T&&w.add(T),l=I.y,n=I.x,f.push(n),b.push(l);var M=a.barHelpers.getPathFillColor(t,r,C,v);m=a.renderSeries({realIndex:v,pathFill:M,j:C,i:r,groupIndex:p,pathFrom:I.pathFrom,pathTo:I.pathTo,strokeWidth:L,elSeries:m,x:n,y:l,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:y,elGoalsMarkers:w,type:\"bar\",visibleSeries:0})}s.globals.seriesXvalues[v]=f,s.globals.seriesYvalues[v]=b,a.groupCtx.prevY.push(a.groupCtx.yArrj),a.groupCtx.prevYF.push(a.groupCtx.yArrjF),a.groupCtx.prevYVal.push(a.groupCtx.yArrjVal),a.groupCtx.prevX.push(a.groupCtx.xArrj),a.groupCtx.prevXF.push(a.groupCtx.xArrjF),a.groupCtx.prevXVal.push(a.groupCtx.xArrjVal),o.add(m)},c=0,d=0;c<t.length;c++,d++)h(c,d);return o}},{key:\"initialPositions\",value:function(t,e,i,a,s,r){var o,n,l,h,c=this.w;return this.isHorizontal?(l=(l=a=c.globals.gridHeight/c.globals.dataPoints)*parseInt(c.config.plotOptions.bar.barHeight,10)/100,-1===String(c.config.plotOptions.bar.barHeight).indexOf(\"%\")&&(l=parseInt(c.config.plotOptions.bar.barHeight,10)),r=this.baseLineInvertedY+c.globals.padHorizontal+(this.isReversed?c.globals.gridWidth:0)-(this.isReversed?2*this.baseLineInvertedY:0),e=(a-l)/2):(h=i=c.globals.gridWidth/c.globals.dataPoints,h=c.globals.isXNumeric&&c.globals.dataPoints>1?(i=c.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:h*parseInt(c.config.plotOptions.bar.columnWidth,10)/100,-1===String(c.config.plotOptions.bar.columnWidth).indexOf(\"%\")&&(h=parseInt(c.config.plotOptions.bar.columnWidth,10)),s=c.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?c.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=c.globals.padHorizontal+(i-h)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:null!==(o=c.globals.seriesGroups)&&void 0!==o&&o.length?l/c.globals.seriesGroups.length:l,barWidth:null!==(n=c.globals.seriesGroups)&&void 0!==n&&n.length?h/c.globals.seriesGroups.length:h,zeroH:s,zeroW:r}}},{key:\"drawStackedBarPaths\",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.groupIndex,h=t.seriesGroup,c=t.yDivision,d=t.elSeries,g=this.w,u=n+(-1!==l?l*a:0),p=i.i,f=i.j,x=0,b=0;b<this.groupCtx.prevXF.length;b++)x+=this.groupCtx.prevXF[b][f];var v=p;if(h&&(v=h.indexOf(g.config.series[p].name)),v>0){var m=r;this.groupCtx.prevXVal[v-1][f]<0?m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]+x-2*(this.isReversed?x:0):this.groupCtx.prevX[v-1][f]:this.groupCtx.prevXVal[v-1][f]>=0&&(m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]:this.groupCtx.prevX[v-1][f]-x+2*(this.isReversed?x:0)),e=m}else e=r;o=null===this.series[p][f]?e:e+this.series[p][f]/this.invertedYRatio-2*(this.isReversed?this.series[p][f]/this.invertedYRatio:0);var y=this.barHelpers.getBarpaths({barYPosition:u,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,seriesGroup:h,i:p,j:f,w:g});return this.barHelpers.barBackground({j:f,i:p,y1:u,y2:a,elSeries:d}),n+=c,{pathTo:y.pathTo,pathFrom:y.pathFrom,goalX:this.barHelpers.getGoalValues(\"x\",r,null,p,f),barYPosition:u,x:o,y:n}}},{key:\"drawStackedColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.groupIndex,l=t.seriesGroup,h=t.elSeries,c=this.w,d=e.i,g=e.j,u=e.bc;if(c.globals.isXNumeric){var p=c.globals.seriesX[d][g];p||(p=0),i=(p-c.globals.minX)/this.xRatio-r/2,c.globals.seriesGroups.length&&(i=(p-c.globals.minX)/this.xRatio-r/2*c.globals.seriesGroups.length)}for(var f,x=i+(-1!==n?n*r:0),b=0,v=0;v<this.groupCtx.prevYF.length;v++)b+=isNaN(this.groupCtx.prevYF[v][g])?0:this.groupCtx.prevYF[v][g];var m=d;if(l&&(m=l.indexOf(c.config.series[d].name)),m>0&&!c.globals.isXNumeric||m>0&&c.globals.isXNumeric&&c.globals.seriesX[d-1][g]===c.globals.seriesX[d][g]){var y,w,k,A=Math.min(this.yRatio.length+1,d+1);if(void 0!==this.groupCtx.prevY[m-1]&&this.groupCtx.prevY[m-1].length)for(var S=1;S<A;S++){var C;if(!isNaN(null===(C=this.groupCtx.prevY[m-S])||void 0===C?void 0:C[g])){k=this.groupCtx.prevY[m-S][g];break}}for(var L=1;L<A;L++){var P,I;if((null===(P=this.groupCtx.prevYVal[m-L])||void 0===P?void 0:P[g])<0){w=this.series[d][g]>=0?k-b+2*(this.isReversed?b:0):k;break}if((null===(I=this.groupCtx.prevYVal[m-L])||void 0===I?void 0:I[g])>=0){w=this.series[d][g]>=0?k:k+b-2*(this.isReversed?b:0);break}}void 0===w&&(w=c.globals.gridHeight),f=null!==(y=this.groupCtx.prevYF[0])&&void 0!==y&&y.every((function(t){return 0===t}))&&this.groupCtx.prevYF.slice(1,m).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:w}else f=o;a=this.series[d][g]?f-this.series[d][g]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[d][g]/this.yRatio[this.yaxisIndex]:0):f;var T=this.barHelpers.getColumnPaths({barXPosition:x,barWidth:r,y1:f,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,seriesGroup:l,realIndex:e.realIndex,i:d,j:g,w:c});return this.barHelpers.barBackground({bc:u,j:g,i:d,x1:x,x2:r,elSeries:h}),i+=s,{pathTo:T.pathTo,pathFrom:T.pathFrom,goalY:this.barHelpers.getGoalValues(\"y\",null,o,d,g),barXPosition:x,x:c.globals.isXNumeric?i-s:i,y:a}}}]),s}(),kt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i,a){var s=this,r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=new R(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=r.config.plotOptions.bar.horizontal;var h=new y(this.ctx,r);t=h.getLogSeries(t),this.series=t,this.yRatio=h.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var c=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),d=function(i){s.isBoxPlot=\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[i].type;var n,h,d,g,u=void 0,p=void 0,f=[],b=[],v=r.globals.comboCharts?a[i]:i,m=o.group({class:\"apexcharts-series\",seriesName:x.escapeString(r.globals.seriesNames[v]),rel:i+1,\"data:realIndex\":v});s.ctx.series.addCollapsedClassToSeries(m,v),t[i].length>0&&(s.visibleI=s.visibleI+1);var y,w;s.yRatio.length>1&&(s.yaxisIndex=v);var k=s.barHelpers.initialPositions();p=k.y,y=k.barHeight,h=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,n=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=o.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),S=function(a){var o=s.barHelpers.getStrokeWidth(i,a,v),c=null,x={indexes:{i:i,j:a,realIndex:v},x:u,y:p,strokeWidth:o,elSeries:m};c=s.isHorizontal?s.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:h,barHeight:y,zeroW:g})):s.drawVerticalBoxPaths(e(e({},x),{},{xDivision:n,barWidth:w,zeroH:d})),p=c.y,u=c.x,a>0&&b.push(u+w/2),f.push(p),c.pathTo.forEach((function(e,n){var h=!s.isBoxPlot&&s.candlestickOptions.wick.useFillColor?c.color[n]:r.globals.stroke.colors[i],d=l.fillPath({seriesNumber:v,dataPointIndex:a,color:c.color[n],value:t[i][a]});s.renderSeries({realIndex:v,pathFill:d,lineFill:h,j:a,i:i,pathFrom:c.pathFrom,pathTo:e,strokeWidth:o,elSeries:m,x:u,y:p,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:s.visibleI,type:r.config.chart.type})}))},C=0;C<r.globals.dataPoints;C++)S(C);r.globals.seriesXvalues[v]=b,r.globals.seriesYvalues[v]=f,c.add(m)},g=0;g<t.length;g++)d(g);return c}},{key:\"drawVerticalBoxPaths\",value:function(t){var e=t.indexes,i=t.x;t.y;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=!0,g=n.config.plotOptions.candlestick.colors.upward,u=n.config.plotOptions.candlestick.colors.downward,p=\"\";this.isBoxPlot&&(p=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var f=this.yRatio[this.yaxisIndex],x=e.realIndex,b=this.getOHLCValue(x,c),v=r,y=r;b.o>b.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/f,k=r-k/f,v=r-b.h/f,y=r-b.l/f,A=r-b.m/f);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+\"z\"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?p:d?[g]:[u]}}},{key:\"drawHorizontalBoxPaths\",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,p=this.getOHLCValue(u,c),f=r,x=r,b=Math.min(p.o,p.c),v=Math.max(p.o,p.c),y=p.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,f=r+p.h/g,x=r+p.l/g,y=r+p.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(f,w+s/2)+l.line(f,w+s/2-s/4)+l.line(f,w+s/2+s/4)+l.line(f,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+\"z\"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:\"getOHLCValue\",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(),At=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"checkColorRange\",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:\"getShadeColor\",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,\"treemap\"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l=\"dark\"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:\"determineColor\",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&\"treemap\"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||\"heatmap\"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.min<a.globals.minY?r.colorScale.min:a.globals.minY,c=r.colorScale.max>a.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:\"calculateDataLabels\",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new O(this.ctx),d=null;if(l.enabled){d=h.group({class:\"apexcharts-data-labels\"});var g=l.offsetX,u=l.offsetY,p=i+g,f=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:p,y:f,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:\"addListeners\",value:function(t){var e=new m(this.ctx);t.node.addEventListener(\"mouseenter\",e.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",e.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mousedown\",e.pathMouseDown.bind(this,t))}}]),t}(),St=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new At(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:\"draw\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-heatmap\"});a.attr(\"clip-path\",\"url(#gridRectMask\".concat(e.globals.cuid,\")\"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h<l.length:h>=0;n?h++:h--){var c=i.group({class:\"apexcharts-series apexcharts-heatmap-series\",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,\"data:realIndex\":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p<l[h].length;p++){var f=this.helpers.getShadeColor(e.config.chart.type,h,p,this.negRange),b=f.color,y=f.colorProps;if(\"image\"===e.config.fill.type)b=new R(this.ctx).fillPath({seriesNumber:h,dataPointIndex:p,opacity:e.globals.hasNegs?y.percent<0?1-(1+y.percent/100):u+y.percent/100:y.percent/100,patternID:x.randomId(),width:e.config.fill.image.width?e.config.fill.image.width:s,height:e.config.fill.image.height?e.config.fill.image.height:r});var w=this.rectRadius,k=i.drawRect(g,o,s,r,w);if(k.attr({cx:g,cy:o}),k.node.classList.add(\"apexcharts-heatmap-rect\"),c.add(k),k.attr({fill:b,i:h,index:h,j:p,val:l[h][p],\"stroke-width\":this.strokeWidth,stroke:e.config.plotOptions.heatmap.useFillColorAsStroke?b:e.globals.stroke.colors[0],color:b}),this.helpers.addListeners(k),e.config.chart.animations.enabled&&!e.globals.dataChanged){var A=1;e.globals.resized||(A=e.config.chart.animations.speed),this.animateHeatMap(k,g,o,s,r,A)}if(e.globals.dataChanged){var S=1;if(this.dynamicAnim.enabled&&e.globals.shouldAnimate){S=this.dynamicAnim.speed;var C=e.globals.previousPaths[h]&&e.globals.previousPaths[h][p]&&e.globals.previousPaths[h][p].color;C||(C=\"rgba(255, 255, 255, 0)\"),this.animateHeatColor(k,x.isColorHex(C)?C:x.rgb2hex(C),x.isColorHex(b)?b:x.rgb2hex(b),S)}}var L=(0,e.config.dataLabels.formatter)(e.globals.series[h][p],{value:e.globals.series[h][p],seriesIndex:h,dataPointIndex:p,w:e}),P=this.helpers.calculateDataLabels({text:L,x:g+s/2,y:o+r/2,i:h,j:p,colorProps:y,series:l});null!==P&&c.add(P),g+=s}o+=r,a.add(c)}var I=e.globals.yAxisScale[0].result.slice();e.config.yaxis[0].reversed?I.unshift(\"\"):I.push(\"\"),e.globals.yAxisScale[0].result=I;var T=e.globals.gridHeight/e.globals.series.length;return e.config.yaxis[0].labels.offsetY=-T/2,a}},{key:\"animateHeatMap\",value:function(t,e,i,a,s,r){var o=new b(this.ctx);o.animateRect(t,{x:e+a/2,y:i+s/2,width:0,height:0},{x:e,y:i,width:a,height:s},r,(function(){o.animationCompleted(t)}))}},{key:\"animateHeatColor\",value:function(t,e,i,a){t.attr({fill:e}).animate(a).attr({fill:i})}}]),t}(),Ct=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawYAxisTexts\",value:function(t,e,i,a){var s=this.w,r=s.config.yaxis[0],o=s.globals.yLabelFormatters[0];return new m(this.ctx).drawText({x:t+r.labels.offsetX,y:e+r.labels.offsetY,text:o(a,i),textAnchor:\"middle\",fontSize:r.labels.style.fontSize,fontFamily:r.labels.style.fontFamily,foreColor:Array.isArray(r.labels.style.colors)?r.labels.style.colors[i]:r.labels.style.colors})}}]),t}(),Lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels,this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=Math.min(i.globals.gridWidth,i.globals.gridHeight),this.centerY=this.defaultSize/2,this.centerX=i.globals.gridWidth/2,\"radialBar\"===i.config.chart.type?this.fullAngle=360:this.fullAngle=Math.abs(i.config.plotOptions.pie.endAngle-i.config.plotOptions.pie.startAngle),this.initialAngle=i.config.plotOptions.pie.startAngle%this.fullAngle,i.globals.radialSize=this.defaultSize/2.05-i.config.stroke.width-(i.config.chart.sparkline.enabled?0:i.config.chart.dropShadow.blur),this.donutSize=i.globals.radialSize*parseInt(i.config.plotOptions.pie.donut.size,10)/100,this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSectorAngleArr=[]}return r(t,[{key:\"draw\",value:function(t){var e=this,i=this.w,a=new m(this.ctx);if(this.ret=a.group({class:\"apexcharts-pie\"}),i.globals.noData)return this.ret;for(var s=0,r=0;r<t.length;r++)s+=x.negToZero(t[r]);var o=[],n=a.group();0===s&&(s=1e-5),t.forEach((function(t){e.maxY=Math.max(e.maxY,t)})),i.config.yaxis[0].max&&(this.maxY=i.config.yaxis[0].max),\"back\"===i.config.grid.position&&\"polarArea\"===this.chartType&&this.drawPolarElements(this.ret);for(var l=0;l<t.length;l++){var h=this.fullAngle*x.negToZero(t[l])/s;o.push(h),\"polarArea\"===this.chartType?(o[l]=this.fullAngle/t.length,this.sliceSizes.push(i.globals.radialSize*t[l]/this.maxY)):this.sliceSizes.push(i.globals.radialSize)}if(i.globals.dataChanged){for(var c,d=0,g=0;g<i.globals.previousPaths.length;g++)d+=x.negToZero(i.globals.previousPaths[g]);for(var u=0;u<i.globals.previousPaths.length;u++)c=this.fullAngle*x.negToZero(i.globals.previousPaths[u])/d,this.prevSectorAngleArr.push(c)}this.donutSize<0&&(this.donutSize=0);var p=i.config.plotOptions.pie.customScale,f=i.globals.gridWidth/2,b=i.globals.gridHeight/2,v=f-i.globals.gridWidth/2*p,y=b-i.globals.gridHeight/2*p;if(\"donut\"===this.chartType){var w=a.drawCircle(this.donutSize);w.attr({cx:this.centerX,cy:this.centerY,fill:i.config.plotOptions.pie.donut.background?i.config.plotOptions.pie.donut.background:\"transparent\"}),n.add(w)}var k=this.drawArcs(o,t);if(this.sliceLabels.forEach((function(t){k.add(t)})),n.attr({transform:\"translate(\".concat(v,\", \").concat(y,\") scale(\").concat(p,\")\")}),n.add(k),this.ret.add(n),this.donutDataLabels.show){var A=this.renderInnerDataLabels(this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show,translateX:v,translateY:y});this.ret.add(A)}return\"front\"===i.config.grid.position&&\"polarArea\"===this.chartType&&this.drawPolarElements(this.ret),this.ret}},{key:\"drawArcs\",value:function(t,e){var i=this.w,a=new v(this.ctx),s=new m(this.ctx),r=new R(this.ctx),o=s.group({class:\"apexcharts-slices\"}),n=this.initialAngle,l=this.initialAngle,h=this.initialAngle,c=this.initialAngle;this.strokeWidth=i.config.stroke.show?i.config.stroke.width:0;for(var d=0;d<t.length;d++){var g=s.group({class:\"apexcharts-series apexcharts-pie-series\",seriesName:x.escapeString(i.globals.seriesNames[d]),rel:d+1,\"data:realIndex\":d});o.add(g),l=c,h=(n=h)+t[d],c=l+this.prevSectorAngleArr[d];var u=h<n?this.fullAngle+h-n:h-n,p=r.fillPath({seriesNumber:d,size:this.sliceSizes[d],value:e[d]}),f=this.getChangedPath(l,c),b=s.drawPath({d:f,stroke:Array.isArray(this.lineColorArr)?this.lineColorArr[d]:this.lineColorArr,strokeWidth:0,fill:p,fillOpacity:i.config.fill.opacity,classes:\"apexcharts-pie-area apexcharts-\".concat(this.chartType.toLowerCase(),\"-slice-\").concat(d)});if(b.attr({index:0,j:d}),a.setSelectionFilter(b,0,d),i.config.chart.dropShadow.enabled){var y=i.config.chart.dropShadow;a.dropShadow(b,y,d)}this.addListeners(b,this.donutDataLabels),m.setAttrs(b.node,{\"data:angle\":u,\"data:startAngle\":n,\"data:strokeWidth\":this.strokeWidth,\"data:value\":e[d]});var w={x:0,y:0};\"pie\"===this.chartType||\"polarArea\"===this.chartType?w=x.polarToCartesian(this.centerX,this.centerY,i.globals.radialSize/1.25+i.config.plotOptions.pie.dataLabels.offset,(n+u/2)%this.fullAngle):\"donut\"===this.chartType&&(w=x.polarToCartesian(this.centerX,this.centerY,(i.globals.radialSize+this.donutSize)/2+i.config.plotOptions.pie.dataLabels.offset,(n+u/2)%this.fullAngle)),g.add(b);var k=0;if(!this.initialAnim||i.globals.resized||i.globals.dataChanged?this.animBeginArr.push(0):(0===(k=u/this.fullAngle*i.config.chart.animations.speed)&&(k=1),this.animDur=k+this.animDur,this.animBeginArr.push(this.animDur)),this.dynamicAnim&&i.globals.dataChanged?this.animatePaths(b,{size:this.sliceSizes[d],endAngle:h,startAngle:n,prevStartAngle:l,prevEndAngle:c,animateStartingPos:!0,i:d,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:i.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(b,{size:this.sliceSizes[d],endAngle:h,startAngle:n,i:d,totalItems:t.length-1,animBeginArr:this.animBeginArr,dur:k}),i.config.plotOptions.pie.expandOnClick&&\"polarArea\"!==this.chartType&&b.click(this.pieClicked.bind(this,d)),void 0!==i.globals.selectedDataPoints[0]&&i.globals.selectedDataPoints[0].indexOf(d)>-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+\"%\";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabel<t[d]){var L=i.config.dataLabels.formatter;void 0!==L&&(C=L(i.globals.seriesPercent[d][0],{seriesIndex:d,w:i}));var P=i.globals.dataLabels.style.colors[d],I=s.group({class:\"apexcharts-datalabels\"}),T=s.drawText({x:A,y:S,text:C,textAnchor:\"middle\",fontSize:i.config.dataLabels.style.fontSize,fontFamily:i.config.dataLabels.style.fontFamily,fontWeight:i.config.dataLabels.style.fontWeight,foreColor:P});if(I.add(T),i.config.dataLabels.dropShadow.enabled){var M=i.config.dataLabels.dropShadow;a.dropShadow(T,M)}T.node.classList.add(\"apexcharts-pie-label\"),i.config.chart.animations.animate&&!1===i.globals.resized&&(T.node.classList.add(\"apexcharts-pie-label-delay\"),T.node.style.animationDelay=i.config.chart.animations.speed/940+\"s\"),this.sliceLabels.push(I)}}}return o}},{key:\"addListeners\",value:function(t,e){var i=new m(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mouseleave\",this.revertDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this,t)),this.donutDataLabels.total.showAlways||(t.node.addEventListener(\"mouseenter\",this.printDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener(\"mousedown\",this.printDataLabelsInner.bind(this,t.node,e)))}},{key:\"animatePaths\",value:function(t,e){var i=this.w,a=e.endAngle<e.startAngle?this.fullAngle+e.endAngle-e.startAngle:e.endAngle-e.startAngle,s=a,r=e.startAngle,o=e.startAngle;void 0!==e.prevStartAngle&&void 0!==e.prevEndAngle&&(r=e.prevEndAngle,s=e.prevEndAngle<e.prevStartAngle?this.fullAngle+e.prevEndAngle-e.prevStartAngle:e.prevEndAngle-e.prevStartAngle),e.i===i.config.series.length-1&&(a+o>this.fullAngle?e.endAngle=e.endAngle-(a+o):a+o<this.fullAngle&&(e.endAngle=e.endAngle+(this.fullAngle-(a+o)))),a===this.fullAngle&&(a=this.fullAngle-.01),this.animateArc(t,r,o,a,s,e)}},{key:\"animateArc\",value:function(t,e,i,a,s,r){var o,n=this,l=this.w,h=new b(this.ctx),c=r.size;(isNaN(e)||isNaN(s))&&(e=i,s=a,r.dur=0);var d=a,g=i,u=e<i?this.fullAngle+e-i:e-i;l.globals.dataChanged&&r.shouldSetPrevPaths&&r.prevEndAngle&&(o=n.getPiePath({me:n,startAngle:r.prevStartAngle,angle:r.prevEndAngle<r.prevStartAngle?this.fullAngle+r.prevEndAngle-r.prevStartAngle:r.prevEndAngle-r.prevStartAngle,size:c}),t.attr({d:o})),0!==r.dur?t.animate(r.dur,l.globals.easing,r.animBeginArr[r.i]).afterAll((function(){\"pie\"!==n.chartType&&\"donut\"!==n.chartType&&\"polarArea\"!==n.chartType||this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({\"stroke-width\":n.strokeWidth}),r.i===l.config.series.length-1&&h.animationCompleted(t)})).during((function(l){d=u+(a-u)*l,r.animateStartingPos&&(d=s+(a-s)*l,g=e-s+(i-(e-s))*l),o=n.getPiePath({me:n,startAngle:g,angle:d,size:c}),t.node.setAttribute(\"data:pathOrig\",o),t.attr({d:o})})):(o=n.getPiePath({me:n,startAngle:g,angle:a,size:c}),r.isTrack||(l.globals.animationEnded=!0),t.node.setAttribute(\"data:pathOrig\",o),t.attr({d:o,\"stroke-width\":n.strokeWidth}))}},{key:\"pieClicked\",value:function(t){var e,i=this.w,a=this,s=a.sliceSizes[t]+(i.config.plotOptions.pie.expandOnClick?4:0),r=i.globals.dom.Paper.select(\".apexcharts-\".concat(a.chartType.toLowerCase(),\"-slice-\").concat(t)).members[0];if(\"true\"!==r.attr(\"data:pieClicked\")){var o=i.globals.dom.baseEl.getElementsByClassName(\"apexcharts-pie-area\");Array.prototype.forEach.call(o,(function(t){t.setAttribute(\"data:pieClicked\",\"false\");var e=t.getAttribute(\"data:pathOrig\");e&&t.setAttribute(\"d\",e)})),r.attr(\"data:pieClicked\",\"true\");var n=parseInt(r.attr(\"data:startAngle\"),10),l=parseInt(r.attr(\"data:angle\"),10);e=a.getPiePath({me:a,startAngle:n,angle:l,size:s}),360!==l&&r.plot(e)}else{r.attr({\"data:pieClicked\":\"false\"}),this.revertDataLabelsInner(r.node,this.donutDataLabels);var h=r.attr(\"data:pathOrig\");r.attr({d:h})}}},{key:\"getChangedPath\",value:function(t,e){var i=\"\";return this.dynamicAnim&&this.w.globals.dataChanged&&(i=this.getPiePath({me:this,startAngle:t,angle:e-t,size:this.size})),i}},{key:\"getPiePath\",value:function(t){var e=t.me,i=t.startAngle,a=t.angle,s=t.size,r=i,o=Math.PI*(r-90)/180,n=a+i;Math.ceil(n)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),p=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),f=a>180?1:0,b=[\"M\",h,c,\"A\",s,s,0,f,1,d,g];return\"donut\"===e.chartType?[].concat(b,[\"L\",u.x,u.y,\"A\",e.donutSize,e.donutSize,0,f,0,p.x,p.y,\"L\",h,c,\"z\"]).join(\" \"):\"pie\"===e.chartType||\"polarArea\"===e.chartType?[].concat(b,[\"L\",e.centerX,e.centerY,\"L\",h,c]).join(\" \"):[].concat(b).join(\" \")}},{key:\"drawPolarElements\",value:function(t){var e=this.w,i=new _(this.ctx),a=new m(this.ctx),s=new Ct(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g<h-1;g++){var u=a.drawCircle(c);if(u.attr({cx:this.centerX,cy:this.centerY,fill:\"none\",\"stroke-width\":e.config.plotOptions.polarArea.rings.strokeWidth,stroke:e.config.plotOptions.polarArea.rings.strokeColor}),e.config.yaxis[0].show){var p=s.drawYAxisTexts(this.centerX,this.centerY-c+parseInt(e.config.yaxis[0].labels.style.fontSize,10)/2,g,l[g]);o.add(p)}r.add(u),c-=d}this.drawSpokes(t),t.add(r),t.add(o)}},{key:\"renderInnerDataLabels\",value:function(t,e){var i=this.w,a=new m(this.ctx),s=a.group({class:\"apexcharts-datalabels-group\",transform:\"translate(\".concat(e.translateX?e.translateX:0,\", \").concat(e.translateY?e.translateY:0,\") scale(\").concat(i.config.plotOptions.pie.customScale,\")\")}),r=t.total.show;s.node.style.opacity=e.opacity;var o,n,l=e.centerX,h=e.centerY;o=void 0===t.name.color?i.globals.colors[0]:t.name.color;var c=t.name.fontSize,d=t.name.fontFamily,g=t.name.fontWeight;n=void 0===t.value.color?i.config.chart.foreColor:t.value.color;var u=t.value.formatter,p=\"\",f=\"\";if(r?(o=t.total.color,c=t.total.fontSize,d=t.total.fontFamily,g=t.total.fontWeight,f=t.total.label,p=t.total.formatter(i)):1===i.globals.series.length&&(p=u(i.globals.series[0],i),f=i.globals.seriesNames[0]),f&&(f=t.name.formatter(f,t.total.show,i)),t.name.show){var x=a.drawText({x:l,y:h+parseFloat(t.name.offsetY),text:f,textAnchor:\"middle\",foreColor:o,fontSize:c,fontWeight:g,fontFamily:d});x.node.classList.add(\"apexcharts-datalabel-label\"),s.add(x)}if(t.value.show){var b=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,v=a.drawText({x:l,y:h+b,text:p,textAnchor:\"middle\",foreColor:n,fontWeight:t.value.fontWeight,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});v.node.classList.add(\"apexcharts-datalabel-value\"),s.add(v)}return s}},{key:\"printInnerLabels\",value:function(t,e,i,a){var s,r=this.w;a?s=void 0===t.name.color?r.globals.colors[parseInt(a.parentNode.getAttribute(\"rel\"),10)-1]:t.name.color:r.globals.series.length>1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-label\"),n=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-value\");i=(0,t.value.formatter)(i,r),a||\"function\"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:\"printDataLabelsInner\",value:function(t,e){var i=this.w,a=t.getAttribute(\"data:value\"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute(\"rel\"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\");null!==r&&(r.style.opacity=1)}},{key:\"drawSpokes\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n<i.globals.series.length;n++)r.push(x.polarToCartesian(this.centerX,this.centerY,i.globals.radialSize,i.config.plotOptions.pie.startAngle+o*n));r.forEach((function(i,r){var o=a.drawLine(i.x,i.y,e.centerX,e.centerY,Array.isArray(s.connectorColors)?s.connectorColors[r]:s.connectorColors);t.add(o)}))}}},{key:\"revertDataLabelsInner\",value:function(t,e,i){var a=this,s=this.w,r=s.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\"),o=!1,n=s.globals.dom.baseEl.getElementsByClassName(\"apexcharts-pie-area\"),l=function(t){var i=t.makeSliceOut,s=t.printLabel;Array.prototype.forEach.call(n,(function(t){\"true\"===t.getAttribute(\"data:pieClicked\")&&(i&&(o=!0),s&&a.printDataLabelsInner(t,e))}))};if(l({makeSliceOut:!0,printLabel:!1}),e.total.show&&s.globals.series.length>1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(this.chartType.toLowerCase(),\"-slice-\").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Pt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight<i.globals.svgWidth?i.globals.gridHeight+1.5*i.globals.goldenPadding:i.globals.gridWidth,this.isLog=i.config.yaxis[0].logarithmic,this.coreUtils=new y(this.ctx),this.maxValue=this.isLog?this.coreUtils.getLogVal(i.globals.maxY,0):i.globals.maxY,this.minValue=this.isLog?this.coreUtils.getLogVal(this.w.globals.minY,0):i.globals.minY,this.polygons=i.config.plotOptions.radar.polygons,this.strokeWidth=i.config.stroke.show?i.config.stroke.width:0,this.size=this.defaultSize/2.1-this.strokeWidth-i.config.chart.dropShadow.blur,i.config.xaxis.labels.show&&(this.size=this.size-i.globals.xAxisLabelsWidth/1.75),void 0!==i.config.plotOptions.radar.size&&(this.size=i.config.plotOptions.radar.size),this.dataRadiusOfPercent=[],this.dataRadius=[],this.angleArr=[],this.yaxisLabelsTextsPos=[]}return r(t,[{key:\"draw\",value:function(t){var i=this,a=this.w,s=new R(this.ctx),r=[],o=new O(this.ctx);t.length&&(this.dataPointsLen=t[a.globals.maxValsInArrayIndex].length),this.disAngle=2*Math.PI/this.dataPointsLen;var n=a.globals.gridWidth/2,l=a.globals.gridHeight/2,h=n+a.config.plotOptions.radar.offsetX,c=l+a.config.plotOptions.radar.offsetY,d=this.graphics.group({class:\"apexcharts-radar-series apexcharts-plot-series\",transform:\"translate(\".concat(h||0,\", \").concat(c||0,\")\")}),g=[],u=null,p=null;if(this.yaxisLabels=this.graphics.group({class:\"apexcharts-yaxis\"}),t.forEach((function(t,n){var l=t.length===a.globals.dataPoints,h=i.graphics.group().attr({class:\"apexcharts-series\",\"data:longestSeries\":l,seriesName:x.escapeString(a.globals.seriesNames[n]),rel:n+1,\"data:realIndex\":n});i.dataRadiusOfPercent[n]=[],i.dataRadius[n]=[],i.angleArr[n]=[],t.forEach((function(t,e){var a=Math.abs(i.maxValue-i.minValue);t+=Math.abs(i.minValue),i.isLog&&(t=i.coreUtils.getLogVal(t,0)),i.dataRadiusOfPercent[n][e]=t/a,i.dataRadius[n][e]=i.dataRadiusOfPercent[n][e]*i.size,i.angleArr[n][e]=e*i.disAngle})),g=i.getDataPointsPos(i.dataRadius[n],i.angleArr[n]);var c=i.createPaths(g,{x:0,y:0});u=i.graphics.group({class:\"apexcharts-series-markers-wrap apexcharts-element-hidden\"}),p=i.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":n}),a.globals.delayedElements.push({el:u.node,index:n});var d={i:n,realIndex:n,animationDelay:n,initialSpeed:a.config.chart.animations.speed,dataChangeSpeed:a.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-radar\",shouldClipToGrid:!1,bindEventsOnPaths:!1,stroke:a.globals.stroke.colors[n],strokeLineCap:a.config.stroke.lineCap},f=null;a.globals.previousPaths.length>0&&(f=i.getPreviousPath(n));for(var b=0;b<c.linePathsTo.length;b++){var m=i.graphics.renderPaths(e(e({},d),{},{pathFrom:null===f?c.linePathsFrom[b]:f,pathTo:c.linePathsTo[b],strokeWidth:Array.isArray(i.strokeWidth)?i.strokeWidth[n]:i.strokeWidth,fill:\"none\",drawShadow:!1}));h.add(m);var y=s.fillPath({seriesNumber:n}),w=i.graphics.renderPaths(e(e({},d),{},{pathFrom:null===f?c.areaPathsFrom[b]:f,pathTo:c.areaPathsTo[b],strokeWidth:0,fill:y,drawShadow:!1}));if(a.config.chart.dropShadow.enabled){var k=new v(i.ctx),A=a.config.chart.dropShadow;k.dropShadow(w,Object.assign({},A,{noUserSpaceOnUse:!0}),n)}h.add(w)}t.forEach((function(t,s){var r=new H(i.ctx).getMarkerConfig({cssClass:\"apexcharts-marker\",seriesIndex:n,dataPointIndex:s}),l=i.graphics.drawMarker(g[s].x,g[s].y,r);l.attr(\"rel\",s),l.attr(\"j\",s),l.attr(\"index\",n),l.node.setAttribute(\"default-marker-size\",r.pSize);var c=i.graphics.group({class:\"apexcharts-series-markers\"});c&&c.add(l),u.add(c),h.add(u);var d=a.config.dataLabels;if(d.enabled){var f=d.formatter(a.globals.series[n][s],{seriesIndex:n,dataPointIndex:s,w:a});o.plotDataLabelsText({x:g[s].x,y:g[s].y,text:f,textAnchor:\"middle\",i:n,j:n,parent:p,offsetCorrection:!1,dataLabelsConfig:e({},d)})}h.add(p)})),r.push(h)})),this.drawPolygons({parent:d}),a.config.xaxis.labels.show){var f=this.drawXAxisTexts();d.add(f)}return r.forEach((function(t){d.add(t)})),d.add(this.yaxisLabels),d}},{key:\"drawPolygons\",value:function(t){for(var e=this,i=this.w,a=t.parent,s=new Ct(this.ctx),r=i.globals.yAxisScale[0].result.reverse(),o=r.length,n=[],l=this.size/(o-1),h=0;h<o;h++)n[h]=l*h;n.reverse();var c=[],d=[];n.forEach((function(t,i){var a=x.getPolygonPos(t,e.dataPointsLen),s=\"\";a.forEach((function(t,a){if(0===i){var r=e.graphics.drawLine(t.x,t.y,0,0,Array.isArray(e.polygons.connectorColors)?e.polygons.connectorColors[a]:e.polygons.connectorColors);d.push(r)}0===a&&e.yaxisLabelsTextsPos.push({x:t.x,y:t.y}),s+=t.x+\",\"+t.y+\" \"})),c.push(s)})),c.forEach((function(t,s){var r=e.polygons.strokeColors,o=e.polygons.strokeWidth,n=e.graphics.drawPolygon(t,Array.isArray(r)?r[s]:r,Array.isArray(o)?o[s]:o,i.globals.radarPolygons.fill.colors[s]);a.add(n)})),d.forEach((function(t){a.add(t)})),i.config.yaxis[0].show&&this.yaxisLabelsTextsPos.forEach((function(t,i){var a=s.drawYAxisTexts(t.x,t.y,i,r[i]);e.yaxisLabels.add(a)}))}},{key:\"drawXAxisTexts\",value:function(){var t=this,i=this.w,a=i.config.xaxis.labels,s=this.graphics.group({class:\"apexcharts-xaxis\"}),r=x.getPolygonPos(this.size,this.dataPointsLen);return i.globals.labels.forEach((function(o,n){var l=i.config.xaxis.labels.formatter,h=new O(t.ctx);if(r[n]){var c=t.getTextPos(r[n],t.size),d=l(o,{seriesIndex:-1,dataPointIndex:n,w:i});h.plotDataLabelsText({x:c.newX,y:c.newY,text:d,textAnchor:c.textAnchor,i:n,j:n,parent:s,color:Array.isArray(a.style.colors)&&a.style.colors[n]?a.style.colors[n]:\"#a8a8a8\",dataLabelsConfig:e({textAnchor:c.textAnchor,dropShadow:{enabled:!1}},a),offsetCorrection:!1})}})),s}},{key:\"createPaths\",value:function(t,e){var i=this,a=[],s=[],r=[],o=[];if(t.length){s=[this.graphics.move(e.x,e.y)],o=[this.graphics.move(e.x,e.y)];var n=this.graphics.move(t[0].x,t[0].y),l=this.graphics.move(t[0].x,t[0].y);t.forEach((function(e,a){n+=i.graphics.line(e.x,e.y),l+=i.graphics.line(e.x,e.y),a===t.length-1&&(n+=\"Z\",l+=\"Z\")})),a.push(n),r.push(l)}return{linePathsFrom:s,linePathsTo:a,areaPathsFrom:o,areaPathsTo:r}}},{key:\"getTextPos\",value:function(t,e){var i=\"middle\",a=t.x,s=t.y;return Math.abs(t.x)>=10?t.x>0?(i=\"start\",a+=10):t.x<0&&(i=\"end\",a-=10):i=\"middle\",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:\"getPreviousPath\",value:function(t){for(var e=this.w,i=null,a=0;a<e.globals.previousPaths.length;a++){var s=e.globals.previousPaths[a];s.paths.length>0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:\"getDataPointsPos\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s<i;s++){var r={};r.x=t[s]*Math.sin(e[s]),r.y=-t[s]*Math.cos(e[s]),a.push(r)}return a}}]),t}(),It=function(t){n(i,Lt);var e=d(i);function i(t){var s;a(this,i),(s=e.call(this,t)).ctx=t,s.w=t.w,s.animBeginArr=[0],s.animDur=0;var r=s.w;return s.startAngle=r.config.plotOptions.radialBar.startAngle,s.endAngle=r.config.plotOptions.radialBar.endAngle,s.totalAngle=Math.abs(r.config.plotOptions.radialBar.endAngle-r.config.plotOptions.radialBar.startAngle),s.trackStartAngle=r.config.plotOptions.radialBar.track.startAngle,s.trackEndAngle=r.config.plotOptions.radialBar.track.endAngle,s.donutDataLabels=s.w.config.plotOptions.radialBar.dataLabels,s.radialDataLabels=s.donutDataLabels,s.trackStartAngle||(s.trackStartAngle=s.startAngle),s.trackEndAngle||(s.trackEndAngle=s.endAngle),360===s.endAngle&&(s.endAngle=359.99),s.margin=parseInt(r.config.plotOptions.radialBar.track.margin,10),s}return r(i,[{key:\"draw\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-radialbar\"});if(e.globals.noData)return a;var s=i.group(),r=this.defaultSize/2,o=e.globals.gridWidth/2,n=this.defaultSize/2.05;e.config.chart.sparkline.enabled||(n=n-e.config.stroke.width-e.config.chart.dropShadow.blur);var l=e.globals.fill.colors;if(e.config.plotOptions.radialBar.track.show){var h=this.drawTracks({size:n,centerX:o,centerY:r,colorArr:l,series:t});s.add(h)}var c=this.drawArcs({size:n,centerX:o,centerY:r,colorArr:l,series:t}),d=360;e.config.plotOptions.radialBar.startAngle<0&&(d=this.totalAngle);var g=(360-d)/360;if(e.globals.radialSize=n-n*g,this.radialDataLabels.value.show){var u=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);e.globals.radialSize+=u*g}return s.add(c.g),\"front\"===e.config.plotOptions.radialBar.hollow.position&&(c.g.add(c.elHollow),c.dataLabels&&c.g.add(c.dataLabels)),a.add(s),a}},{key:\"drawTracks\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-tracks\"}),s=new v(this.ctx),r=new R(this.ctx),o=this.getStrokeWidth(t);t.size=t.size-o/2;for(var n=0;n<t.series.length;n++){var l=i.group({class:\"apexcharts-radialbar-track apexcharts-track\"});a.add(l),l.attr({rel:n+1}),t.size=t.size-o-this.margin;var h=e.config.plotOptions.radialBar.track,c=r.fillPath({seriesNumber:0,size:t.size,fillColors:Array.isArray(h.background)?h.background[n]:h.background,solid:!0}),d=this.trackStartAngle,g=this.trackEndAngle;Math.abs(g)+Math.abs(d)>=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:\"\",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:\"none\",strokeOpacity:h.opacity,classes:\"apexcharts-radialbar-area\"});if(h.dropShadow.enabled){var p=h.dropShadow;s.dropShadow(u,p)}l.add(u),u.attr(\"id\",\"apexcharts-radialbarTrack-\"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:\"drawArcs\",value:function(t){var e=this.w,i=new m(this.ctx),a=new R(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||\"transparent\"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),\"back\"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var f=p?t.series.length-1:0;p?f>=0:f<t.series.length;p?f--:f++){var b=i.group({class:\"apexcharts-series apexcharts-radial-series\",seriesName:x.escapeString(e.globals.seriesNames[f])});r.add(b),b.attr({rel:f+1,\"data:realIndex\":f}),this.ctx.series.addCollapsedClassToSeries(b,f),t.size=t.size-o-this.margin;var y=a.fillPath({seriesNumber:f,size:t.size,value:t.series[f]}),w=this.startAngle,k=void 0,A=x.negToZero(t.series[f]>100?100:t.series[f])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[f])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[f]:e.config.stroke.dashArray,I=i.drawPath({d:\"\",stroke:y,strokeWidth:o,fill:\"none\",fillOpacity:e.config.fill.opacity,classes:\"apexcharts-radialbar-area apexcharts-radialbar-slice-\"+f,strokeDashArray:P});if(m.setAttrs(I.node,{\"data:angle\":L,\"data:value\":t.series[f]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(I,T,f)}s.setSelectionFilter(I,0,f),this.addListeners(I,this.radialDataLabels),b.add(I),I.attr({index:0,j:f});var M=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(M=e.config.chart.animations.speed),e.globals.dataChanged&&(M=e.config.chart.animations.dynamicAnimation.speed),this.animDur=M/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(I,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:f,totalItems:2,animBeginArr:this.animBeginArr,dur:M,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:\"drawHollow\",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:\"apexcharts-radialbar-hollow\",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:\"drawHollowImage\",value:function(t,e,i,a){var s=this.w,r=new R(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:\"pattern\".concat(s.globals.cuid).concat(o)}),a=\"url(#pattern\".concat(s.globals.cuid).concat(o,\")\");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:\"getStrokeWidth\",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(),Tt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:\"apexcharts-rangebar-series apexcharts-plot-series\"}),n=0;n<t.length;n++){var l,h,c,d,g=void 0,u=void 0,p=a.globals.comboCharts?i[n]:n,f=s.group({class:\"apexcharts-series\",seriesName:x.escapeString(a.globals.seriesNames[p]),rel:n+1,\"data:realIndex\":p});this.ctx.series.addCollapsedClassToSeries(f,p),t[n].length>0&&(this.visibleI=this.visibleI+1);var b=0,v=0;this.yRatio.length>1&&(this.yaxisIndex=p);var y=this.barHelpers.initialPositions();u=y.y,d=y.zeroW,g=y.x,v=y.barWidth,b=y.barHeight,l=y.xDivision,h=y.yDivision,c=y.zeroH;for(var w=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":p}),k=s.group({class:\"apexcharts-rangebar-goals-markers\"}),A=0;A<a.globals.dataPoints;A++){var S,C=this.barHelpers.getStrokeWidth(n,A,p),L=this.seriesRangeStart[n][A],P=this.seriesRangeEnd[n][A],I=null,T=null,M=null,X={x:g,y:u,strokeWidth:C,elSeries:f},z=this.seriesLen;if(a.config.plotOptions.bar.rangeBarGroupRows&&(z=1),void 0===a.config.series[n].data[A])break;if(this.isHorizontal){M=u+b*this.visibleI;var E=(h-b*z)/2;if(a.config.series[n].data[A].x){var Y=this.detectOverlappingBars({i:n,j:A,barYPosition:M,srty:E,barHeight:b,yDivision:h,initPositions:y});b=Y.barHeight,M=Y.barYPosition}v=(I=this.drawRangeBarPaths(e({indexes:{i:n,j:A,realIndex:p},barHeight:b,barYPosition:M,zeroW:d,yDivision:h,y1:L,y2:P},X))).barWidth}else{a.globals.isXNumeric&&(g=(a.globals.seriesX[n][A]-a.globals.minX)/this.xRatio-v/2),T=g+v*this.visibleI;var F=(l-v*z)/2;if(a.config.series[n].data[A].x){var R=this.detectOverlappingBars({i:n,j:A,barXPosition:T,srtx:F,barWidth:v,xDivision:l,initPositions:y});v=R.barWidth,T=R.barXPosition}b=(I=this.drawRangeColumnPaths(e({indexes:{i:n,j:A,realIndex:p},barWidth:v,barXPosition:T,zeroH:c,xDivision:l},X))).barHeight}var H=this.barHelpers.drawGoalLine({barXPosition:I.barXPosition,barYPosition:M,goalX:I.goalX,goalY:I.goalY,barHeight:b,barWidth:v});H&&k.add(H),u=I.y,g=I.x;var D=this.barHelpers.getPathFillColor(t,n,A,p),O=a.globals.stroke.colors[p];this.renderSeries((o(S={realIndex:p,pathFill:D,lineFill:O,j:A,i:n,x:g,y:u,y1:L,y2:P,pathFrom:I.pathFrom,pathTo:I.pathTo,strokeWidth:C,elSeries:f,series:t,barHeight:b,barWidth:v,barXPosition:T,barYPosition:M},\"barWidth\",v),o(S,\"elDataLabelsWrap\",w),o(S,\"elGoalsMarkers\",k),o(S,\"visibleSeries\",this.visibleI),o(S,\"type\",\"rangebar\"),S))}r.add(f)}return r}},{key:\"detectOverlappingBars\",value:function(t){var e=t.i,i=t.j,a=t.barYPosition,s=t.barXPosition,r=t.srty,o=t.srtx,n=t.barHeight,l=t.barWidth,h=t.yDivision,c=t.xDivision,d=t.initPositions,g=this.w,u=[],p=g.config.series[e].data[i].rangeName,f=g.config.series[e].data[i].x,x=Array.isArray(f)?f.join(\" \"):f,b=g.globals.labels.map((function(t){return Array.isArray(t)?t.join(\" \"):t})).indexOf(x),v=g.globals.seriesRange[e].findIndex((function(t){return t.x===x&&t.overlaps.length>0}));return this.isHorizontal?(a=g.config.plotOptions.bar.rangeBarGroupRows?r+h*b:r+n*this.visibleI+h*b,v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(a=(n=d.barHeight/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+n*(this.visibleI+u.indexOf(p))+h*b)):(b>-1&&(s=g.config.plotOptions.bar.rangeBarGroupRows?o+c*b:o+l*this.visibleI+c*b),v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(s=(l=d.barWidth/u.length)*this.visibleI+c*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(p))+c*b)),{barYPosition:a,barXPosition:s,barHeight:n,barWidth:l}}},{key:\"drawRangeColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.xDivision,s=t.barWidth,r=t.barXPosition,o=t.zeroH,n=this.w,l=e.i,h=e.j,c=this.yRatio[this.yaxisIndex],d=e.realIndex,g=this.getRangeValue(d,h),u=Math.min(g.start,g.end),p=Math.max(g.start,g.end);void 0===this.series[l][h]||null===this.series[l][h]?u=o:(u=o-u/c,p=o-p/c);var f=Math.abs(p-u),x=this.barHelpers.getColumnPaths({barXPosition:r,barWidth:s,y1:u,y2:p,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:d,j:h,w:n});return n.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:f,x:i,y:p,goalY:this.barHelpers.getGoalValues(\"y\",null,o,l,h),barXPosition:r}}},{key:\"drawRangeBarPaths\",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues(\"x\",l,null,e.realIndex,e.j),y:i}}},{key:\"getRangeValue\",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),s}(),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:\"sameValueSeriesFix\",value:function(t,e){var i=this.w;if((\"gradient\"===i.config.fill.type||\"gradient\"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:\"calculatePoints\",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:\"checkPreviousPaths\",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r<s.globals.previousPaths.length;r++){var o=s.globals.previousPaths[r];(\"line\"===o.type||\"area\"===o.type)&&o.paths.length>0&&parseInt(o.realIndex,10)===parseInt(a,10)&&(\"line\"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):\"area\"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:\"determineFirstPrevY\",value:function(t){var e,i=t.i,a=t.series,s=t.prevY,r=t.lineYPosition,o=this.w;if(void 0!==(null===(e=a[i])||void 0===e?void 0:e[0]))s=(r=o.config.chart.stacked&&i>0?this.lineCtx.prevSeriesY[i-1][0]:this.lineCtx.zeroY)-a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(o.config.chart.stacked&&i>0&&void 0===a[i][0])for(var n=i-1;n>=0;n--)if(null!==a[n][0]&&void 0!==a[n][0]){s=r=this.lineCtx.prevSeriesY[n][0];break}return{prevY:s,lineYPosition:r}}}]),t}(),Xt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!(\"bubble\"!==this.w.config.chart.type&&\"scatter\"!==this.w.config.chart.type)||s,this.scatter=new D(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Mt(this),this.markers=new H(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:\"draw\",value:function(t,i,a,s){var r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),h=new y(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=h.getLogSeries(t),this.yRatio=h.getLogYRatios(this.yRatio);for(var c=[],d=0;d<t.length;d++){t=this.lineHelpers.sameValueSeriesFix(d,t);var g=r.globals.comboCharts?a[d]:d;this._initSerieVariables(t,d,g);var u=[],p=[],f=r.globals.padHorizontal+this.categoryAxisCorrection;this.ctx.series.addCollapsedClassToSeries(this.elSeries,g),r.globals.isXNumeric&&r.globals.seriesX.length>0&&(f=(r.globals.seriesX[g][0]-r.globals.minX)/this.xRatio),p.push(f);var x,b=f,v=void 0,w=b,k=this.zeroY,A=this.zeroY;k=this.lineHelpers.determineFirstPrevY({i:d,series:t,prevY:k,lineYPosition:0}).prevY,u.push(k),x=k;\"rangeArea\"===n&&(v=A=this.lineHelpers.determineFirstPrevY({i:d,series:s,prevY:A,lineYPosition:0}).prevY);var S={type:n,series:t,realIndex:g,i:d,x:f,y:1,pX:b,pY:x,pathsFrom:this._calculatePathsFrom({type:n,series:t,i:d,realIndex:g,prevX:w,prevY:k,prevY2:A}),linePaths:[],areaPaths:[],seriesIndex:a,lineYPosition:0,xArrj:p,yArrj:u,seriesRangeEnd:s},C=this._iterateOverDataPoints(e(e({},S),{},{iterations:\"rangeArea\"===n?t[d].length-1:void 0,isRangeStart:!0}));if(\"rangeArea\"===n){var L=this._calculatePathsFrom({series:s,i:d,realIndex:g,prevX:w,prevY:A}),P=this._iterateOverDataPoints(e(e({},S),{},{series:s,pY:v,pathsFrom:L,iterations:s[d].length-1,isRangeStart:!1}));C.linePaths[0]=P.linePath+C.linePath,C.pathFromLine=P.pathFromLine+C.pathFromLine}this._handlePaths({type:n,realIndex:g,i:d,paths:C}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),c.push(this.elSeries)}if(r.config.chart.stacked)for(var I=c.length;I>0;I--)l.add(c[I-1]);else for(var T=0;T<c.length;T++)l.add(c[T]);return l}},{key:\"_initSerieVariables\",value:function(t,e,i){var a=this.w,s=new m(this.ctx);this.xDivision=a.globals.gridWidth/(a.globals.dataPoints-(\"on\"===a.config.xaxis.tickPlacement?1:0)),this.strokeWidth=Array.isArray(a.config.stroke.width)?a.config.stroke.width[i]:a.config.stroke.width,this.yRatio.length>1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||\"end\"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:\"apexcharts-series\",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:\"apexcharts-series-markers-wrap\",\"data:realIndex\":i}),this.elDataLabelsWrap=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({\"data:longestSeries\":r,rel:e+1,\"data:realIndex\":i}),this.appendPathFrom=!0}},{key:\"_calculatePathsFrom\",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.prevX,c=t.prevY,d=t.prevY2,g=this.w,u=new m(this.ctx);if(null===o[n][0]){for(var p=0;p<o[n].length;p++)if(null!==o[n][p]){h=this.xDivision*p,c=this.zeroY-o[n][p]/this.yRatio[this.yaxisIndex],e=u.move(h,c),i=u.move(h,this.areaBottomY);break}}else e=u.move(h,c),\"rangeArea\"===r&&(e=u.move(h,d)+u.line(h,c)),i=u.move(h,this.areaBottomY)+u.line(h,c);if(a=u.move(-1,this.zeroY)+u.line(-1,this.zeroY),s=u.move(-1,this.zeroY)+u.line(-1,this.zeroY),g.globals.previousPaths.length>0){var f=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=f.pathFromLine,s=f.pathFromArea}return{prevX:h,prevY:c,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:\"_handlePaths\",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new R(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0&&\"rangeArea\"!==i){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(i)};if(\"area\"===i)for(var p=l.fillPath({seriesNumber:a}),f=0;f<r.areaPaths.length;f++){var x=n.renderPaths(e(e({},u),{},{pathFrom:r.pathFromArea,pathTo:r.areaPaths[f],stroke:\"none\",strokeWidth:0,strokeLineCap:null,fill:p}));this.elSeries.add(x)}if(o.config.stroke.show&&!this.pointsChart){var b=null;if(\"line\"===i)b=l.fillPath({seriesNumber:a,i:s});else if(\"solid\"===o.config.stroke.fill.type)b=o.globals.stroke.colors[a];else{var v=o.config.fill;o.config.fill=o.config.stroke.fill,b=l.fillPath({seriesNumber:a,i:s}),o.config.fill=v}for(var y=0;y<r.linePaths.length;y++){var w=b;\"rangeArea\"===i&&(w=l.fillPath({seriesNumber:a}));var k=e(e({},u),{},{pathFrom:r.pathFromLine,pathTo:r.linePaths[y],stroke:b,strokeWidth:this.strokeWidth,strokeLineCap:o.config.stroke.lineCap,fill:\"rangeArea\"===i?w:\"none\"}),A=n.renderPaths(k);if(this.elSeries.add(A),A.attr(\"fill-rule\",\"evenodd\"),h.count>0&&\"rangeArea\"!==i){var S=n.renderPaths(k);S.node.setAttribute(\"stroke-dasharray\",h.dashArray),h.strokeWidth&&S.node.setAttribute(\"stroke-width\",h.strokeWidth),this.elSeries.add(S),S.attr(\"clip-path\",\"url(#forecastMask\".concat(o.globals.cuid,\")\")),A.attr(\"clip-path\",\"url(#nonForecastMask\".concat(o.globals.cuid,\")\"))}}}}},{key:\"_iterateOverDataPoints\",value:function(t){var e=t.type,i=t.series,a=t.iterations,s=t.realIndex,r=t.i,o=t.x,n=t.y,l=t.pX,h=t.pY,c=t.pathsFrom,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,p=t.lineYPosition,f=t.xArrj,b=t.yArrj,v=t.isRangeStart,y=t.seriesRangeEnd,w=this.w,k=new m(this.ctx),A=this.yRatio,S=c.prevY,C=c.linePath,L=c.areaPath,P=c.pathFromLine,I=c.pathFromArea,T=x.isNumber(w.globals.minYArr[s])?w.globals.minYArr[s]:w.globals.minY;a||(a=w.globals.dataPoints>1?w.globals.dataPoints-1:w.globals.dataPoints);for(var M=n,X=0;X<a;X++){var z=void 0===i[r][X+1]||null===i[r][X+1];if(w.globals.isXNumeric){var E=w.globals.seriesX[s][X+1];void 0===w.globals.seriesX[s][X+1]&&(E=w.globals.seriesX[s][a-1]),o=(E-w.globals.minX)/this.xRatio}else o+=this.xDivision;if(w.config.chart.stacked)if(r>0&&w.globals.collapsedSeries.length<w.config.series.length-1){p=this.prevSeriesY[function(t){for(var e=t,i=0;i<w.globals.series.length;i++)if(w.globals.collapsedSeriesIndices.indexOf(t)>-1){e--;break}return e>=0?e:0}(r-1)][X+1]}else p=this.zeroY;else p=this.zeroY;z?n=p-T/A[this.yaxisIndex]+2*(this.isReversed?T/A[this.yaxisIndex]:0):(n=p-i[r][X+1]/A[this.yaxisIndex]+2*(this.isReversed?i[r][X+1]/A[this.yaxisIndex]:0),\"rangeArea\"===e&&(M=p-y[r][X+1]/A[this.yaxisIndex]+2*(this.isReversed?y[r][X+1]/A[this.yaxisIndex]:0))),f.push(o),b.push(n);var Y=this.lineHelpers.calculatePoints({series:i,x:o,y:n,realIndex:s,i:r,j:X,prevY:S}),F=this._createPaths({type:e,series:i,i:r,realIndex:s,j:X,x:o,y:n,y2:M,pX:l,pY:h,linePath:C,areaPath:L,linePaths:d,areaPaths:g,seriesIndex:u,isRangeStart:v});g=F.areaPaths,d=F.linePaths,l=F.pX,h=F.pY,L=F.areaPath,C=F.linePath,this.appendPathFrom&&(P+=k.line(o,this.zeroY),I+=k.line(o,this.zeroY)),this.handleNullDataPoints(i,Y,r,X,s),this._handleMarkersAndLabels({type:e,pointsPos:Y,i:r,j:X,realIndex:s,isRangeStart:v})}return{yArrj:b,xArrj:f,pathFromArea:I,areaPaths:g,pathFromLine:P,linePaths:d,linePath:C,areaPath:L}}},{key:\"_handleMarkersAndLabels\",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new O(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add(\"apexcharts-element-hidden\");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:\"_createPaths\",value:function(t){var e=t.type,i=t.series,a=t.i,s=t.realIndex,r=t.j,o=t.x,n=t.y,l=t.y2,h=t.pX,c=t.pY,d=t.linePath,g=t.areaPath,u=t.linePaths,p=t.areaPaths,f=t.seriesIndex,x=t.isRangeStart,b=this.w,v=new m(this.ctx),y=b.config.stroke.curve,w=this.areaBottomY;if(Array.isArray(b.config.stroke.curve)&&(y=Array.isArray(f)?b.config.stroke.curve[f[a]]:b.config.stroke.curve[a]),\"smooth\"===y){var k=.35*(o-h);b.globals.hasNullValues?(null!==i[a][r]&&(null!==i[a][r+1]?(d=v.move(h,c)+v.curve(h+k,c,o-k,n,o+1,n),g=v.move(h+1,c)+v.curve(h+k,c,o-k,n,o+1,n)+v.line(o,w)+v.line(h,w)+\"z\"):(d=v.move(h,c),g=v.move(h,c)+\"z\")),u.push(d),p.push(g)):(d+=v.curve(h+k,c,o-k,n,o,n),g+=v.curve(h+k,c,o-k,n,o,n)),h=o,c=n,r===i[a].length-2&&(g=g+v.curve(h,c,o,n,o,w)+v.move(o,n)+\"z\",\"rangeArea\"===e&&x?d=d+v.curve(h,c,o,n,o,l)+v.move(o,l)+\"z\":b.globals.hasNullValues||(u.push(d),p.push(g)))}else{if(null===i[a][r+1]){d+=v.move(o,n);var A=b.globals.isXNumeric?(b.globals.seriesX[s][r]-b.globals.minX)/this.xRatio:o-this.xDivision;g=g+v.line(A,w)+v.move(o,n)+\"z\"}null===i[a][r]&&(d+=v.move(o,n),g+=v.move(o,w)),\"stepline\"===y?(d=d+v.line(o,null,\"H\")+v.line(null,n,\"V\"),g=g+v.line(o,null,\"H\")+v.line(null,n,\"V\")):\"straight\"===y&&(d+=v.line(o,n),g+=v.line(o,n)),r===i[a].length-2&&(g=g+v.line(o,w)+v.move(o,n)+\"z\",\"rangeArea\"===e&&x?d=d+v.line(o,l)+v.move(o,l)+\"z\":(u.push(d),p.push(g)))}return{linePaths:u,areaPaths:p,pX:h,pY:c,linePath:d,areaPath:g}}},{key:\"handleNullDataPoints\",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e<t.length;e++)i.push([a,s,a+o,s+t[e]/o]),s+=t[e]/o;else for(e=0;e<t.length;e++)i.push([a,s,a+t[e]/n,s+n]),a+=t[e]/n;return i},this.cutArea=function(e){var i;if(this.width>=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i<t.length;i++)a[i]=t[i]*s;return a}(e,a*s),[],new t(o,n,a,s),[]);return function(t){var e,i,a=[];for(e=0;e<t.length;e++)for(i=0;i<t[e].length;i++)a.push(t[e][i]);return a}(l)}function i(t,e,s,o){var n,l,h;if(0!==t.length)return n=s.shortestEdge(),function(t,e,i){var s;if(0===t.length)return!0;(s=t.slice()).push(e);var r=a(t,i),o=a(s,i);return r>=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;e<t.length;e++)i+=t[e];return i}function o(t){var e,i=0;if(s(t[0]))for(e=0;e<t.length;e++)i+=o(t[e]);else i=r(t);return i}return function t(i,a,r,n,l){n=void 0===n?0:n,l=void 0===l?0:l;var h,c,d=[],g=[];if(s(i[0])){for(c=0;c<i.length;c++)d[c]=o(i[c]);for(h=e(d,a,r,n,l),c=0;c<i.length;c++)g.push(t(i[c],h[c][2]-h[c][0],h[c][3]-h[c][1],h[c][0],h[c][1]))}else g=e(i,a,r,n,l);return g}}();var zt,Et,Yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.strokeWidth=this.w.config.stroke.width,this.helpers=new At(e),this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.labels=[]}return r(t,[{key:\"draw\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=new R(this.ctx),r=a.group({class:\"apexcharts-treemap\"});if(i.globals.noData)return r;var o=[];return t.forEach((function(t){var e=t.map((function(t){return Math.abs(t)}));o.push(e)})),this.negRange=this.helpers.checkColorRange(),i.config.series.forEach((function(t,i){t.data.forEach((function(t){Array.isArray(e.labels[i])||(e.labels[i]=[]),e.labels[i].push(t.x)}))})),window.TreemapSquared.generate(o,i.globals.gridWidth,i.globals.gridHeight).forEach((function(o,n){var l=a.group({class:\"apexcharts-series apexcharts-treemap-series\",seriesName:x.escapeString(i.globals.seriesNames[n]),rel:n+1,\"data:realIndex\":n});if(i.config.chart.dropShadow.enabled){var h=i.config.chart.dropShadow;new v(e.ctx).dropShadow(r,h,n)}var c=a.group({class:\"apexcharts-data-labels\"});o.forEach((function(r,o){var h=r[0],c=r[1],d=r[2],g=r[3],u=a.drawRect(h,c,d-h,g-c,0,\"#fff\",1,e.strokeWidth,i.config.plotOptions.treemap.useFillColorAsStroke?f:i.globals.stroke.colors[n]);u.attr({cx:h,cy:c,index:n,i:n,j:o,width:d-h,height:g-c});var p=e.helpers.getShadeColor(i.config.chart.type,n,o,e.negRange),f=p.color;void 0!==i.config.series[n].data[o]&&i.config.series[n].data[o].fillColor&&(f=i.config.series[n].data[o].fillColor);var x=s.fillPath({color:f,seriesNumber:n,dataPointIndex:o});u.node.classList.add(\"apexcharts-treemap-rect\"),u.attr({fill:x}),e.helpers.addListeners(u);var b={x:h+(d-h)/2,y:c+(g-c)/2,width:0,height:0},v={x:h,y:c,width:d-h,height:g-c};if(i.config.chart.animations.enabled&&!i.globals.dataChanged){var m=1;i.globals.resized||(m=i.config.chart.animations.speed),e.animateTreemap(u,b,v,m)}if(i.globals.dataChanged){var y=1;e.dynamicAnim.enabled&&i.globals.shouldAnimate&&(y=e.dynamicAnim.speed,i.globals.previousPaths[n]&&i.globals.previousPaths[n][o]&&i.globals.previousPaths[n][o].rect&&(b=i.globals.previousPaths[n][o].rect),e.animateTreemap(u,b,v,y))}var w=e.getFontSize(r),k=i.config.dataLabels.formatter(e.labels[n][o],{value:i.globals.series[n][o],seriesIndex:n,dataPointIndex:o,w:i});\"truncate\"===i.config.plotOptions.treemap.dataLabels.format&&(w=parseInt(i.config.dataLabels.style.fontSize,10),k=e.truncateLabels(k,w,h,c,d,g));var A=e.helpers.calculateDataLabels({text:k,x:(h+d)/2,y:(c+g)/2+e.strokeWidth/2+w/3,i:n,j:o,colorProps:p,fontSize:w,series:t});i.config.dataLabels.enabled&&A&&e.rotateToFitLabel(A,w,k,h,c,d,g),l.add(u),null!==A&&l.add(A)})),l.add(c),r.add(l)})),r}},{key:\"getFontSize\",value:function(t){var e=this.w;var i,a,s,r,o=function t(e){var i,a=0;if(Array.isArray(e[0]))for(i=0;i<e.length;i++)a+=t(e[i]);else for(i=0;i<e.length;i++)a+=e[i].length;return a}(this.labels)/function t(e){var i,a=0;if(Array.isArray(e[0]))for(i=0;i<e.length;i++)a+=t(e[i]);else for(i=0;i<e.length;i++)a+=1;return a}(this.labels);return i=t[2]-t[0],a=t[3]-t[1],s=i*a,r=Math.pow(s,.5),Math.min(r/o,parseInt(e.config.dataLabels.style.fontSize,10))}},{key:\"rotateToFitLabel\",value:function(t,e,i,a,s,r,o){var n=new m(this.ctx),l=n.getTextRects(i,e);if(l.width+this.w.config.stroke.width+5>r-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute(\"transform\",\"rotate(-90 \".concat(h.x,\" \").concat(h.y,\") translate(\").concat(l.height/3,\")\"))}}},{key:\"truncateLabels\",value:function(t,e,i,a,s,r){var o=new m(this.ctx),n=o.getTextRects(t,e).width+this.w.config.stroke.width+5>s-i&&r-a>s-i?r-a:s-i,l=o.getTextBasedOnMaxWidth({text:t,maxWidth:n,fontSize:e});return t.length!==l.length&&n/e<5?\"\":l}},{key:\"animateTreemap\",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Ft=86400,Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:\"calculateTimeScaleTicks\",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new I(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),p=Math.floor(o*Ft),f=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:p,numberOfMinutes:u,numberOfHours:g,numberOfDays:f,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case\"years\":this.generateYearScale(m);break;case\"months\":case\"half_year\":this.generateMonthScale(m);break;case\"months_days\":case\"months_fortnight\":case\"days\":case\"week_days\":this.generateDayScale(m);break;case\"hours\":this.generateHourScale(m);break;case\"minutes_fives\":case\"minutes\":this.generateMinuteScale(m);break;case\"seconds_tens\":case\"seconds_fives\":case\"seconds\":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return\"month\"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):\"day\"===t.unit||\"hour\"===t.unit?e(e({},i),{},{value:t.value}):\"minute\"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):\"second\"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case\"years\":\"year\"===t.unit&&(o=!0);break;case\"half_year\":e=7,\"year\"===t.unit&&(o=!0);break;case\"months\":e=1,\"year\"===t.unit&&(o=!0);break;case\"months_fortnight\":e=15,\"year\"!==t.unit&&\"month\"!==t.unit||(o=!0),30===r&&(n=!0);break;case\"months_days\":e=10,\"month\"===t.unit&&(o=!0),30===r&&(n=!0);break;case\"week_days\":e=8,\"month\"===t.unit&&(o=!0);break;case\"days\":e=1,\"month\"===t.unit&&(o=!0);break;case\"hours\":\"day\"===t.unit&&(o=!0);break;case\"minutes_fives\":case\"seconds_fives\":r%5!=0&&(n=!0);break;case\"seconds_tens\":r%10!=0&&(n=!0)}if(\"hours\"===a.tickInterval||\"minutes_fives\"===a.tickInterval||\"seconds_tens\"===a.tickInterval||\"seconds_fives\"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:\"recalcDimensionsBasedOnFormat\",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ot(this.ctx).plotCoords()}},{key:\"determineInterval\",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval=\"years\";break;case t>800:this.tickInterval=\"half_year\";break;case t>180:this.tickInterval=\"months\";break;case t>90:this.tickInterval=\"months_fortnight\";break;case t>60:this.tickInterval=\"months_days\";break;case t>30:this.tickInterval=\"week_days\";break;case t>2:this.tickInterval=\"days\";break;case e>2.4:this.tickInterval=\"hours\";break;case i>15:this.tickInterval=\"minutes_fives\";break;case i>5:this.tickInterval=\"minutes\";break;case i>1:this.tickInterval=\"seconds_tens\";break;case 60*i>20:this.tickInterval=\"seconds_fives\";break;default:this.tickInterval=\"seconds\"}}},{key:\"generateYearScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new I(this.ctx),h=\"year\";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u<r;u++)d++,g=l.determineDaysOfYear(d-1)*s+g,this.timeScaleArray.push({position:g,value:d,unit:h,year:d,month:1})}},{key:\"generateMonthScale\",value:function(t){var e=t.firstVal,i=t.currentMonthDate,a=t.currentMonth,s=t.currentYear,r=t.daysWidthOnXAxis,o=t.numberOfMonths,n=a,l=0,h=new I(this.ctx),c=\"month\",d=0;if(e.minDate>1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),p=n;0===n&&(c=\"year\",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var f=n+1,b=l,v=0,m=1;v<o;v++,m++){0===(f=x.monthMod(f))?(c=\"year\",d+=1):c=\"month\";var y=this._getYear(s,f,d);b=h.determineDaysOfMonths(f,y)*r+b;var w=0===f?y:f;this.timeScaleArray.push({position:b,value:w,unit:c,year:y,month:0===f?1:f}),f++}}},{key:\"generateDayScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.hoursWidthOnXAxis,r=t.numberOfDays,o=new I(this.ctx),n=\"day\",l=e.minDate+1,h=l,c=function(t,e,i){return t>o.determineDaysOfMonths(e+1,i)?(h=1,n=\"month\",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n=\"month\",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var p=d,f=0;f<r;f++){n=\"day\",u=c(h+=1,u,this._getYear(a,u,0));var b=this._getYear(a,u,0);p=24*s+p;var v=1===h?x.monthMod(u):h;this.timeScaleArray.push({position:p,value:v,unit:n,year:b,month:x.monthMod(u),day:v})}}},{key:\"generateHourScale\",value:function(t){var e=t.firstVal,i=t.currentDate,a=t.currentMonth,s=t.currentYear,r=t.minutesWidthOnXAxis,o=t.numberOfHours,n=new I(this.ctx),l=\"hour\",h=function(t,e){return t>n.determineDaysOfMonths(e+1,s)&&(f=1,e+=1),{month:e,date:f}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var f=i,b=c(f,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:f,hour:p,year:s,month:x.monthMod(b)});for(var v=g,m=0;m<o;m++){if(l=\"hour\",p>=24)p=0,l=\"day\",b=h(f+=1,b).month,b=c(f,b);var y=this._getYear(s,b,0);v=60*r+v;var w=0===p?f:p;this.timeScaleArray.push({position:v,value:w,unit:l,hour:p,day:f,year:y,month:x.monthMod(b)}),p++}}},{key:\"generateMinuteScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,p=n,f=s,b=(60-i-e/1e3)*h,v=0;v<c;v++)d>=60&&(d=0,24===(f+=1)&&(f=0)),this.timeScaleArray.push({position:b,value:d,unit:\"minute\",hour:f,minute:d,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:\"generateSecondScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,p=n,f=s,b=(1e3-e)/1e3*l,v=0;v<h;v++)c>=60&&(c=0,++d>=60&&(d=0,24===++f&&(f=0))),this.timeScaleArray.push({position:b,value:c,unit:\"second\",hour:f,minute:d,second:c,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:\"createRawDateString\",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+=\"-\"+(\"0\"+t.month.toString()).slice(-2),\"day\"===t.unit?i+=\"day\"===t.unit?\"-\"+(\"0\"+e).slice(-2):\"-01\":i+=\"-\"+(\"0\"+(t.day?t.day:\"1\")).slice(-2),\"hour\"===t.unit?i+=\"hour\"===t.unit?\"T\"+(\"0\"+e).slice(-2):\"T00\":i+=\"T\"+(\"0\"+(t.hour?t.hour:\"0\")).slice(-2),\"minute\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":\"+(t.minute?(\"0\"+t.minute).slice(-2):\"00\"),\"second\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":00\",this.utc&&(i+=\".000Z\"),i}},{key:\"formatDates\",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new I(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n=\"dd MMM\",l=i.config.xaxis.labels.datetimeFormatter;\"year\"===t.unit&&(n=l.year),\"month\"===t.unit&&(n=l.month),\"day\"===t.unit&&(n=l.day),\"hour\"===t.unit&&(n=l.hour),\"minute\"===t.unit&&(n=l.minute),\"second\"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:\"removeOverlappingTS\",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:\"_getYear\",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Ht=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:\"setupElements\",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\",\"radar\",\"heatmap\",\"treemap\"].indexOf(i)>-1,t.xyCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\"].indexOf(i)>-1,t.isBarHorizontal=(\"bar\"===e.chart.type||\"rangeBar\"===e.chart.type||\"boxPlot\"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=\".apexcharts\"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement(\"div\"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:\"apexcharts-canvas \"+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:\"apexcharts-svg\",\"xmlns:data\":\"ApexChartsNS\",transform:\"translate(\".concat(e.chart.offsetX,\", \").concat(e.chart.offsetY,\")\")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elLegendForeign=document.createElementNS(t.SVGNS,\"foreignObject\"),m.setAttrs(t.dom.elLegendForeign,{x:0,y:0,width:t.svgWidth,height:t.svgHeight}),t.dom.elLegendWrap=document.createElement(\"div\"),t.dom.elLegendWrap.classList.add(\"apexcharts-legend\"),t.dom.elLegendWrap.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap),t.dom.Paper.node.appendChild(t.dom.elLegendForeign),t.dom.elGraphical=t.dom.Paper.group().attr({class:\"apexcharts-inner apexcharts-graphical\"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:\"plotChartType\",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},u={series:[],seriesRangeEnd:[],i:[]};s.series.map((function(e,p){var f=0;void 0!==t[p].type?(\"column\"===t[p].type||\"bar\"===t[p].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn(\"Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`\"),h.series.push(e),h.i.push(p),f++,i.globals.columnSeries=h.series):\"area\"===t[p].type?(o.series.push(e),o.i.push(p),f++):\"line\"===t[p].type?(r.series.push(e),r.i.push(p),f++):\"scatter\"===t[p].type?(n.series.push(e),n.i.push(p)):\"bubble\"===t[p].type?(l.series.push(e),l.i.push(p),f++):\"candlestick\"===t[p].type?(c.series.push(e),c.i.push(p),f++):\"boxPlot\"===t[p].type?(d.series.push(e),d.i.push(p),f++):\"rangeBar\"===t[p].type?(g.series.push(e),g.i.push(p),f++):\"rangeArea\"===t[p].type?(u.series.push(s.seriesRangeStart[p]),u.seriesRangeEnd.push(s.seriesRangeEnd[p]),u.i.push(p),f++):console.warn(\"You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble/candlestick/boxPlot/rangeBar/rangeArea\"),f>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(p))}));var p=new Xt(this.ctx,e),f=new kt(this.ctx,e);this.ctx.pie=new Lt(this.ctx);var x=new It(this.ctx);this.ctx.rangeBar=new Tt(this.ctx,e);var b=new Pt(this.ctx),v=[];if(s.comboCharts){if(o.series.length>0&&v.push(p.draw(o.series,\"area\",o.i)),h.series.length>0)if(i.config.chart.stacked){var m=new wt(this.ctx,e);v.push(m.draw(h.series,h.i))}else this.ctx.bar=new yt(this.ctx,e),v.push(this.ctx.bar.draw(h.series,h.i));if(u.series.length>0&&v.push(p.draw(u.series,\"rangeArea\",u.i,u.seriesRangeEnd)),r.series.length>0&&v.push(p.draw(r.series,\"line\",r.i)),c.series.length>0&&v.push(f.draw(c.series,\"candlestick\",c.i)),d.series.length>0&&v.push(f.draw(d.series,\"boxPlot\",d.i)),g.series.length>0&&v.push(this.ctx.rangeBar.draw(g.series,g.i)),n.series.length>0){var y=new Xt(this.ctx,e,!0);v.push(y.draw(n.series,\"scatter\",n.i))}if(l.series.length>0){var w=new Xt(this.ctx,e,!0);v.push(w.draw(l.series,\"bubble\",l.i))}}else switch(a.chart.type){case\"line\":v=p.draw(s.series,\"line\");break;case\"area\":v=p.draw(s.series,\"area\");break;case\"bar\":if(a.chart.stacked)v=new wt(this.ctx,e).draw(s.series);else this.ctx.bar=new yt(this.ctx,e),v=this.ctx.bar.draw(s.series);break;case\"candlestick\":v=new kt(this.ctx,e).draw(s.series,\"candlestick\");break;case\"boxPlot\":v=new kt(this.ctx,e).draw(s.series,a.chart.type);break;case\"rangeBar\":v=this.ctx.rangeBar.draw(s.series);break;case\"rangeArea\":v=p.draw(s.seriesRangeStart,\"rangeArea\",void 0,s.seriesRangeEnd);break;case\"heatmap\":v=new St(this.ctx,e).draw(s.series);break;case\"treemap\":v=new Yt(this.ctx,e).draw(s.series);break;case\"pie\":case\"donut\":case\"polarArea\":v=this.ctx.pie.draw(s.series);break;case\"radialBar\":v=x.draw(s.series);break;case\"radar\":v=b.draw(s.series);break;default:v=p.draw(s.series)}return v}},{key:\"setSVGDimensions\",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();\"%\"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):\"px\"!==a&&\"\"!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if(\"auto\"!==t.svgHeight&&\"\"!==t.svgHeight)if(\"%\"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),\"%\"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+\"px\"}t.dom.elWrap.style.width=t.svgWidth+\"px\",t.dom.elWrap.style.height=t.svgHeight+\"px\"}},{key:\"shiftGraphPosition\",value:function(){var t=this.w.globals,e=t.translateY,i={transform:\"translate(\"+t.translateX+\", \"+e+\")\"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:\"resizeNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,\"top\"!==t.config.legend.position&&\"bottom\"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(\".apexcharts-radialbar, .apexcharts-pie\"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute(\"height\",l),t.config.chart.height&&String(t.config.chart.height).indexOf(\"%\")>0||(e.dom.elWrap.style.height=l+\"px\",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+\"px\")}},{key:\"coreCalculations\",value:function(){new U(this.ctx).init()}},{key:\"resetGlobals\",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new Y,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:\"isMultipleY\",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:\"xySettings\",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if(\"back\"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if(\"back\"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if(\"datetime\"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Rt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:\"updateSourceChart\",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:\"setupBrushHandler\",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&\"function\"!=typeof i.config.chart.events.selection){var a=Array.isArray(i.config.chart.brush.targets)||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,\"function\"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),\"function\"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new _(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"_updateOptions\",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&\"object\"===i(t)&&(r.config=new E(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d<c.globals.collapsedSeriesIndices.length;d++){var g=c.config.series[c.globals.collapsedSeriesIndices[d]];c.globals.collapsedSeries[d].data=c.globals.axisCharts?g.data.slice():g}for(var u=0;u<c.globals.ancillaryCollapsedSeriesIndices.length;u++){var p=c.config.series[c.globals.ancillaryCollapsedSeriesIndices[u]];c.globals.ancillaryCollapsedSeries[u].data=c.globals.axisCharts?p.data.slice():p}r.series.emptyCollapsedSeries(c.config.series)}return r.update(t).then((function(){h===l.length-1&&n(r)}))}))}))}},{key:\"_updateSeries\",value:function(t,e){var i=this,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=x.clone(o.config.series),o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:\"_extendSeries\",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,group:t.group?t.group:s&&s.group,data:t.data?t.data:s&&s.data})}},{key:\"toggleDataPointSelection\",value:function(t,e){var i=this.w,a=null,s=\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\");return i.globals.axisCharts?a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(e,\"'], \").concat(s,\" circle[j='\").concat(e,\"'], \").concat(s,\" rect[j='\").concat(e,\"']\")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(t,\"']\")).members[0],\"pie\"!==i.config.chart.type&&\"polarArea\"!==i.config.chart.type&&\"donut\"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn(\"toggleDataPointSelection: Element not found\"),null)}},{key:\"forceXAxisUpdate\",value:function(t){var e=this.w;if([\"min\",\"max\"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new z(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:\"forceYAxisUpdate\",value:function(t){return t.chart&&t.chart.stacked&&\"100%\"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:\"revertDefaultAxisMinMax\",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();zt=\"undefined\"!=typeof window?window:void 0,Et=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns=\"http://www.w3.org/2000/svg\",a.xmlns=\"http://www.w3.org/2000/xmlns/\",a.xlink=\"http://www.w3.org/1999/xlink\",a.svgjs=\"http://svgjs.dev\",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return\"Svgjs\"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute(\"id\",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e=\"function\"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i=\"svg\"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:\"linearGradient\"==e.nodeName?new a.Gradient(\"linear\"):\"radialGradient\"==e.nodeName?new a.Gradient(\"radial\"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute(\"svgjs:data\"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName(\"body\")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style(\"opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden\").node,poly:i.polyline().node,path:i.path().node,native:a.create(\"svg\")}},a.parser={native:a.create(\"svg\")},e.addEventListener(\"DOMContentLoaded\",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,rgb:/rgb\\((\\d+),(\\d+),(\\d+)\\)/,reference:/#([a-z0-9\\-_]+)/i,transforms:/\\)\\s*,?\\s*/,whitespace:/\\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\\s+)?$/,isNumber:/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,isPercent:/^-?[\\d\\.]+%$/,isImage:/\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,delimiter:/[\\s,]+/,hyphen:/([^e])\\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,dots:/\\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s<i;s++)a.push(e(t[s]));return a},filter:function(t,e){for(var i=t.length,a=[],s=0;s<i;s++)e(t[s])&&a.push(t[s]);return a},filterSVGElements:function(e){return this.filter(e,(function(e){return e instanceof t.SVGElement}))}},a.defaults={attrs:{\"fill-opacity\":1,\"stroke-opacity\":1,\"stroke-width\":0,\"stroke-linejoin\":\"miter\",\"stroke-linecap\":\"butt\",fill:\"#000000\",stroke:\"#000000\",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,\"stop-opacity\":1,\"stop-color\":\"#000000\",\"font-size\":16,\"font-family\":\"Helvetica, Arial, sans-serif\",\"text-anchor\":\"start\"}},a.Color=function(t){var e,s;this.r=0,this.g=0,this.b=0,t&&(\"string\"==typeof t?a.regex.isRgb.test(t)?(e=a.regex.rgb.exec(t.replace(a.regex.whitespace,\"\")),this.r=parseInt(e[1]),this.g=parseInt(e[2]),this.b=parseInt(e[3])):a.regex.isHex.test(t)&&(e=a.regex.hex.exec(4==(s=t).length?[\"#\",s.substring(1,2),s.substring(1,2),s.substring(2,3),s.substring(2,3),s.substring(3,4),s.substring(3,4)].join(\"\"):s),this.r=parseInt(e[1],16),this.g=parseInt(e[2],16),this.b=parseInt(e[3],16)):\"object\"===i(t)&&(this.r=t.r,this.g=t.g,this.b=t.b))},a.extend(a.Color,{toString:function(){return this.toHex()},toHex:function(){return\"#\"+g(this.r)+g(this.g)+g(this.b)},toRgb:function(){return\"rgb(\"+[this.r,this.g,this.b].join()+\")\"},brightness:function(){return this.r/255*.3+this.g/255*.59+this.b/255*.11},morph:function(t){return this.destination=new a.Color(t),this},at:function(t){return this.destination?(t=t<0?0:t>1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+=\"\",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&\"number\"==typeof t.r&&\"number\"==typeof t.g&&\"number\"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(\" \")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],[\"M\",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],[\"L\",t[0],t[1]]},H:function(t,e){return e.x=t[0],[\"H\",t[0]]},V:function(t,e){return e.y=t[0],[\"V\",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],[\"C\",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],[\"Q\",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,[\"Z\"]}},r=\"mlhvqtcsaz\".split(\"\"),o=0,n=r.length;o<n;++o)s[r[o]]=function(t){return function(e,i,a){if(\"H\"==t)e[0]=e[0]+i.x;else if(\"V\"==t)e[0]=e[0]+i.y;else if(\"A\"==t)e[5]=e[5]+i.x,e[6]=e[6]+i.y;else for(var r=0,o=e.length;r<o;++r)e[r]=e[r]+(r%2?i.y:i.x);if(s&&\"function\"==typeof s[t])return s[t](e,i,a)}}(r[o].toUpperCase());a.PathArray=function(t,e){a.Array.call(this,t,e||[[\"M\",0,0]])},a.PathArray.prototype=new a.Array,a.PathArray.prototype.constructor=a.PathArray,a.extend(a.PathArray,{toString:function(){return function(t){for(var e=0,i=t.length,a=\"\";e<i;e++)a+=t[e][0],null!=t[e][1]&&(a+=t[e][1],null!=t[e][2]&&(a+=\" \",a+=t[e][2],null!=t[e][3]&&(a+=\" \",a+=t[e][3],a+=\" \",a+=t[e][4],null!=t[e][5]&&(a+=\" \",a+=t[e][5],a+=\" \",a+=t[e][6],null!=t[e][7]&&(a+=\" \",a+=t[e][7])))));return a+\" \"}(this.value)},move:function(t,e){var i=this.bbox();return i.x,i.y,this},at:function(t){if(!this.destination)return this;for(var e=this.value,i=this.destination.value,s=[],r=new a.PathArray,o=0,n=e.length;o<n;o++){s[o]=[e[o][0]];for(var l=1,h=e[o].length;l<h;l++)s[o][l]=e[o][l]+(i[o][l]-e[o][l])*t;\"A\"===s[o][0]&&(s[o][4]=+(0!=s[o][4]),s[o][5]=+(0!=s[o][5]))}return r.value=s,r},parse:function(t){if(t instanceof a.PathArray)return t.valueOf();var e,i={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0};t=\"string\"==typeof t?t.replace(a.regex.numbersWithDots,h).replace(a.regex.pathLetters,\" $& \").replace(a.regex.hyphen,\"$1 -\").trim().split(a.regex.delimiter):t.reduce((function(t,e){return[].concat.call(t,e)}),[]);var r=[],o=new a.Point,n=new a.Point,l=0,c=t.length;do{a.regex.isPathLetter.test(t[l])?(e=t[l],++l):\"M\"==e?e=\"L\":\"m\"==e&&(e=\"l\"),r.push(s[e].call(null,t.slice(l,l+=i[e.toUpperCase()]).map(parseFloat),o,n))}while(c>l);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute(\"d\",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||\"\",\"number\"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:\"string\"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),\"%\"==e[5]?this.value/=100:\"s\"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return(\"%\"==this.unit?~~(1e8*this.value)/1e6:\"s\"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return\"string\"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute(\"stroke\")||this._stroke)},extend:{x:function(t){return this.attr(\"x\",t)},y:function(t){return this.attr(\"y\",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr(\"width\",t)},height:function(t){return this.attr(\"height\",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr(\"id\",t)},show:function(){return this.style(\"display\",\"\")},hide:function(){return this.style(\"display\",\"none\")},visible:function(){return\"none\"!=this.style(\"display\")},toString:function(){return this.attr(\"id\")},classes:function(){var t=this.attr(\"class\");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr(\"class\",e.join(\" \"))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr(\"class\",this.classes().filter((function(e){return e!=t})).join(\" \")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if(\"string\"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||\"#document\"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement(\"svg\");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement(\"svg\")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^<svg>/,\"\").replace(/<\\/svg>$/,\"\");i.innerHTML=\"<svg>\"+t.replace(/\\n/,\"\").replace(/<([\\w:-]+)([^<]+?)\\/>/g,\"<$1$2></$1>\")+\"</svg>\";for(var s=0,r=i.firstChild.childNodes.length;s<r;s++)this.node.appendChild(i.firstChild.firstChild);return this},writeDataToDom:function(){return(this.each||this.lines)&&(this.each?this:this.lines()).each((function(){this.writeDataToDom()})),this.node.removeAttribute(\"svgjs:data\"),Object.keys(this.dom).length&&this.node.setAttribute(\"svgjs:data\",JSON.stringify(this.dom)),this},setData:function(t){return this.dom=t,this},is:function(t){return function(t,e){return t instanceof e}(this,t)}}}),a.easing={\"-\":function(t){return t},\"<>\":function(t){return-Math.cos(t*Math.PI)/2+.5},\">\":function(t){return Math.sin(t*Math.PI/2)},\"<\":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){\"object\"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||\"-\"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return(\"function\"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on(\"finished.fx\",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off(\"finished.fx\",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off(\"during.fx\",i).on(\"during.fx\",i),this.after((function(){this.off(\"during.fx\",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off(\"allfinished.fx\",e)};return this.target().off(\"allfinished.fx\",e).on(\"allfinished.fx\",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||\"animations\"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||i<this.situation.loops?(this.pos=e-i,a=this.situation.loop,this.situation.loop=i):(this.absPos=this.situation.loops,this.pos=1,a=this.situation.loop-1,this.situation.loop=this.situation.loops),this.situation.reversing&&(this.situation.reversed=this.situation.reversed!=Boolean((this.situation.loop-a)%2))):(this.absPos=Math.min(this.absPos,1),this.pos=this.absPos),this.pos<0&&(this.pos=0),this.situation.reversed&&(this.pos=1-this.pos);var s=this.situation.ease(this.pos);for(var r in this.situation.once)r>this.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire(\"during\",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire(\"finished\",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire(\"allfinished\"),this.situations.length||(this.target().off(\".fx\"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r<o;r++){var n=s.transforms[r];n instanceof a.Matrix?t=n.relative?t.multiply((new a.Matrix).morph(n).at(s.ease(this.pos))):t.morph(n).at(s.ease(this.pos)):(n.relative||n.undo(t.extract()),t=t.multiply(n.at(s.ease(this.pos))))}i.matrix(t)}return this},once:function(t,e,i){var a=this.last();return i||(t=a.ease(t)),a.once[t]=e,this},_callStart:function(){return setTimeout(function(){this.start()}.bind(this),0),this}},parent:a.Element,construct:{animate:function(t,e,i){return(this.fx||(this.fx=new a.FX(this))).animate(t,e,i)},delay:function(t){return(this.fx||(this.fx=new a.FX(this))).delay(t)},stop:function(t,e){return this.fx&&this.fx.stop(t,e),this},finish:function(){return this.fx&&this.fx.finish(),this}}}),a.MorphObj=a.invent({create:function(t,e){return a.Color.isColor(e)?new a.Color(t).morph(e):a.regex.delimiter.test(t)?a.regex.pathLetters.test(t)?new a.PathArray(t).morph(e):new a.Array(t).morph(e):a.regex.numberAndUnit.test(e)?new a.Number(t).morph(e):(this.value=t,void(this.destination=e))},extend:{at:function(t,e){return e<1?this.value:this.destination},valueOf:function(){return this.value}}}),a.extend(a.FX,{attr:function(t,e,a){if(\"object\"===i(t))for(var s in t)this.attr(s,t[s]);else this.add(t,e,\"attrs\");return this},plot:function(t,e,i,a){return 4==arguments.length?this.plot([t,e,i,a]):this.add(\"plot\",new(this.target().morphArray)(t))}}),a.Box=a.invent({create:function(t,e,s,r){if(!(\"object\"!==i(t)||t instanceof a.Element))return a.Box.call(this,null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height);var o;4==arguments.length&&(this.x=t,this.y=e,this.width=s,this.height=r),null==(o=this).x&&(o.x=0,o.y=0,o.width=0,o.height=0),o.w=o.width,o.h=o.height,o.x2=o.x+o.width,o.y2=o.y+o.height,o.cx=o.x+o.width/2,o.cy=o.y+o.height/2}}),a.BBox=a.invent({create:function(t){if(a.Box.apply(this,[].slice.call(arguments)),t instanceof a.Element){var i;try{if(!e.documentElement.contains){for(var s=t.node;s.parentNode;)s=s.parentNode;if(s!=e)throw new Error(\"Element not in the dom\")}i=t.node.getBBox()}catch(e){if(t instanceof a.Shape){a.parser.draw||a.prepare();var r=t.clone(a.parser.draw.instance).show();r&&r.node&&\"function\"==typeof r.node.getBBox&&(i=r.node.getBBox()),r&&\"function\"==typeof r.remove&&r.remove()}else i={x:t.node.clientLeft,y:t.node.clientTop,width:t.node.clientWidth,height:t.node.clientHeight}}a.Box.call(this,i)}},inherit:a.Box,parent:a.Element,construct:{bbox:function(){return new a.BBox(this)}}}),a.BBox.prototype.constructor=a.BBox,a.Matrix=a.invent({create:function(t){var e=f([1,0,0,1,0,0]);t=null===t?e:t instanceof a.Element?t.matrixify():\"string\"==typeof t?f(t.split(a.regex.delimiter).map(parseFloat)):6==arguments.length?f([].slice.call(arguments)):Array.isArray(t)?f(t):t&&\"object\"===i(t)?t:e;for(var s=v.length-1;s>=0;--s)this[v[s]]=null!=t[v[s]]?t[v[s]]:e[v[s]]},extend:{extract:function(){var t=p(this,0,1);p(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return\"matrix(\"+b(this.a)+\",\"+b(this.b)+\",\"+b(this.c)+\",\"+b(this.d)+\",\"+b(this.e)+\",\"+b(this.f)+\")\"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:\"object\"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if(\"object\"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;\"stroke-width\"==t?this.attr(\"stroke\",parseFloat(e)>0?this._stroke:null):\"stroke\"==t&&(this._stroke=e),\"fill\"!=t&&\"stroke\"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),\"number\"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),\"leading\"==t?this.leading&&this.leading(e):\"string\"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||\"font-size\"!=t&&\"x\"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return\"object\"!==i(t)?(s=new a.Matrix(this).extract(),\"string\"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr(\"transform\",s))}}),a.extend(a.Element,{untransform:function(){return this.attr(\"transform\",null)},matrixify:function(){return(this.attr(\"transform\")||\"\").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split(\"(\");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return\"matrix\"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&\"boolean\"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a<s;++a)this[this.arguments[a]]=t[a];else if(t&&\"object\"===i(t))for(a=0,s=this.arguments.length;a<s;++a)this[this.arguments[a]]=t[this.arguments[a]];this.inversed=!1,!0===e&&(this.inversed=!0)}}),a.Translate=a.invent({parent:a.Matrix,inherit:a.Transformation,create:function(t,e){this.constructor.apply(this,[].slice.call(arguments))},extend:{arguments:[\"transformedX\",\"transformedY\"],method:\"translate\"}}),a.extend(a.Element,{style:function(t,e){if(0==arguments.length)return this.node.style.cssText||\"\";if(arguments.length<2)if(\"object\"===i(t))for(var s in t)this.style(s,t[s]);else{if(!a.regex.isCss.test(t))return this.node.style[c(t)];for(t=t.split(/\\s*;\\s*/).filter((function(t){return!!t})).map((function(t){return t.split(/\\s*:\\s*/)}));e=t.pop();)this.style(e[0],e[1])}else this.node.style[c(t)]=null===e||a.regex.isBlank.test(e)?\"\":e;return this}}),a.Parent=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element,extend:{children:function(){return a.utils.map(a.utils.filterSVGElements(this.node.childNodes),(function(t){return a.adopt(t)}))},add:function(t,e){return null==e?this.node.appendChild(t.node):t.node!=this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this},put:function(t,e){return this.add(t,e),t},has:function(t){return this.index(t)>=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s<r;s++)i[s]instanceof a.Element&&t.apply(i[s],[s,i]),e&&i[s]instanceof a.Container&&i[s].each(t,e);return this},removeElement:function(t){return this.node.removeChild(t.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,this},defs:function(){return this.doc().defs()}}}),a.extend(a.Parent,{ungroup:function(t,e){return 0===e||this instanceof a.Defs||this.node==a.parser.draw||(t=t||(this instanceof a.Doc?this:this.parent(a.Parent)),e=e||1/0,this.each((function(){return this instanceof a.Defs?this:this instanceof a.Parent?this.ungroup(t,e-1):this.toParent(t)})),this.node.firstChild||this.remove()),this},flatten:function(t,e){return this.ungroup(t,e)}}),a.Container=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Parent}),a.ViewBox=a.invent({parent:a.Container,construct:{}}),[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseover\",\"mouseout\",\"mousemove\",\"touchstart\",\"touchmove\",\"touchleave\",\"touchend\",\"touchcancel\"].forEach((function(t){a.Element.prototype[t]=function(e){return a.on(this.node,t,e),this}})),a.listeners=[],a.handlerMap=[],a.listenerId=0,a.on=function(t,e,i,s,r){var o=i.bind(s||t.instance||t),n=(a.handlerMap.indexOf(t)+1||a.handlerMap.push(t))-1,l=e.split(\".\")[0],h=e.split(\".\")[1]||\"*\";a.listeners[n]=a.listeners[n]||{},a.listeners[n][l]=a.listeners[n][l]||{},a.listeners[n][l][h]=a.listeners[n][l][h]||{},i._svgjsListenerId||(i._svgjsListenerId=++a.listenerId),a.listeners[n][l][h][i._svgjsListenerId]=o,t.addEventListener(l,o,r||{passive:!0})},a.off=function(t,e,i){var s=a.handlerMap.indexOf(t),r=e&&e.split(\".\")[0],o=e&&e.split(\".\")[1],n=\"\";if(-1!=s)if(i){if(\"function\"==typeof i&&(i=i._svgjsListenerId),!i)return;a.listeners[s][r]&&a.listeners[s][r][o||\"*\"]&&(t.removeEventListener(r,a.listeners[s][r][o||\"*\"][i],!1),delete a.listeners[s][r][o||\"*\"][i])}else if(o&&r){if(a.listeners[s][r]&&a.listeners[s][r][o]){for(var l in a.listeners[s][r][o])a.off(t,[r,o].join(\".\"),l);delete a.listeners[s][r][o]}}else if(o)for(var h in a.listeners[s])for(var n in a.listeners[s][h])o===n&&a.off(t,[h,o].join(\".\"));else if(r){if(a.listeners[s][r]){for(var n in a.listeners[s][r])a.off(t,[r,n].join(\".\"));delete a.listeners[s][r]}}else{for(var h in a.listeners[s])a.off(t,h);delete a.listeners[s],delete a.handlerMap[s]}},a.extend(a.Element,{on:function(t,e,i,s){return a.on(this.node,t,e,i,s),this},off:function(t,e){return a.off(this.node,t,e),this},fire:function(e,i){return e instanceof t.Event?this.node.dispatchEvent(e):this.node.dispatchEvent(e=new a.CustomEvent(e,{detail:i,cancelable:!0})),this._event=e,this},event:function(){return this._event}}),a.Defs=a.invent({create:\"defs\",inherit:a.Container}),a.G=a.invent({create:\"g\",inherit:a.Container,extend:{x:function(t){return null==t?this.transform(\"x\"):this.transform({x:t-this.x()},!0)}},construct:{group:function(){return this.put(new a.G)}}}),a.Doc=a.invent({create:function(t){t&&(\"svg\"==(t=\"string\"==typeof t?e.getElementById(t):t).nodeName?this.constructor.call(this,t):(this.constructor.call(this,a.create(\"svg\")),t.appendChild(this.node),this.size(\"100%\",\"100%\")),this.namespace().defs())},inherit:a.Container,extend:{namespace:function(){return this.attr({xmlns:a.ns,version:\"1.1\"}).attr(\"xmlns:xlink\",a.xlink,a.xmlns).attr(\"xmlns:svgjs\",a.svgjs,a.xmlns)},defs:function(){var t;return this._defs||((t=this.node.getElementsByTagName(\"defs\")[0])?this._defs=a.adopt(t):this._defs=new a.Defs,this.node.appendChild(this._defs.node)),this._defs},parent:function(){return this.node.parentNode&&\"#document\"!=this.node.parentNode.nodeName?this.node.parentNode:null},remove:function(){return this.parent()&&this.parent().removeChild(this.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,a.parser.draw&&!a.parser.draw.parentNode&&this.node.appendChild(a.parser.draw),this},clone:function(t){this.writeDataToDom();var e=this.node,i=x(e.cloneNode(!0));return t?(t.node||t).appendChild(i.node):e.parentNode.insertBefore(i.node,e.nextSibling),i}}}),a.extend(a.Element,{}),a.Gradient=a.invent({create:function(t){this.constructor.call(this,a.create(t+\"Gradient\")),this.type=t},inherit:a.Container,extend:{at:function(t,e,i){return this.put(new a.Stop).update(t,e,i)},update:function(t){return this.clear(),\"function\"==typeof t&&t.call(this,this),this},fill:function(){return\"url(#\"+this.id()+\")\"},toString:function(){return this.fill()},attr:function(t,e,i){return\"transform\"==t&&(t=\"gradientTransform\"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{gradient:function(t,e){return this.defs().gradient(t,e)}}}),a.extend(a.Gradient,a.FX,{from:function(t,e){return\"radial\"==(this._target||this).type?this.attr({fx:new a.Number(t),fy:new a.Number(e)}):this.attr({x1:new a.Number(t),y1:new a.Number(e)})},to:function(t,e){return\"radial\"==(this._target||this).type?this.attr({cx:new a.Number(t),cy:new a.Number(e)}):this.attr({x2:new a.Number(t),y2:new a.Number(e)})}}),a.extend(a.Defs,{gradient:function(t,e){return this.put(new a.Gradient(t)).update(e)}}),a.Stop=a.invent({create:\"stop\",inherit:a.Element,extend:{update:function(t){return(\"number\"==typeof t||t instanceof a.Number)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr(\"stop-opacity\",t.opacity),null!=t.color&&this.attr(\"stop-color\",t.color),null!=t.offset&&this.attr(\"offset\",new a.Number(t.offset)),this}}}),a.Pattern=a.invent({create:\"pattern\",inherit:a.Container,extend:{fill:function(){return\"url(#\"+this.id()+\")\"},update:function(t){return this.clear(),\"function\"==typeof t&&t.call(this,this),this},toString:function(){return this.fill()},attr:function(t,e,i){return\"transform\"==t&&(t=\"patternTransform\"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{pattern:function(t,e,i){return this.defs().pattern(t,e,i)}}}),a.extend(a.Defs,{pattern:function(t,e,i){return this.put(new a.Pattern).update(i).attr({x:0,y:0,width:t,height:e,patternUnits:\"userSpaceOnUse\"})}}),a.Shape=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element}),a.Symbol=a.invent({create:\"symbol\",inherit:a.Container,construct:{symbol:function(){return this.put(new a.Symbol)}}}),a.Use=a.invent({create:\"use\",inherit:a.Shape,extend:{element:function(t,e){return this.attr(\"href\",(e||\"\")+\"#\"+t,a.xlink)}},construct:{use:function(t,e){return this.put(new a.Use).element(t,e)}}}),a.Rect=a.invent({create:\"rect\",inherit:a.Shape,construct:{rect:function(t,e){return this.put(new a.Rect).size(t,e)}}}),a.Circle=a.invent({create:\"circle\",inherit:a.Shape,construct:{circle:function(t){return this.put(new a.Circle).rx(new a.Number(t).divide(2)).move(0,0)}}}),a.extend(a.Circle,a.FX,{rx:function(t){return this.attr(\"r\",t)},ry:function(t){return this.rx(t)}}),a.Ellipse=a.invent({create:\"ellipse\",inherit:a.Shape,construct:{ellipse:function(t,e){return this.put(new a.Ellipse).size(t,e).move(0,0)}}}),a.extend(a.Ellipse,a.Rect,a.FX,{rx:function(t){return this.attr(\"rx\",t)},ry:function(t){return this.attr(\"ry\",t)}}),a.extend(a.Circle,a.Ellipse,{x:function(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())},y:function(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())},cx:function(t){return null==t?this.attr(\"cx\"):this.attr(\"cx\",t)},cy:function(t){return null==t?this.attr(\"cy\"):this.attr(\"cy\",t)},width:function(t){return null==t?2*this.rx():this.rx(new a.Number(t).divide(2))},height:function(t){return null==t?2*this.ry():this.ry(new a.Number(t).divide(2))},size:function(t,e){var i=u(this,t,e);return this.rx(new a.Number(i.width).divide(2)).ry(new a.Number(i.height).divide(2))}}),a.Line=a.invent({create:\"line\",inherit:a.Shape,extend:{array:function(){return new a.PointArray([[this.attr(\"x1\"),this.attr(\"y1\")],[this.attr(\"x2\"),this.attr(\"y2\")]])},plot:function(t,e,i,s){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:i,y2:s}:new a.PointArray(t).toLine(),this.attr(t))},move:function(t,e){return this.attr(this.array().move(t,e).toLine())},size:function(t,e){var i=u(this,t,e);return this.attr(this.array().size(i.width,i.height).toLine())}},construct:{line:function(t,e,i,s){return a.Line.prototype.plot.apply(this.put(new a.Line),null!=t?[t,e,i,s]:[0,0,0,0])}}}),a.Polyline=a.invent({create:\"polyline\",inherit:a.Shape,construct:{polyline:function(t){return this.put(new a.Polyline).plot(t||new a.PointArray)}}}),a.Polygon=a.invent({create:\"polygon\",inherit:a.Shape,construct:{polygon:function(t){return this.put(new a.Polygon).plot(t||new a.PointArray)}}}),a.extend(a.Polyline,a.Polygon,{array:function(){return this._array||(this._array=new a.PointArray(this.attr(\"points\")))},plot:function(t){return null==t?this.array():this.clear().attr(\"points\",\"string\"==typeof t?t:this._array=new a.PointArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr(\"points\",this.array().move(t,e))},size:function(t,e){var i=u(this,t,e);return this.attr(\"points\",this.array().size(i.width,i.height))}}),a.extend(a.Line,a.Polyline,a.Polygon,{morphArray:a.PointArray,x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},width:function(t){var e=this.bbox();return null==t?e.width:this.size(t,e.height)},height:function(t){var e=this.bbox();return null==t?e.height:this.size(e.width,t)}}),a.Path=a.invent({create:\"path\",inherit:a.Shape,extend:{morphArray:a.PathArray,array:function(){return this._array||(this._array=new a.PathArray(this.attr(\"d\")))},plot:function(t){return null==t?this.array():this.clear().attr(\"d\",\"string\"==typeof t?t:this._array=new a.PathArray(t))},clear:function(){return delete this._array,this}},construct:{path:function(t){return this.put(new a.Path).plot(t||new a.PathArray)}}}),a.Image=a.invent({create:\"image\",inherit:a.Shape,extend:{load:function(e){if(!e)return this;var i=this,s=new t.Image;return a.on(s,\"load\",(function(){a.off(s);var t=i.parent(a.Pattern);null!==t&&(0==i.width()&&0==i.height()&&i.size(s.width,s.height),t&&0==t.width()&&0==t.height()&&t.size(i.width(),i.height()),\"function\"==typeof i._loaded&&i._loaded.call(i,{width:s.width,height:s.height,ratio:s.width/s.height,url:e}))})),a.on(s,\"error\",(function(t){a.off(s),\"function\"==typeof i._error&&i._error.call(i,t)})),this.attr(\"href\",s.src=this.src=e,a.xlink)},loaded:function(t){return this._loaded=t,this},error:function(t){return this._error=t,this}},construct:{image:function(t,e,i){return this.put(new a.Image).load(t).size(e||0,i||e||0)}}}),a.Text=a.invent({create:function(){this.constructor.call(this,a.create(\"text\")),this.dom.leading=new a.Number(1.3),this._rebuild=!0,this._build=!1,this.attr(\"font-family\",a.defaults.attrs[\"font-family\"])},inherit:a.Shape,extend:{x:function(t){return null==t?this.attr(\"x\"):this.attr(\"x\",t)},text:function(t){if(void 0===t){t=\"\";for(var e=this.node.childNodes,i=0,s=e.length;i<s;++i)0!=i&&3!=e[i].nodeType&&1==a.adopt(e[i]).dom.newLined&&(t+=\"\\n\"),t+=e[i].textContent;return t}if(this.clear().build(!0),\"function\"==typeof t)t.call(this,this);else{i=0;for(var r=(t=t.split(\"\\n\")).length;i<r;i++)this.tspan(t[i]).newLine()}return this.build(!1).rebuild()},size:function(t){return this.attr(\"font-size\",t).rebuild()},leading:function(t){return null==t?this.dom.leading:(this.dom.leading=new a.Number(t),this.rebuild())},lines:function(){var t=(this.textPath&&this.textPath()||this).node,e=a.utils.map(a.utils.filterSVGElements(t.childNodes),(function(t){return a.adopt(t)}));return new a.Set(e)},rebuild:function(t){if(\"boolean\"==typeof t&&(this._rebuild=t),this._rebuild){var e=this,i=0,s=this.dom.leading*new a.Number(this.attr(\"font-size\"));this.lines().each((function(){this.dom.newLined&&(e.textPath()||this.attr(\"x\",e.attr(\"x\")),\"\\n\"==this.text()?i+=s:(this.attr(\"dy\",s+i),i=0))})),this.fire(\"rebuild\")}return this},build:function(t){return this._build=!!t,this},setData:function(t){return this.dom=t,this.dom.leading=new a.Number(t.leading||1.3),this}},construct:{text:function(t){return this.put(new a.Text).text(t)},plain:function(t){return this.put(new a.Text).plain(t)}}}),a.Tspan=a.invent({create:\"tspan\",inherit:a.Shape,extend:{text:function(t){return null==t?this.node.textContent+(this.dom.newLined?\"\\n\":\"\"):(\"function\"==typeof t?t.call(this,this):this.plain(t),this)},dx:function(t){return this.attr(\"dx\",t)},dy:function(t){return this.attr(\"dy\",t)},newLine:function(){var t=this.parent(a.Text);return this.dom.newLined=!0,this.dy(t.dom.leading*t.attr(\"font-size\")).attr(\"x\",t.x())}}}),a.extend(a.Text,a.Tspan,{plain:function(t){return!1===this._build&&this.clear(),this.node.appendChild(e.createTextNode(t)),this},tspan:function(t){var e=(this.textPath&&this.textPath()||this).node,i=new a.Tspan;return!1===this._build&&this.clear(),e.appendChild(i.node),i.text(t)},clear:function(){for(var t=(this.textPath&&this.textPath()||this).node;t.hasChildNodes();)t.removeChild(t.lastChild);return this},length:function(){return this.node.getComputedTextLength()}}),a.TextPath=a.invent({create:\"textPath\",inherit:a.Parent,parent:a.Text,construct:{morphArray:a.PathArray,array:function(){var t=this.track();return t?t.array():null},plot:function(t){var e=this.track(),i=null;return e&&(i=e.plot(t)),null==t?i:this},track:function(){var t=this.textPath();if(t)return t.reference(\"href\")},textPath:function(){if(this.node.firstChild&&\"textPath\"==this.node.firstChild.nodeName)return a.adopt(this.node.firstChild)}}}),a.Nested=a.invent({create:function(){this.constructor.call(this,a.create(\"svg\")),this.style(\"overflow\",\"visible\")},inherit:a.Container,construct:{nested:function(){return this.put(new a.Nested)}}});var l={stroke:[\"color\",\"width\",\"opacity\",\"linecap\",\"linejoin\",\"miterlimit\",\"dasharray\",\"dashoffset\"],fill:[\"color\",\"opacity\",\"rule\"],prefix:function(t,e){return\"color\"==e?t:t+\"-\"+e}};function h(t,e,i,s){return i+s.replace(a.regex.dots,\" .\")}function c(t){return t.toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()}))}function d(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t){var e=t.toString(16);return 1==e.length?\"0\"+e:e}function u(t,e,i){if(null==e||null==i){var a=t.bbox();null==e?e=a.width/a.height*i:null==i&&(i=a.height/a.width*e)}return{width:e,height:i}}function p(t,e,i){return{x:e*t.a+i*t.c+0,y:e*t.b+i*t.d+0}}function f(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}function x(e){for(var i=e.childNodes.length-1;i>=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return Math.abs(t)>1e-37?t:0}[\"fill\",\"stroke\"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if(\"string\"==typeof e||a.Color.isRgb(e)||e&&\"function\"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr(\"transform\",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr(\"opacity\",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e<i;e++)this.members.push(t[e]);return this},remove:function(t){var e=this.index(t);return e>-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e<i;e++)t.apply(this.members[e],[e,this.members]);return this},clear:function(){return this.members=[],this},length:function(){return this.members.length},has:function(t){return this.index(t)>=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)\"function\"==typeof a.Shape.prototype[e]&&\"function\"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e<i;e++)this.members[e]&&\"function\"==typeof this.members[e][t]&&this.members[e][t].apply(this.members[e],arguments);return\"animate\"==t?this.fx||(this.fx=new a.FX.Set(this)):this}})),t=[],a.FX.prototype)\"function\"==typeof a.FX.prototype[e]&&\"function\"!=typeof a.FX.Set.prototype[e]&&t.push(e);t.forEach((function(t){a.FX.Set.prototype[t]=function(){for(var e=0,i=this.set.members.length;e<i;e++)this.set.members[e].fx[t].apply(this.set.members[e].fx,arguments);return this}}))},a.extend(a.Element,{}),a.extend(a.Element,{remember:function(t,e){if(\"object\"===i(arguments[0]))for(var a in t)this.remember(a,t[a]);else{if(1==arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0==arguments.length)this._memory={};else for(var t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||\"\").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var v=\"abcdef\".split(\"\");if(\"function\"!=typeof t.CustomEvent){var m=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};m.prototype=t.Event.prototype,a.CustomEvent=m}else a.CustomEvent=t.CustomEvent;return a},\"function\"==typeof define&&define.amd?define((function(){return Et(zt,zt.document)})):\"object\"===(\"undefined\"==typeof exports?\"undefined\":i(exports))&&\"undefined\"!=typeof module?module.exports=zt.document?Et(zt,zt.document):function(t){return Et(t,t.document)}:zt.SVG=Et(zt,zt.document),\n/*! svg.filter.js - v2.0.2 - 2016-02-24\n* https://github.com/wout/svg.filter.js\n* Copyright (c) 2016 Wout Fierens; Licensed MIT */\nfunction(){SVG.Filter=SVG.invent({create:\"filter\",inherit:SVG.Parent,extend:{source:\"SourceGraphic\",sourceAlpha:\"SourceAlpha\",background:\"BackgroundImage\",backgroundAlpha:\"BackgroundAlpha\",fill:\"FillPaint\",stroke:\"StrokePaint\",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr(\"in\")&&this.autoSetIn&&t.attr(\"in\",this.source),t.attr(\"result\")||t.attr(\"result\",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return\"url(#\"+this.attr(\"id\")+\")\"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return\"function\"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr(\"filter\",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr(\"filter\",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr(\"in\",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||\"normal\"})},colorMatrix:function(t,e){\"matrix\"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(\" \").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr(\"flood-color\",t),null!=e&&this.attr(\"flood-opacity\",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr(\"href\",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr(\"stdDeviation\",function(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e<i;e++)a.push(t[e]);return a.join(\" \")}(Array.prototype.slice.call(arguments))):this.attr(\"stdDeviation\",\"0 0\")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i<t.length;i++)t[i]instanceof SVG.MergeNode?this.put(t[i]):this.put(new SVG.MergeNode(t[i]))}},componentTransfer:function(t){if(this.rgb=new SVG.Set,[\"r\",\"g\",\"b\",\"a\"].forEach(function(t){this[t]=new(SVG[\"Func\"+t.toUpperCase()])(\"identity\"),this.rgb.add(this[t]),this.node.appendChild(this[t].node)}.bind(this)),t)for(var e in t.rgb&&([\"r\",\"g\",\"b\"].forEach(function(e){this[e].attr(t.rgb)}.bind(this)),delete t.rgb),t)this[e].attr(t[e])},diffuseLighting:function(t,e,i){this.attr({surfaceScale:t,diffuseConstant:e,kernelUnitLength:i})},specularLighting:function(t,e,i,a){this.attr({surfaceScale:t,diffuseConstant:e,specularExponent:i,kernelUnitLength:a})}},a={distantLight:function(t,e){this.attr({azimuth:t,elevation:e})},pointLight:function(t,e,i){this.attr({x:t,y:e,z:i})},spotLight:function(t,e,i,a,s,r){this.attr({x:t,y:e,z:i,pointsAtX:a,pointsAtY:s,pointsAtZ:r})},mergeNode:function(t){this.attr(\"in\",t)}};function s(t){return Array.isArray(t)&&(t=new SVG.Array(t)),t.toString().replace(/^\\s+/,\"\").replace(/\\s+$/,\"\").replace(/\\s+/g,\" \")}function r(){var t=function(){};for(var e in\"function\"==typeof arguments[arguments.length-1]&&(t=arguments[arguments.length-1],Array.prototype.splice.call(arguments,arguments.length-1,1)),arguments)for(var i in arguments[e])t(arguments[e][i],i,arguments[e])}[\"r\",\"g\",\"b\",\"a\"].forEach((function(t){a[\"Func\"+t.toUpperCase()]=function(t){switch(this.attr(\"type\",t),t){case\"table\":this.attr(\"tableValues\",arguments[1]);break;case\"linear\":this.attr(\"slope\",arguments[1]),this.attr(\"intercept\",arguments[2]);break;case\"gamma\":this.attr(\"amplitude\",arguments[1]),this.attr(\"exponent\",arguments[2]),this.attr(\"offset\",arguments[2])}}})),r(e,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i+\"Effect\"]=SVG.invent({create:function(){this.constructor.call(this,SVG.create(\"fe\"+i)),t.apply(this,arguments),this.result(this.attr(\"id\")+\"Out\")},inherit:SVG.Effect,extend:{}})})),r(i,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i+\"Effect\"]=SVG.invent({create:function(){this.constructor.call(this,SVG.create(\"fe\"+i)),t.apply(this,arguments),this.result(this.attr(\"id\")+\"Out\")},inherit:SVG.ParentEffect,extend:{}})})),r(a,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i]=SVG.invent({create:function(){this.constructor.call(this,SVG.create(\"fe\"+i)),t.apply(this,arguments)},inherit:SVG.ChildEffect,extend:{}})})),SVG.extend(SVG.MergeEffect,{in:function(t){return t instanceof SVG.MergeNode?this.add(t,0):this.add(new SVG.MergeNode(t),0),this}}),SVG.extend(SVG.CompositeEffect,SVG.BlendEffect,SVG.DisplacementMapEffect,{in2:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in2\")+'\"]').get(0)||this.attr(\"in2\"):this.attr(\"in2\",t)}}),SVG.filter={sepiatone:[.343,.669,.119,0,0,.249,.626,.13,0,0,.172,.334,.111,0,0,0,0,0,1,0]}}.call(void 0),function(){function t(t,s,r,o,n,l,h){for(var c=t.slice(s,r||h),d=o.slice(n,l||h),g=0,u={pos:[0,0],start:[0,0]},p={pos:[0,0],start:[0,0]};;){if(c[g]=e.call(u,c[g]),d[g]=e.call(p,d[g]),c[g][0]!=d[g][0]||\"M\"==c[g][0]||\"A\"==c[g][0]&&(c[g][4]!=d[g][4]||c[g][5]!=d[g][5])?(Array.prototype.splice.apply(c,[g,1].concat(a.call(u,c[g]))),Array.prototype.splice.apply(d,[g,1].concat(a.call(p,d[g])))):(c[g]=i.call(u,c[g]),d[g]=i.call(p,d[g])),++g==c.length&&g==d.length)break;g==c.length&&c.push([\"C\",u.pos[0],u.pos[1],u.pos[0],u.pos[1],u.pos[0],u.pos[1]]),g==d.length&&d.push([\"C\",p.pos[0],p.pos[1],p.pos[0],p.pos[1],p.pos[0],p.pos[1]])}return{start:c,dest:d}}function e(t){switch(t[0]){case\"z\":case\"Z\":t[0]=\"L\",t[1]=this.start[0],t[2]=this.start[1];break;case\"H\":t[0]=\"L\",t[2]=this.pos[1];break;case\"V\":t[0]=\"L\",t[2]=t[1],t[1]=this.pos[0];break;case\"T\":t[0]=\"Q\",t[3]=t[1],t[4]=t[2],t[1]=this.reflection[1],t[2]=this.reflection[0];break;case\"S\":t[0]=\"C\",t[6]=t[4],t[5]=t[3],t[4]=t[2],t[3]=t[1],t[2]=this.reflection[1],t[1]=this.reflection[0]}return t}function i(t){var e=t.length;return this.pos=[t[e-2],t[e-1]],-1!=\"SCQT\".indexOf(t[0])&&(this.reflection=[2*this.pos[0]-t[e-4],2*this.pos[1]-t[e-3]]),t}function a(t){var e=[t];switch(t[0]){case\"M\":return this.pos=this.start=[t[1],t[2]],e;case\"L\":t[5]=t[3]=t[1],t[6]=t[4]=t[2],t[1]=this.pos[0],t[2]=this.pos[1];break;case\"Q\":t[6]=t[4],t[5]=t[3],t[4]=1*t[4]/3+2*t[2]/3,t[3]=1*t[3]/3+2*t[1]/3,t[2]=1*this.pos[1]/3+2*t[2]/3,t[1]=1*this.pos[0]/3+2*t[1]/3;break;case\"A\":e=function(t,e){var i,a,s,r,o,n,l,h,c,d,g,u,p,f,x,b,v,m,y,w,k,A,S,C,L,P,I=Math.abs(e[1]),T=Math.abs(e[2]),M=e[3]%360,X=e[4],z=e[5],E=e[6],Y=e[7],F=new SVG.Point(t),R=new SVG.Point(E,Y),H=[];if(0===I||0===T||F.x===R.x&&F.y===R.y)return[[\"C\",F.x,F.y,R.x,R.y,R.x,R.y]];i=new SVG.Point((F.x-R.x)/2,(F.y-R.y)/2).transform((new SVG.Matrix).rotate(M)),(a=i.x*i.x/(I*I)+i.y*i.y/(T*T))>1&&(I*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(M).scale(1/I,1/T).rotate(-M),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,X===z&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);z&&g>u&&(u+=2*Math.PI);!z&&g<u&&(u-=2*Math.PI);for(f=Math.ceil(2*Math.abs(g-u)/Math.PI),b=[],v=g,p=(u-g)/f,x=4*Math.tan(p/4)/3,k=0;k<=f;k++)y=Math.cos(v),m=Math.sin(v),w=new SVG.Point(h.x+y,h.y+m),b[k]=[new SVG.Point(w.x+x*m,w.y-x*y),w,new SVG.Point(w.x-x*m,w.y+x*y)],v+=p;for(b[0][0]=b[0][1].clone(),b[b.length-1][2]=b[b.length-1][1].clone(),s=(new SVG.Matrix).rotate(M).scale(I,T).rotate(-M),k=0,A=b.length;k<A;k++)b[k][0]=b[k][0].transform(s),b[k][1]=b[k][1].transform(s),b[k][2]=b[k][2].transform(s);for(k=1,A=b.length;k<A;k++)S=(w=b[k-1][2]).x,C=w.y,L=(w=b[k][0]).x,P=w.y,E=(w=b[k][1]).x,Y=w.y,H.push([\"C\",S,C,L,P,E,Y]);return H}(this.pos,t),t=e[0]}return t[0]=\"C\",this.pos=[t[5],t[6]],this.reflection=[2*t[5]-t[3],2*t[6]-t[4]],e}function s(t,e){if(!1===e)return!1;for(var i=e,a=t.length;i<a;++i)if(\"M\"==t[i][0])return i;return!1}SVG.extend(SVG.PathArray,{morph:function(e){for(var i=this.value,a=this.parse(e),r=0,o=0,n=!1,l=!1;!1!==r||!1!==o;){var h;n=s(i,!1!==r&&r+1),l=s(a,!1!==o&&o+1),!1===r&&(r=0==(h=new SVG.PathArray(c.start).bbox()).height||0==h.width?i.push(i[0])-1:i.push([\"M\",h.x+h.width/2,h.y+h.height/2])-1),!1===o&&(o=0==(h=new SVG.PathArray(c.dest).bbox()).height||0==h.width?a.push(a[0])-1:a.push([\"M\",h.x+h.width/2,h.y+h.height/2])-1);var c=t(i,r,n,a,o,l);i=i.slice(0,r).concat(c.start,!1===n?[]:i.slice(n)),a=a.slice(0,o).concat(c.dest,!1===l?[]:a.slice(l)),r=!1!==n&&r+c.start.length,o=!1!==l&&o+c.dest.length}return this.value=i,this.destination=new SVG.PathArray,this.destination.value=a,this}})}(),\n/*! svg.draggable.js - v2.2.2 - 2019-01-08\n* https://github.com/svgdotjs/svg.draggable.js\n* Copyright (c) 2019 Wout Fierens; Licensed MIT */\nfunction(){function t(t){t.remember(\"_draggable\",this),this.el=t}t.prototype.init=function(t,e){var i=this;this.constraint=t,this.value=e,this.el.on(\"mousedown.drag\",(function(t){i.start(t)})),this.el.on(\"touchstart.drag\",(function(t){i.start(t)}))},t.prototype.transformPoint=function(t,e){var i=(t=t||window.event).changedTouches&&t.changedTouches[0]||t;return this.p.x=i.clientX-(e||0),this.p.y=i.clientY,this.p.matrixTransform(this.m)},t.prototype.getBBox=function(){var t=this.el.bbox();return this.el instanceof SVG.Nested&&(t=this.el.rbox()),(this.el instanceof SVG.G||this.el instanceof SVG.Use||this.el instanceof SVG.Nested)&&(t.x=this.el.x(),t.y=this.el.y()),t},t.prototype.start=function(t){if(\"click\"!=t.type&&\"mousedown\"!=t.type&&\"mousemove\"!=t.type||1==(t.which||t.buttons)){var e=this;if(this.el.fire(\"beforedrag\",{event:t,handler:this}),!this.el.event().defaultPrevented){t.preventDefault(),t.stopPropagation(),this.parent=this.parent||this.el.parent(SVG.Nested)||this.el.parent(SVG.Doc),this.p=this.parent.node.createSVGPoint(),this.m=this.el.node.getScreenCTM().inverse();var i,a=this.getBBox();if(this.el instanceof SVG.Text)switch(i=this.el.node.getComputedTextLength(),this.el.attr(\"text-anchor\")){case\"middle\":i/=2;break;case\"start\":i=0}this.startPoints={point:this.transformPoint(t,i),box:a,transform:this.el.transform()},SVG.on(window,\"mousemove.drag\",(function(t){e.drag(t)})),SVG.on(window,\"touchmove.drag\",(function(t){e.drag(t)})),SVG.on(window,\"mouseup.drag\",(function(t){e.end(t)})),SVG.on(window,\"touchend.drag\",(function(t){e.end(t)})),this.el.fire(\"dragstart\",{event:t,p:this.startPoints.point,m:this.m,handler:this})}}},t.prototype.drag=function(t){var e=this.getBBox(),i=this.transformPoint(t),a=this.startPoints.box.x+i.x-this.startPoints.point.x,s=this.startPoints.box.y+i.y-this.startPoints.point.y,r=this.constraint,o=i.x-this.startPoints.point.x,n=i.y-this.startPoints.point.y;if(this.el.fire(\"dragmove\",{event:t,p:i,m:this.m,handler:this}),this.el.event().defaultPrevented)return i;if(\"function\"==typeof r){var l=r.call(this.el,a,s,this.m);\"boolean\"==typeof l&&(l={x:l,y:l}),!0===l.x?this.el.x(a):!1!==l.x&&this.el.x(l.x),!0===l.y?this.el.y(s):!1!==l.y&&this.el.y(l.y)}else\"object\"==typeof r&&(null!=r.minX&&a<r.minX?o=(a=r.minX)-this.startPoints.box.x:null!=r.maxX&&a>r.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&s<r.minY?n=(s=r.minY)-this.startPoints.box.y:null!=r.maxY&&s>r.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire(\"dragend\",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,\"mousemove.drag\"),SVG.off(window,\"touchmove.drag\"),SVG.off(window,\"mouseup.drag\"),SVG.off(window,\"touchend.drag\")},SVG.extend(SVG.Element,{draggable:function(e,i){\"function\"!=typeof e&&\"object\"!=typeof e||(i=e,e=!0);var a=this.remember(\"_draggable\")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off(\"mousedown.drag\"),this.off(\"touchstart.drag\")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember(\"_selectHandler\",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:[\"width\",0],rb:[\"width\",\"height\"],lb:[0,\"height\"],t:[\"width\",0],r:[\"width\",\"height\"],b:[\"width\",\"height\"],l:[0,\"height\"]},this.pointCoord=function(t,e,i){var a=\"string\"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,\"t\"===t||\"b\"===t),y:this.pointCoord(i[1],e,\"r\"===t||\"l\"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=[\"points\",\"pointsExclude\"];for(var s in r){var o=this.options[r[s]];\"string\"==typeof o?o=o.length>0?o.split(/\\s*,\\s*/i):[]:\"boolean\"==typeof o&&\"points\"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==[\"line\",\"polyline\",\"polygon\"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i<a;++i){var s=function(e){return function(i){(i=i||window.event).preventDefault?i.preventDefault():i.returnValue=!1,i.stopPropagation();var a=i.pageX||i.touches[0].pageX,s=i.pageY||i.touches[0].pageY;t.el.fire(\"point\",{x:a,y:s,i:e,event:i})}}(i),r=this.drawPoint(e[i][0],e[i][1]).addClass(this.options.classPoints).addClass(this.options.classPoints+\"_point\").on(\"touchstart\",s).on(\"mousedown\",s);this.pointSelection.set.add(r)}},t.prototype.drawPoint=function(t,e){var i=this.options.pointType;switch(i){case\"circle\":return this.drawCircle(t,e);case\"rect\":return this.drawRect(t,e);default:if(\"function\"==typeof i)return i.call(this,t,e);throw new Error(\"Unknown \"+i+\" point type!\")}},t.prototype.drawCircle=function(t,e){return this.nested.circle(this.options.pointSize).center(t,e)},t.prototype.drawRect=function(t,e){return this.nested.rect(this.options.pointSize,this.options.pointSize).center(t,e)},t.prototype.updatePointSelection=function(){var t=this.getPointArray();this.pointSelection.set.each((function(e){this.cx()===t[e][0]&&this.cy()===t[e][1]||this.center(t[e][0],t[e][1])}))},t.prototype.updateRectSelection=function(){var t=this,e=this.el.bbox();if(this.rectSelection.set.get(0).attr({width:e.width,height:e.height}),this.options.points.length&&this.options.points.map((function(i,a){var s=t.pointCoords(i,e);t.rectSelection.set.get(a+1).center(s.x,s.y)})),this.options.rotationPoint){var i=this.rectSelection.set.length();this.rectSelection.set.get(i-1).center(e.width/2,20)}},t.prototype.selectRect=function(t){var e=this,i=this.el.bbox();function a(t){return function(i){(i=i||window.event).preventDefault?i.preventDefault():i.returnValue=!1,i.stopPropagation();var a=i.pageX||i.touches[0].pageX,s=i.pageY||i.touches[0].pageY;e.el.fire(t,{x:a,y:s,event:i})}}if(this.rectSelection.isSelected=t,this.rectSelection.set=this.rectSelection.set||this.parent.set(),this.rectSelection.set.get(0)||this.rectSelection.set.add(this.nested.rect(i.width,i.height).addClass(this.options.classRect)),this.options.points.length&&this.rectSelection.set.length()<2){this.options.points.map((function(t,s){var r=e.pointCoords(t,i),o=e.drawPoint(r.x,r.y).attr(\"class\",e.options.classPoints+\"_\"+t).on(\"mousedown\",a(t)).on(\"touchstart\",a(t));e.rectSelection.set.add(o)})),this.rectSelection.set.each((function(){this.addClass(e.options.classPoints)}))}if(this.options.rotationPoint&&(this.options.points&&!this.rectSelection.set.get(9)||!this.options.points&&!this.rectSelection.set.get(1))){var s=function(t){(t=t||window.event).preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation();var i=t.pageX||t.touches[0].pageX,a=t.pageY||t.touches[0].pageY;e.el.fire(\"rot\",{x:i,y:a,event:t})},r=this.drawPoint(i.width/2,20).attr(\"class\",this.options.classPoints+\"_rot\").on(\"touchstart\",s).on(\"mousedown\",s);this.rectSelection.set.add(r)}},t.prototype.handler=function(){var t=this.el.bbox();this.nested.matrix(new SVG.Matrix(this.el).translate(t.x,t.y)),this.rectSelection.isSelected&&this.updateRectSelection(),this.pointSelection.isSelected&&this.updatePointSelection()},t.prototype.observe=function(){var t=this;if(MutationObserver)if(this.rectSelection.isSelected||this.pointSelection.isSelected)this.observerInst=this.observerInst||new MutationObserver((function(){t.handler()})),this.observerInst.observe(this.el.node,{attributes:!0});else try{this.observerInst.disconnect(),delete this.observerInst}catch(t){}else this.el.off(\"DOMAttrModified.select\"),(this.rectSelection.isSelected||this.pointSelection.isSelected)&&this.el.on(\"DOMAttrModified.select\",(function(){t.handler()}))},t.prototype.cleanup=function(){!this.rectSelection.isSelected&&this.rectSelection.set&&(this.rectSelection.set.each((function(){this.remove()})),this.rectSelection.set.clear(),delete this.rectSelection.set),!this.pointSelection.isSelected&&this.pointSelection.set&&(this.pointSelection.set.each((function(){this.remove()})),this.pointSelection.set.clear(),delete this.pointSelection.set),this.pointSelection.isSelected||this.rectSelection.isSelected||(this.nested.remove(),delete this.nested)},SVG.extend(SVG.Element,{selectize:function(e,i){return\"object\"==typeof e&&(i=e,e=!0),(this.remember(\"_selectHandler\")||new t(this)).init(void 0===e||e,i||{}),this}}),SVG.Element.prototype.selectize.defaults={points:[\"lt\",\"rt\",\"rb\",\"lb\",\"t\",\"r\",\"b\",\"l\"],pointsExclude:[],classRect:\"svg_select_boundingRect\",classPoints:\"svg_select_points\",pointSize:7,rotationPoint:!0,deepSelect:!1,pointType:\"circle\"}}(),function(){(function(){function t(t){t.remember(\"_resizeHandler\",this),this.el=t,this.parameters={},this.lastUpdateCall=null,this.p=t.doc().node.createSVGPoint()}t.prototype.transformPoint=function(t,e,i){return this.p.x=t-(this.offset.x-window.pageXOffset),this.p.y=e-(this.offset.y-window.pageYOffset),this.p.matrixTransform(i||this.m)},t.prototype._extractPosition=function(t){return{x:null!=t.clientX?t.clientX:t.touches[0].clientX,y:null!=t.clientY?t.clientY:t.touches[0].clientY}},t.prototype.init=function(t){var e=this;if(this.stop(),\"stop\"!==t){for(var i in this.options={},this.el.resize.defaults)this.options[i]=this.el.resize.defaults[i],void 0!==t[i]&&(this.options[i]=t[i]);this.el.on(\"lt.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"rt.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"rb.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"lb.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"t.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"r.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"b.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"l.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"rot.resize\",(function(t){e.resize(t||window.event)})),this.el.on(\"point.resize\",(function(t){e.resize(t||window.event)})),this.update()}},t.prototype.stop=function(){return this.el.off(\"lt.resize\"),this.el.off(\"rt.resize\"),this.el.off(\"rb.resize\"),this.el.off(\"lb.resize\"),this.el.off(\"t.resize\"),this.el.off(\"r.resize\"),this.el.off(\"b.resize\"),this.el.off(\"l.resize\"),this.el.off(\"rot.resize\"),this.el.off(\"point.resize\"),this},t.prototype.resize=function(t){var e=this;this.m=this.el.node.getScreenCTM().inverse(),this.offset={x:window.pageXOffset,y:window.pageYOffset};var i=this._extractPosition(t.detail.event);if(this.parameters={type:this.el.type,p:this.transformPoint(i.x,i.y),x:t.detail.x,y:t.detail.y,box:this.el.bbox(),rotation:this.el.transform().rotation},\"text\"===this.el.type&&(this.parameters.fontSize=this.el.attr()[\"font-size\"]),void 0!==t.detail.i){var a=this.el.array().valueOf();this.parameters.i=t.detail.i,this.parameters.pointCoords=[a[t.detail.i][0],a[t.detail.i][1]]}switch(t.type){case\"lt\":this.calc=function(t,e){var i=this.snapToGrid(t,e);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case\"rt\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case\"rb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case\"lb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case\"t\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case\"r\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case\"b\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case\"l\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case\"rot\":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case\"point\":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire(\"resizestart\",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,\"touchmove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"touchend.resize\",(function(){e.done()})),SVG.on(window,\"mousemove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"mouseup.resize\",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire(\"resizing\",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,\"mousemove.resize\"),SVG.off(window,\"mouseup.resize\"),SVG.off(window,\"touchmove.resize\"),SVG.off(window,\"touchend.resize\"),this.el.fire(\"resizedone\")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])<this.options.snapToGrid/2?s[0]:s[0]-(t<0?-this.options.snapToGrid:this.options.snapToGrid),e-=Math.abs(s[1])<this.options.snapToGrid/2?s[1]:s[1]-(e<0?-this.options.snapToGrid:this.options.snapToGrid),this.constraintToBox(t,e,i,a)},t.prototype.constraintToBox=function(t,e,i,a){var s,r,o=this.options.constraint||{};return void 0!==a?(s=i,r=a):(s=this.parameters.box.x+(1&i?0:this.parameters.box.width),r=this.parameters.box.y+(2&i?0:this.parameters.box.height)),void 0!==o.minX&&s+t<o.minX&&(t=o.minX-s),void 0!==o.maxX&&s+t>o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+e<o.minY&&(e=o.minY-r),void 0!==o.maxY&&r+e>o.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return o<a?(i[1]=s/a-this.parameters.box.height,e&&(i[1]=-i[1])):o>a&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember(\"_resizeHandler\")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"initModules\",value:function(){this.ctx.publicMethods=[\"updateOptions\",\"updateSeries\",\"appendData\",\"appendSeries\",\"toggleSeries\",\"showSeries\",\"hideSeries\",\"setLocale\",\"resetSeries\",\"zoomX\",\"toggleDataPointSelection\",\"dataURI\",\"exportToCSV\",\"addXaxisAnnotation\",\"addYaxisAnnotation\",\"addPointAnnotation\",\"clearAnnotations\",\"removeAnnotation\",\"paper\",\"destroy\"],this.ctx.eventList=[\"click\",\"mousedown\",\"mousemove\",\"mouseleave\",\"touchstart\",\"touchmove\",\"touchleave\",\"mouseup\",\"touchend\"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Ht(this.ctx.el,this.ctx),this.ctx.config=new E({}),this.ctx.data=new W(this.ctx),this.ctx.grid=new j(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new G(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new L,this.ctx.responsive=new K(this.ctx),this.ctx.series=new N(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new T(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.tooltip=new bt(this.ctx),this.ctx.dimensions=new ot(this.ctx),this.ctx.updateHelpers=new Dt(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Nt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"clear\",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:\"killSVG\",value:function(t){t.each((function(t,e){this.removeClass(\"*\"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:\"clearDomElements\",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight=\"unset\");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Wt=new WeakMap;var Bt=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new F(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ot(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:\"render\",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if(\"function\"==typeof a&&a(t,t.w),t.events.fireEvent(\"beforeMount\",[t,t.w]),window.addEventListener(\"resize\",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();\"none\"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Wt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is(\"ShadowRoot\",s),o=t.el.ownerDocument,n=o.getElementById(\"apexcharts-css\");!r&&n||(t.css=document.createElement(\"style\"),t.css.id=\"apexcharts-css\",t.css.textContent='@keyframes opaque {\\n  0% {\\n      opacity: 0\\n  }\\n\\n  to {\\n      opacity: 1\\n  }\\n}\\n\\n@keyframes resizeanim {\\n  0%,to {\\n      opacity: 0\\n  }\\n}\\n\\n.apexcharts-canvas {\\n  position: relative;\\n  user-select: none\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar {\\n  -webkit-appearance: none;\\n  width: 6px\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\\n  border-radius: 4px;\\n  background-color: rgba(0,0,0,.5);\\n  box-shadow: 0 0 1px rgba(255,255,255,.5);\\n  -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\\n}\\n\\n.apexcharts-inner {\\n  position: relative\\n}\\n\\n.apexcharts-text tspan {\\n  font-family: inherit\\n}\\n\\n.legend-mouseover-inactive {\\n  transition: .15s ease all;\\n  opacity: .2\\n}\\n\\n.apexcharts-legend-text {\\n  padding-left: 15px;\\n  margin-left: -15px;\\n}\\n\\n.apexcharts-series-collapsed {\\n  opacity: 0\\n}\\n\\n.apexcharts-tooltip {\\n  border-radius: 5px;\\n  box-shadow: 2px 2px 6px -4px #999;\\n  cursor: default;\\n  font-size: 14px;\\n  left: 62px;\\n  opacity: 0;\\n  pointer-events: none;\\n  position: absolute;\\n  top: 20px;\\n  display: flex;\\n  flex-direction: column;\\n  overflow: hidden;\\n  white-space: nowrap;\\n  z-index: 12;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-active {\\n  opacity: 1;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light {\\n  border: 1px solid #e3e3e3;\\n  background: rgba(255,255,255,.96)\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark {\\n  color: #fff;\\n  background: rgba(30,30,30,.8)\\n}\\n\\n.apexcharts-tooltip * {\\n  font-family: inherit\\n}\\n\\n.apexcharts-tooltip-title {\\n  padding: 6px;\\n  font-size: 15px;\\n  margin-bottom: 4px\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\\n  background: #eceff1;\\n  border-bottom: 1px solid #ddd\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\\n  background: rgba(0,0,0,.7);\\n  border-bottom: 1px solid #333\\n}\\n\\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\\n  display: inline-block;\\n  margin-left: 5px;\\n  font-weight: 600\\n}\\n\\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\\n  display: none\\n}\\n\\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\\n  padding: 6px 0 5px\\n}\\n\\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\\n  display: flex\\n}\\n\\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\\n  margin-top: -6px\\n}\\n\\n.apexcharts-tooltip-marker {\\n  width: 12px;\\n  height: 12px;\\n  position: relative;\\n  top: 0;\\n  margin-right: 10px;\\n  border-radius: 50%\\n}\\n\\n.apexcharts-tooltip-series-group {\\n  padding: 0 10px;\\n  display: none;\\n  text-align: left;\\n  justify-content: left;\\n  align-items: center\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\\n  opacity: 1\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\\n  padding-bottom: 4px\\n}\\n\\n.apexcharts-tooltip-series-group-hidden {\\n  opacity: 0;\\n  height: 0;\\n  line-height: 0;\\n  padding: 0!important\\n}\\n\\n.apexcharts-tooltip-y-group {\\n  padding: 6px 0 5px\\n}\\n\\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\\n  padding: 4px 8px\\n}\\n\\n.apexcharts-tooltip-boxPlot {\\n  display: flex;\\n  flex-direction: column-reverse\\n}\\n\\n.apexcharts-tooltip-box>div {\\n  margin: 4px 0\\n}\\n\\n.apexcharts-tooltip-box span.value {\\n  font-weight: 700\\n}\\n\\n.apexcharts-tooltip-rangebar {\\n  padding: 5px 8px\\n}\\n\\n.apexcharts-tooltip-rangebar .category {\\n  font-weight: 600;\\n  color: #777\\n}\\n\\n.apexcharts-tooltip-rangebar .series-name {\\n  font-weight: 700;\\n  display: block;\\n  margin-bottom: 5px\\n}\\n\\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\\n  opacity: 0;\\n  pointer-events: none;\\n  color: #373d3f;\\n  font-size: 13px;\\n  text-align: center;\\n  border-radius: 2px;\\n  position: absolute;\\n  z-index: 10;\\n  background: #eceff1;\\n  border: 1px solid #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip {\\n  padding: 9px 10px;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\\n  background: rgba(0,0,0,.7);\\n  border: 1px solid rgba(0,0,0,.5);\\n  color: #fff\\n}\\n\\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\\n  left: 50%;\\n  border: solid transparent;\\n  content: \" \";\\n  height: 0;\\n  width: 0;\\n  position: absolute;\\n  pointer-events: none\\n}\\n\\n.apexcharts-xaxistooltip:after {\\n  border-color: transparent;\\n  border-width: 6px;\\n  margin-left: -6px\\n}\\n\\n.apexcharts-xaxistooltip:before {\\n  border-color: transparent;\\n  border-width: 7px;\\n  margin-left: -7px\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\\n  bottom: 100%\\n}\\n\\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\\n  top: 100%\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after {\\n  border-bottom-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-bottom:before {\\n  border-bottom-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\\n  border-bottom-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-xaxistooltip-top:after {\\n  border-top-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-top:before {\\n  border-top-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\\n  border-top-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-active {\\n  opacity: 1;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-yaxistooltip {\\n  padding: 4px 10px\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\\n  background: rgba(0,0,0,.7);\\n  border: 1px solid rgba(0,0,0,.5);\\n  color: #fff\\n}\\n\\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\\n  top: 50%;\\n  border: solid transparent;\\n  content: \" \";\\n  height: 0;\\n  width: 0;\\n  position: absolute;\\n  pointer-events: none\\n}\\n\\n.apexcharts-yaxistooltip:after {\\n  border-color: transparent;\\n  border-width: 6px;\\n  margin-top: -6px\\n}\\n\\n.apexcharts-yaxistooltip:before {\\n  border-color: transparent;\\n  border-width: 7px;\\n  margin-top: -7px\\n}\\n\\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\\n  left: 100%\\n}\\n\\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\\n  right: 100%\\n}\\n\\n.apexcharts-yaxistooltip-left:after {\\n  border-left-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-left:before {\\n  border-left-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\\n  border-left-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-yaxistooltip-right:after {\\n  border-right-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-right:before {\\n  border-right-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\\n  border-right-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-active {\\n  opacity: 1\\n}\\n\\n.apexcharts-yaxistooltip-hidden {\\n  display: none\\n}\\n\\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\\n  pointer-events: none;\\n  opacity: 0;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\\n  opacity: 1;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-ycrosshairs-hidden {\\n  opacity: 0\\n}\\n\\n.apexcharts-selection-rect {\\n  cursor: move\\n}\\n\\n.svg_select_boundingRect,.svg_select_points_rot {\\n  pointer-events: none;\\n  opacity: 0;\\n  visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\\n  opacity: 0;\\n  visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\\n  cursor: ew-resize;\\n  opacity: 1;\\n  visibility: visible\\n}\\n\\n.svg_select_points {\\n  fill: #efefef;\\n  stroke: #333;\\n  rx: 2\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\\n  cursor: crosshair\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\\n  cursor: move\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\\n  cursor: pointer;\\n  width: 20px;\\n  height: 20px;\\n  line-height: 24px;\\n  color: #6e8192;\\n  text-align: center\\n}\\n\\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\\n  fill: #6e8192\\n}\\n\\n.apexcharts-selection-icon svg {\\n  fill: #444;\\n  transform: scale(.76)\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\\n  fill: #f3f4f5\\n}\\n\\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\\n  fill: #008ffb\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\\n  fill: #333\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-selection-icon {\\n  position: relative\\n}\\n\\n.apexcharts-reset-icon {\\n  margin-left: 5px\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\\n  transform: scale(.85)\\n}\\n\\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\\n  transform: scale(.7)\\n}\\n\\n.apexcharts-zoomout-icon {\\n  margin-right: 3px\\n}\\n\\n.apexcharts-pan-icon {\\n  transform: scale(.62);\\n  position: relative;\\n  left: 1px;\\n  top: 0\\n}\\n\\n.apexcharts-pan-icon svg {\\n  fill: #fff;\\n  stroke: #6e8192;\\n  stroke-width: 2\\n}\\n\\n.apexcharts-pan-icon.apexcharts-selected svg {\\n  stroke: #008ffb\\n}\\n\\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\\n  stroke: #333\\n}\\n\\n.apexcharts-toolbar {\\n  position: absolute;\\n  z-index: 11;\\n  max-width: 176px;\\n  text-align: right;\\n  border-radius: 3px;\\n  padding: 0 6px 2px;\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center\\n}\\n\\n.apexcharts-menu {\\n  background: #fff;\\n  position: absolute;\\n  top: 100%;\\n  border: 1px solid #ddd;\\n  border-radius: 3px;\\n  padding: 3px;\\n  right: 10px;\\n  opacity: 0;\\n  min-width: 110px;\\n  transition: .15s ease all;\\n  pointer-events: none\\n}\\n\\n.apexcharts-menu.apexcharts-menu-open {\\n  opacity: 1;\\n  pointer-events: all;\\n  transition: .15s ease all\\n}\\n\\n.apexcharts-menu-item {\\n  padding: 6px 7px;\\n  font-size: 12px;\\n  cursor: pointer\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-item:hover {\\n  background: #eee\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu {\\n  background: rgba(0,0,0,.7);\\n  color: #fff\\n}\\n\\n@media screen and (min-width:768px) {\\n  .apexcharts-canvas:hover .apexcharts-toolbar {\\n      opacity: 1\\n  }\\n}\\n\\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\\n  opacity: 0\\n}\\n\\n.apexcharts-hidden-element-shown {\\n  opacity: 1;\\n  transition: 0.25s ease all;\\n}\\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\\n  cursor: default;\\n  pointer-events: none\\n}\\n\\n.apexcharts-pie-label-delay {\\n  opacity: 0;\\n  animation-name: opaque;\\n  animation-duration: .3s;\\n  animation-fill-mode: forwards;\\n  animation-timing-function: ease\\n}\\n\\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\\n  pointer-events: none\\n}\\n\\n.apexcharts-marker {\\n  transition: .15s ease all\\n}\\n\\n.resize-triggers {\\n  animation: 1ms resizeanim;\\n  visibility: hidden;\\n  opacity: 0;\\n  height: 100%;\\n  width: 100%;\\n  overflow: hidden\\n}\\n\\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\\n  content: \" \";\\n  display: block;\\n  position: absolute;\\n  top: 0;\\n  left: 0\\n}\\n\\n.resize-triggers>div {\\n  height: 100%;\\n  width: 100%;\\n  background: #eee;\\n  overflow: auto\\n}\\n\\n.contract-trigger:before {\\n  overflow: hidden;\\n  width: 200%;\\n  height: 200%\\n}\\n\\n.apexcharts-bar-goals-markers{\\n  pointer-events: none\\n}\\n\\n.apexcharts-bar-shadows{\\n  pointer-events: none\\n}\\n\\n.apexcharts-rangebar-goals-markers{\\n  pointer-events: none\\n}',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){\"function\"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent(\"mounted\",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error(\"Element not found\"))}))}},{key:\"create\",value:function(t,e){var i=this.w;new Ot(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new z(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),\"treemap\"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new H(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),\"category\"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new O(this);return l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:n,xyRatios:o,dimensions:{plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}}}}},{key:\"mount\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error(\"Not enough data to display or target element not found\"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new j(i);var o,n,l=i.grid.drawGrid();(i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),\"back\"===a.config.grid.position)&&(l&&a.globals.dom.elGraphical.add(l.el),null!=l&&null!==(o=l.elGridBorders)&&void 0!==o&&o.node&&a.globals.dom.elGraphical.add(l.elGridBorders));if(Array.isArray(e.elGraph))for(var h=0;h<e.elGraph.length;h++)a.globals.dom.elGraphical.add(e.elGraph[h]);else a.globals.dom.elGraphical.add(e.elGraph);\"front\"===a.config.grid.position&&(l&&a.globals.dom.elGraphical.add(l.el),null!=l&&null!==(n=l.elGridBorders)&&void 0!==n&&n.node&&a.globals.dom.elGraphical.add(l.elGridBorders));\"front\"===a.config.xaxis.crosshairs.position&&i.crosshairs.drawXCrosshairs(),\"front\"===a.config.yaxis[0].crosshairs.position&&i.crosshairs.drawYCrosshairs(),\"treemap\"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,l);var c=new V(t.ctx,l),d=new q(t.ctx,l);if(null!==l&&(c.xAxisLabelCorrections(l.xAxisTickWidth),d.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&d.yAxisTitleRotate(e,t.opposite)}))),i.annotations.drawAxesAnnotations(),!a.globals.noData){if(a.config.tooltip.enabled&&!a.globals.noData&&i.w.globals.tooltip.drawTooltip(e.xyRatios),a.globals.axisCharts&&(a.globals.isXNumeric||a.config.xaxis.convertedCatToNumeric||a.globals.isRangeBar))(a.config.chart.zoom.enabled||a.config.chart.selection&&a.config.chart.selection.enabled||a.config.chart.pan&&a.config.chart.pan.enabled)&&i.zoomPanSelection.init({xyRatios:e.xyRatios});else{var g=a.config.chart.toolbar.tools;[\"zoom\",\"zoomin\",\"zoomout\",\"selection\",\"pan\",\"reset\"].forEach((function(t){g[t]=!1}))}a.config.chart.toolbar.show&&!a.globals.allSeriesCollapsed&&i.toolbar.createToolbar()}a.globals.memory.methodsToExec.length>0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:\"destroy\",value:function(){var t,e;window.removeEventListener(\"resize\",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Wt.get(t))&&(e.disconnect(),Wt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Nt(this.ctx).clear({isUpdating:!1})}},{key:\"updateOptions\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:\"updateSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:\"appendSeries\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:\"appendData\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s<a.length;s++)if(null!==t[s]&&void 0!==t[s])for(var r=0;r<t[s].data.length;r++)a[s].data.push(t[s].data[r]);return i.w.config.series=a,e&&(i.w.globals.initialSeries=x.clone(i.w.config.series)),this.update()}},{key:\"update\",value:function(t){var e=this;return new Promise((function(i,a){new Nt(e.ctx).clear({isUpdating:!0});var s=e.create(e.w.config.series,t);if(!s)return i(e);e.mount(s).then((function(){\"function\"==typeof e.w.config.chart.events.updated&&e.w.config.chart.events.updated(e,e.w),e.events.fireEvent(\"updated\",[e,e.w]),e.w.globals.isDirty=!0,i(e)})).catch((function(t){a(t)}))}))}},{key:\"getSyncedCharts\",value:function(){var t=this.getGroupedCharts(),e=[this];return t.length&&(e=[],t.forEach((function(t){e.push(t)}))),e}},{key:\"getGroupedCharts\",value:function(){var t=this;return Apex._chartInstances.filter((function(t){if(t.group)return!0})).map((function(e){return t.w.config.chart.group===e.group?e.chart:t}))}},{key:\"toggleSeries\",value:function(t){return this.series.toggleSeries(t)}},{key:\"highlightSeriesOnLegendHover\",value:function(t,e){return this.series.toggleSeriesOnHover(t,e)}},{key:\"showSeries\",value:function(t){this.series.showSeries(t)}},{key:\"hideSeries\",value:function(t){this.series.hideSeries(t)}},{key:\"resetSeries\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:\"addEventListener\",value:function(t,e){this.events.addEventListener(t,e)}},{key:\"removeEventListener\",value:function(t,e){this.events.removeEventListener(t,e)}},{key:\"addXaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:\"addYaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:\"addPointAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:\"clearAnnotations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:\"removeAnnotation\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:\"getChartArea\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner\")}},{key:\"getSeriesTotalXRange\",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:\"getHighestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).highestY}},{key:\"getLowestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).lowestY}},{key:\"getSeriesTotal\",value:function(){return this.w.globals.seriesTotals}},{key:\"toggleDataPointSelection\",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:\"zoomX\",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:\"setLocale\",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:\"dataURI\",value:function(t){return new G(this.ctx).dataURI(t)}},{key:\"exportToCSV\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new G(this.ctx).exportToCSV(t)}},{key:\"paper\",value:function(){return this.w.globals.dom.Paper}},{key:\"_parentResizeCallback\",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:\"_windowResize\",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:\"_windowResizeHandler\",value:function(){var t=this.w.config.chart.redrawOnWindowResize;\"function\"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:\"getChartByID\",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:\"initOnLoad\",value:function(){for(var e=document.querySelectorAll(\"[data-apexcharts]\"),i=0;i<e.length;i++){new t(e[i],JSON.parse(e[i].getAttribute(\"data-options\"))).render()}}},{key:\"exec\",value:function(t,e){var i=this.getChartByID(t);if(i){i.w.globals.isExecCalled=!0;var a=null;if(-1!==i.publicMethods.indexOf(e)){for(var s=arguments.length,r=new Array(s>2?s-2:0),o=2;o<s;o++)r[o-2]=arguments[o];a=i[e].apply(i,r)}return a}}},{key:\"merge\",value:function(t,e){return x.extend(t,e)}}]),t}();module.exports=Bt;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n  (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n    ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n    : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n    typeof console.error === 'function') {\n  console.error(\n    'This browser lacks typed array (Uint8Array) support which is required by ' +\n    '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n  )\n}\n\nfunction typedArraySupport () {\n  // Can typed array instances can be augmented?\n  try {\n    const arr = new Uint8Array(1)\n    const proto = { foo: function () { return 42 } }\n    Object.setPrototypeOf(proto, Uint8Array.prototype)\n    Object.setPrototypeOf(arr, proto)\n    return arr.foo() === 42\n  } catch (e) {\n    return false\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.buffer\n  }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.byteOffset\n  }\n})\n\nfunction createBuffer (length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n  }\n  // Return an augmented `Uint8Array` instance\n  const buf = new Uint8Array(length)\n  Object.setPrototypeOf(buf, Buffer.prototype)\n  return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError(\n        'The \"string\" argument must be of type string. Received type number'\n      )\n    }\n    return allocUnsafe(arg)\n  }\n  return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset)\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value)\n  }\n\n  if (value == null) {\n    throw new TypeError(\n      'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n      'or Array-like Object. Received type ' + (typeof value)\n    )\n  }\n\n  if (isInstance(value, ArrayBuffer) ||\n      (value && isInstance(value.buffer, ArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' &&\n      (isInstance(value, SharedArrayBuffer) ||\n      (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError(\n      'The \"value\" argument must not be of type number. Received type number'\n    )\n  }\n\n  const valueOf = value.valueOf && value.valueOf()\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length)\n  }\n\n  const b = fromObject(value)\n  if (b) return b\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n      typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n  }\n\n  throw new TypeError(\n    'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n    'or Array-like Object. Received type ' + (typeof value)\n  )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number')\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpreted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(size).fill(fill, encoding)\n      : createBuffer(size).fill(fill)\n  }\n  return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n  assertSize(size)\n  return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding)\n  }\n\n  const length = byteLength(string, encoding) | 0\n  let buf = createBuffer(length)\n\n  const actual = buf.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    buf = buf.slice(0, actual)\n  }\n\n  return buf\n}\n\nfunction fromArrayLike (array) {\n  const length = array.length < 0 ? 0 : checked(array.length) | 0\n  const buf = createBuffer(length)\n  for (let i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255\n  }\n  return buf\n}\n\nfunction fromArrayView (arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    const copy = new Uint8Array(arrayView)\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n  }\n  return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds')\n  }\n\n  let buf\n  if (byteOffset === undefined && length === undefined) {\n    buf = new Uint8Array(array)\n  } else if (length === undefined) {\n    buf = new Uint8Array(array, byteOffset)\n  } else {\n    buf = new Uint8Array(array, byteOffset, length)\n  }\n\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(buf, Buffer.prototype)\n\n  return buf\n}\n\nfunction fromObject (obj) {\n  if (Buffer.isBuffer(obj)) {\n    const len = checked(obj.length) | 0\n    const buf = createBuffer(len)\n\n    if (buf.length === 0) {\n      return buf\n    }\n\n    obj.copy(buf, 0, 0, len)\n    return buf\n  }\n\n  if (obj.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0)\n    }\n    return fromArrayLike(obj)\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data)\n  }\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= K_MAX_LENGTH) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return b != null && b._isBuffer === true &&\n    b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError(\n      'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n    )\n  }\n\n  if (a === b) return 0\n\n  let x = a.length\n  let y = b.length\n\n  for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!Array.isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  let i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  const buffer = Buffer.allocUnsafe(length)\n  let pos = 0\n  for (i = 0; i < list.length; ++i) {\n    let buf = list[i]\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n        buf.copy(buffer, pos)\n      } else {\n        Uint8Array.prototype.set.call(\n          buffer,\n          buf,\n          pos\n        )\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    } else {\n      buf.copy(buffer, pos)\n    }\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    throw new TypeError(\n      'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n      'Received type ' + typeof string\n    )\n  }\n\n  const len = string.length\n  const mustMatch = (arguments.length > 2 && arguments[2] === true)\n  if (!mustMatch && len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) {\n          return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n        }\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  let loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  const i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  const len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (let i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  const len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (let i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  const len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (let i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  const length = this.length\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  let str = ''\n  const max = exports.INSPECT_MAX_BYTES\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n  if (this.length > max) str += ' ... '\n  return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength)\n  }\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError(\n      'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n      'Received type ' + (typeof target)\n    )\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  let x = thisEnd - thisStart\n  let y = end - start\n  const len = Math.min(x, y)\n\n  const thisCopy = this.slice(thisStart, thisEnd)\n  const targetCopy = target.slice(start, end)\n\n  for (let i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset // Coerce to Number.\n  if (numberIsNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  let indexSize = 1\n  let arrLength = arr.length\n  let valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  let i\n  if (dir) {\n    let foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      let found = true\n      for (let j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  const remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  const strLen = string.length\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  let i\n  for (i = 0; i < length; ++i) {\n    const parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (numberIsNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset >>> 0\n    if (isFinite(length)) {\n      length = length >>> 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  const remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return asciiWrite(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  const res = []\n\n  let i = start\n  while (i < end) {\n    const firstByte = buf[i]\n    let codePoint = null\n    let bytesPerSequence = (firstByte > 0xEF)\n      ? 4\n      : (firstByte > 0xDF)\n          ? 3\n          : (firstByte > 0xBF)\n              ? 2\n              : 1\n\n    if (i + bytesPerSequence <= end) {\n      let secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  const len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  let res = ''\n  let i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  const len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  let out = ''\n  for (let i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]]\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  const bytes = buf.slice(start, end)\n  let res = ''\n  // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n  for (let i = 0; i < bytes.length - 1; i += 2) {\n    res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  const len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  const newBuf = this.subarray(start, end)\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  let val = this[offset + --byteLength]\n  let mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const lo = first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24\n\n  const hi = this[++offset] +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    last * 2 ** 24\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const hi = first * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  const lo = this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last\n\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let i = byteLength\n  let mul = 1\n  let val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = this[offset + 4] +\n    this[offset + 5] * 2 ** 8 +\n    this[offset + 6] * 2 ** 16 +\n    (last << 24) // Overflow\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = (first << 24) + // Overflow\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let mul = 1\n  let i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset + 3] = (value >>> 24)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 1] = (value >>> 8)\n  this[offset] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset + 7] = lo\n  lo = lo >> 8\n  buf[offset + 6] = lo\n  lo = lo >> 8\n  buf[offset + 5] = lo\n  lo = lo >> 8\n  buf[offset + 4] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset + 3] = hi\n  hi = hi >> 8\n  buf[offset + 2] = hi\n  hi = hi >> 8\n  buf[offset + 1] = hi\n  hi = hi >> 8\n  buf[offset] = hi\n  return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = 0\n  let mul = 1\n  let sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  let sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 3] = (value >>> 24)\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  const len = end - start\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end)\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, end),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n    if (val.length === 1) {\n      const code = val.charCodeAt(0)\n      if ((encoding === 'utf8' && code < 128) ||\n          encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  } else if (typeof val === 'boolean') {\n    val = Number(val)\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  let i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    const bytes = Buffer.isBuffer(val)\n      ? val\n      : Buffer.from(val, encoding)\n    const len = bytes.length\n    if (len === 0) {\n      throw new TypeError('The value \"' + val +\n        '\" is invalid for argument \"value\"')\n    }\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n  errors[sym] = class NodeError extends Base {\n    constructor () {\n      super()\n\n      Object.defineProperty(this, 'message', {\n        value: getMessage.apply(this, arguments),\n        writable: true,\n        configurable: true\n      })\n\n      // Add the error code to the name to include it in the stack trace.\n      this.name = `${this.name} [${sym}]`\n      // Access the stack to generate the error message including the error code\n      // from the name.\n      this.stack // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n      delete this.name\n    }\n\n    get code () {\n      return sym\n    }\n\n    set code (value) {\n      Object.defineProperty(this, 'code', {\n        configurable: true,\n        enumerable: true,\n        value,\n        writable: true\n      })\n    }\n\n    toString () {\n      return `${this.name} [${sym}]: ${this.message}`\n    }\n  }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n  function (name) {\n    if (name) {\n      return `${name} is outside of buffer bounds`\n    }\n\n    return 'Attempt to access memory outside buffer bounds'\n  }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n  function (name, actual) {\n    return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n  }, TypeError)\nE('ERR_OUT_OF_RANGE',\n  function (str, range, input) {\n    let msg = `The value of \"${str}\" is out of range.`\n    let received = input\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    }\n    msg += ` It must be ${range}. Received ${received}`\n    return msg\n  }, RangeError)\n\nfunction addNumericalSeparator (val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n  validateNumber(offset, 'offset')\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1))\n  }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    const n = typeof min === 'bigint' ? 'n' : ''\n    let range\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n      } else {\n        range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n                `${(byteLength + 1) * 8 - 1}${n}`\n      }\n    } else {\n      range = `>= ${min}${n} and <= ${max}${n}`\n    }\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n  }\n  checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n}\n\nfunction boundsError (value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type)\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n                                    `>= ${type ? 1 : 0} and <= ${length}`,\n                                    value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = str.trim().replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  let codePoint\n  const length = string.length\n  let leadSurrogate = null\n  const bytes = []\n\n  for (let i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  let c, hi, lo\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  let i\n  for (i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n  return obj instanceof type ||\n    (obj != null && obj.constructor != null && obj.constructor.name != null &&\n      obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n  // For IE11 support\n  return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n  const alphabet = '0123456789abcdef'\n  const table = new Array(256)\n  for (let i = 0; i < 16; ++i) {\n    const i16 = i * 16\n    for (let j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j]\n    }\n  }\n  return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n  throw new Error('BigInt not supported')\n}\n","/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function dateLongFormatter(pattern, formatLong) {\n  switch (pattern) {\n    case 'P':\n      return formatLong.date({\n        width: 'short'\n      });\n\n    case 'PP':\n      return formatLong.date({\n        width: 'medium'\n      });\n\n    case 'PPP':\n      return formatLong.date({\n        width: 'long'\n      });\n\n    case 'PPPP':\n    default:\n      return formatLong.date({\n        width: 'full'\n      });\n  }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n  switch (pattern) {\n    case 'p':\n      return formatLong.time({\n        width: 'short'\n      });\n\n    case 'pp':\n      return formatLong.time({\n        width: 'medium'\n      });\n\n    case 'ppp':\n      return formatLong.time({\n        width: 'long'\n      });\n\n    case 'pppp':\n    default:\n      return formatLong.time({\n        width: 'full'\n      });\n  }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n  var matchResult = pattern.match(/(P+)(p+)?/) || [];\n  var datePattern = matchResult[1];\n  var timePattern = matchResult[2];\n\n  if (!timePattern) {\n    return dateLongFormatter(pattern, formatLong);\n  }\n\n  var dateTimeFormat;\n\n  switch (datePattern) {\n    case 'P':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'short'\n      });\n      break;\n\n    case 'PP':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'medium'\n      });\n      break;\n\n    case 'PPP':\n      dateTimeFormat = formatLong.dateTime({\n        width: 'long'\n      });\n      break;\n\n    case 'PPPP':\n    default:\n      dateTimeFormat = formatLong.dateTime({\n        width: 'full'\n      });\n      break;\n  }\n\n  return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n  p: timeLongFormatter,\n  P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n  var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n  utcDate.setUTCFullYear(date.getFullYear());\n  return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getUTCFullYear();\n  var fourthOfJanuaryOfNextYear = new Date(0);\n  fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n  fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n  var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n  var fourthOfJanuaryOfThisYear = new Date(0);\n  fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n  fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n  var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var year = getUTCISOWeekYear(dirtyDate);\n  var fourthOfJanuary = new Date(0);\n  fourthOfJanuary.setUTCFullYear(year, 0, 4);\n  fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n  var date = startOfUTCISOWeek(fourthOfJanuary);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getUTCFullYear();\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var firstWeekOfNextYear = new Date(0);\n  firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n  firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n  var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n  var firstWeekOfThisYear = new Date(0);\n  firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n  firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n  var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n  var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n  var firstWeek = new Date(0);\n  firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n  firstWeek.setUTCHours(0, 0, 0, 0);\n  var date = startOfUTCWeek(firstWeek, dirtyOptions);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n  return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n  return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n  if (token === 'YYYY') {\n    throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'YY') {\n    throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'D') {\n    throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  } else if (token === 'DD') {\n    throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n  }\n}","export default function requiredArgs(required, args) {\n  if (args.length < required) {\n    throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n  }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var weekStartsOn = 1;\n  var date = toDate(dirtyDate);\n  var day = date.getUTCDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setUTCDate(date.getUTCDate() - diff);\n  date.setUTCHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  var date = toDate(dirtyDate);\n  var day = date.getUTCDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setUTCDate(date.getUTCDate() - diff);\n  date.setUTCHours(0, 0, 0, 0);\n  return date;\n}","export default function toInteger(dirtyNumber) {\n  if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n    return NaN;\n  }\n\n  var number = Number(dirtyNumber);\n\n  if (isNaN(number)) {\n    return number;\n  }\n\n  return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var amount = toInteger(dirtyAmount);\n\n  if (isNaN(amount)) {\n    return new Date(NaN);\n  }\n\n  if (!amount) {\n    // If 0 days, no-op to avoid changing times in the hour before end of DST\n    return date;\n  }\n\n  date.setDate(date.getDate() + amount);\n  return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var timestamp = toDate(dirtyDate).getTime();\n  var amount = toInteger(dirtyAmount);\n  return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var amount = toInteger(dirtyAmount);\n\n  if (isNaN(amount)) {\n    return new Date(NaN);\n  }\n\n  if (!amount) {\n    // If 0 months, no-op to avoid changing times in the hour before end of DST\n    return date;\n  }\n\n  var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n  // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n  // new Date(2020, 13, 1) returns 1 Feb 2021.  This is *almost* the behavior we\n  // want except that dates will wrap around the end of a month, meaning that\n  // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n  // we'll default to the end of the desired month by adding 1 to the desired\n  // month and using a date of 0 to back up one day to the end of the desired\n  // month.\n\n  var endOfDesiredMonth = new Date(date.getTime());\n  endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n  var daysInMonth = endOfDesiredMonth.getDate();\n\n  if (dayOfMonth >= daysInMonth) {\n    // If we're already at the end of the month, then this is the correct date\n    // and we're done.\n    return endOfDesiredMonth;\n  } else {\n    // Otherwise, we now know that setting the original day-of-month value won't\n    // cause an overflow, so set the desired day-of-month. Note that we can't\n    // just set the date of `endOfDesiredMonth` because that object may have had\n    // its time changed in the unusual case where where a DST transition was on\n    // the last day of the month and its local time was in the hour skipped or\n    // repeated next to a DST transition.  So we use `date` instead which is\n    // guaranteed to still have the original time.\n    date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n    return date;\n  }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  var days = amount * 7;\n  return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMonths(dirtyDate, amount * 12);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var startOfDayLeft = startOfDay(dirtyDateLeft);\n  var startOfDayRight = startOfDay(dirtyDateRight);\n  var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n  var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n *   new Date(2014, 8, 1),\n *   new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n  var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n  return yearDiff * 12 + monthDiff;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5),\n *   { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n  var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n  var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n  var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n *   new Date(2015, 1, 11),\n *   new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setHours(23, 59, 59, 999);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var month = date.getMonth();\n  date.setFullYear(date.getFullYear(), month + 1, 0);\n  date.setHours(23, 59, 59, 999);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  var date = toDate(dirtyDate);\n  var day = date.getDay();\n  var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n  date.setDate(date.getDate() + diff);\n  date.setHours(23, 59, 59, 999);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var timestamp = date.getTime();\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n  var startOfYearTimestamp = date.getTime();\n  var difference = timestamp - startOfYearTimestamp;\n  return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n  var sign = number < 0 ? '-' : '';\n  var output = Math.abs(number).toString();\n\n  while (output.length < targetLength) {\n    output = '0' + output;\n  }\n\n  return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* |                                |\n * |  d  | Day of month                   |  D  |                                |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  m  | Minute                         |  M  | Month                          |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  y  | Year (abs)                     |  Y  |                                |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n  // Year\n  y: function (date, token) {\n    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n    // |----------|-------|----|-------|-------|-------|\n    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n    var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n    var year = signedYear > 0 ? signedYear : 1 - signedYear;\n    return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n  },\n  // Month\n  M: function (date, token) {\n    var month = date.getUTCMonth();\n    return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n  },\n  // Day of the month\n  d: function (date, token) {\n    return addLeadingZeros(date.getUTCDate(), token.length);\n  },\n  // AM or PM\n  a: function (date, token) {\n    var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n    switch (token) {\n      case 'a':\n      case 'aa':\n        return dayPeriodEnumValue.toUpperCase();\n\n      case 'aaa':\n        return dayPeriodEnumValue;\n\n      case 'aaaaa':\n        return dayPeriodEnumValue[0];\n\n      case 'aaaa':\n      default:\n        return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token) {\n    return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n  },\n  // Hour [0-23]\n  H: function (date, token) {\n    return addLeadingZeros(date.getUTCHours(), token.length);\n  },\n  // Minute\n  m: function (date, token) {\n    return addLeadingZeros(date.getUTCMinutes(), token.length);\n  },\n  // Second\n  s: function (date, token) {\n    return addLeadingZeros(date.getUTCSeconds(), token.length);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    var numberOfDigits = token.length;\n    var milliseconds = date.getUTCMilliseconds();\n    var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n    return addLeadingZeros(fractionalSeconds, token.length);\n  }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n  am: 'am',\n  pm: 'pm',\n  midnight: 'midnight',\n  noon: 'noon',\n  morning: 'morning',\n  afternoon: 'afternoon',\n  evening: 'evening',\n  night: 'night'\n};\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |\n * |  p! | Long localized time            |  P! | Long localized date            |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n  // Era\n  G: function (date, token, localize) {\n    var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n    switch (token) {\n      // AD, BC\n      case 'G':\n      case 'GG':\n      case 'GGG':\n        return localize.era(era, {\n          width: 'abbreviated'\n        });\n      // A, B\n\n      case 'GGGGG':\n        return localize.era(era, {\n          width: 'narrow'\n        });\n      // Anno Domini, Before Christ\n\n      case 'GGGG':\n      default:\n        return localize.era(era, {\n          width: 'wide'\n        });\n    }\n  },\n  // Year\n  y: function (date, token, localize) {\n    // Ordinal number\n    if (token === 'yo') {\n      var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n      var year = signedYear > 0 ? signedYear : 1 - signedYear;\n      return localize.ordinalNumber(year, {\n        unit: 'year'\n      });\n    }\n\n    return lightFormatters.y(date, token);\n  },\n  // Local week-numbering year\n  Y: function (date, token, localize, options) {\n    var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n    var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n    if (token === 'YY') {\n      var twoDigitYear = weekYear % 100;\n      return addLeadingZeros(twoDigitYear, 2);\n    } // Ordinal number\n\n\n    if (token === 'Yo') {\n      return localize.ordinalNumber(weekYear, {\n        unit: 'year'\n      });\n    } // Padding\n\n\n    return addLeadingZeros(weekYear, token.length);\n  },\n  // ISO week-numbering year\n  R: function (date, token) {\n    var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n    return addLeadingZeros(isoWeekYear, token.length);\n  },\n  // Extended year. This is a single number designating the year of this calendar system.\n  // The main difference between `y` and `u` localizers are B.C. years:\n  // | Year | `y` | `u` |\n  // |------|-----|-----|\n  // | AC 1 |   1 |   1 |\n  // | BC 1 |   1 |   0 |\n  // | BC 2 |   2 |  -1 |\n  // Also `yy` always returns the last two digits of a year,\n  // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n  u: function (date, token) {\n    var year = date.getUTCFullYear();\n    return addLeadingZeros(year, token.length);\n  },\n  // Quarter\n  Q: function (date, token, localize) {\n    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n    switch (token) {\n      // 1, 2, 3, 4\n      case 'Q':\n        return String(quarter);\n      // 01, 02, 03, 04\n\n      case 'QQ':\n        return addLeadingZeros(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n\n      case 'Qo':\n        return localize.ordinalNumber(quarter, {\n          unit: 'quarter'\n        });\n      // Q1, Q2, Q3, Q4\n\n      case 'QQQ':\n        return localize.quarter(quarter, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n      case 'QQQQQ':\n        return localize.quarter(quarter, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // 1st quarter, 2nd quarter, ...\n\n      case 'QQQQ':\n      default:\n        return localize.quarter(quarter, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone quarter\n  q: function (date, token, localize) {\n    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n    switch (token) {\n      // 1, 2, 3, 4\n      case 'q':\n        return String(quarter);\n      // 01, 02, 03, 04\n\n      case 'qq':\n        return addLeadingZeros(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n\n      case 'qo':\n        return localize.ordinalNumber(quarter, {\n          unit: 'quarter'\n        });\n      // Q1, Q2, Q3, Q4\n\n      case 'qqq':\n        return localize.quarter(quarter, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n      case 'qqqqq':\n        return localize.quarter(quarter, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // 1st quarter, 2nd quarter, ...\n\n      case 'qqqq':\n      default:\n        return localize.quarter(quarter, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // Month\n  M: function (date, token, localize) {\n    var month = date.getUTCMonth();\n\n    switch (token) {\n      case 'M':\n      case 'MM':\n        return lightFormatters.M(date, token);\n      // 1st, 2nd, ..., 12th\n\n      case 'Mo':\n        return localize.ordinalNumber(month + 1, {\n          unit: 'month'\n        });\n      // Jan, Feb, ..., Dec\n\n      case 'MMM':\n        return localize.month(month, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // J, F, ..., D\n\n      case 'MMMMM':\n        return localize.month(month, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // January, February, ..., December\n\n      case 'MMMM':\n      default:\n        return localize.month(month, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone month\n  L: function (date, token, localize) {\n    var month = date.getUTCMonth();\n\n    switch (token) {\n      // 1, 2, ..., 12\n      case 'L':\n        return String(month + 1);\n      // 01, 02, ..., 12\n\n      case 'LL':\n        return addLeadingZeros(month + 1, 2);\n      // 1st, 2nd, ..., 12th\n\n      case 'Lo':\n        return localize.ordinalNumber(month + 1, {\n          unit: 'month'\n        });\n      // Jan, Feb, ..., Dec\n\n      case 'LLL':\n        return localize.month(month, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // J, F, ..., D\n\n      case 'LLLLL':\n        return localize.month(month, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // January, February, ..., December\n\n      case 'LLLL':\n      default:\n        return localize.month(month, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // Local week of year\n  w: function (date, token, localize, options) {\n    var week = getUTCWeek(date, options);\n\n    if (token === 'wo') {\n      return localize.ordinalNumber(week, {\n        unit: 'week'\n      });\n    }\n\n    return addLeadingZeros(week, token.length);\n  },\n  // ISO week of year\n  I: function (date, token, localize) {\n    var isoWeek = getUTCISOWeek(date);\n\n    if (token === 'Io') {\n      return localize.ordinalNumber(isoWeek, {\n        unit: 'week'\n      });\n    }\n\n    return addLeadingZeros(isoWeek, token.length);\n  },\n  // Day of the month\n  d: function (date, token, localize) {\n    if (token === 'do') {\n      return localize.ordinalNumber(date.getUTCDate(), {\n        unit: 'date'\n      });\n    }\n\n    return lightFormatters.d(date, token);\n  },\n  // Day of year\n  D: function (date, token, localize) {\n    var dayOfYear = getUTCDayOfYear(date);\n\n    if (token === 'Do') {\n      return localize.ordinalNumber(dayOfYear, {\n        unit: 'dayOfYear'\n      });\n    }\n\n    return addLeadingZeros(dayOfYear, token.length);\n  },\n  // Day of week\n  E: function (date, token, localize) {\n    var dayOfWeek = date.getUTCDay();\n\n    switch (token) {\n      // Tue\n      case 'E':\n      case 'EE':\n      case 'EEE':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'EEEEE':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'EEEEEE':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'EEEE':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Local day of week\n  e: function (date, token, localize, options) {\n    var dayOfWeek = date.getUTCDay();\n    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n    switch (token) {\n      // Numerical value (Nth day of week with current locale or weekStartsOn)\n      case 'e':\n        return String(localDayOfWeek);\n      // Padded numerical value\n\n      case 'ee':\n        return addLeadingZeros(localDayOfWeek, 2);\n      // 1st, 2nd, ..., 7th\n\n      case 'eo':\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: 'day'\n        });\n\n      case 'eee':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'eeeee':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'eeeeee':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'eeee':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Stand-alone local day of week\n  c: function (date, token, localize, options) {\n    var dayOfWeek = date.getUTCDay();\n    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n    switch (token) {\n      // Numerical value (same as in `e`)\n      case 'c':\n        return String(localDayOfWeek);\n      // Padded numerical value\n\n      case 'cc':\n        return addLeadingZeros(localDayOfWeek, token.length);\n      // 1st, 2nd, ..., 7th\n\n      case 'co':\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: 'day'\n        });\n\n      case 'ccc':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'standalone'\n        });\n      // T\n\n      case 'ccccc':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'standalone'\n        });\n      // Tu\n\n      case 'cccccc':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'standalone'\n        });\n      // Tuesday\n\n      case 'cccc':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'standalone'\n        });\n    }\n  },\n  // ISO day of week\n  i: function (date, token, localize) {\n    var dayOfWeek = date.getUTCDay();\n    var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n    switch (token) {\n      // 2\n      case 'i':\n        return String(isoDayOfWeek);\n      // 02\n\n      case 'ii':\n        return addLeadingZeros(isoDayOfWeek, token.length);\n      // 2nd\n\n      case 'io':\n        return localize.ordinalNumber(isoDayOfWeek, {\n          unit: 'day'\n        });\n      // Tue\n\n      case 'iii':\n        return localize.day(dayOfWeek, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n      // T\n\n      case 'iiiii':\n        return localize.day(dayOfWeek, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n      // Tu\n\n      case 'iiiiii':\n        return localize.day(dayOfWeek, {\n          width: 'short',\n          context: 'formatting'\n        });\n      // Tuesday\n\n      case 'iiii':\n      default:\n        return localize.day(dayOfWeek, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // AM or PM\n  a: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n    switch (token) {\n      case 'a':\n      case 'aa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'aaa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        }).toLowerCase();\n\n      case 'aaaaa':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'aaaa':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // AM, PM, midnight, noon\n  b: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue;\n\n    if (hours === 12) {\n      dayPeriodEnumValue = dayPeriodEnum.noon;\n    } else if (hours === 0) {\n      dayPeriodEnumValue = dayPeriodEnum.midnight;\n    } else {\n      dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n    }\n\n    switch (token) {\n      case 'b':\n      case 'bb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'bbb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        }).toLowerCase();\n\n      case 'bbbbb':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'bbbb':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // in the morning, in the afternoon, in the evening, at night\n  B: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    var dayPeriodEnumValue;\n\n    if (hours >= 17) {\n      dayPeriodEnumValue = dayPeriodEnum.evening;\n    } else if (hours >= 12) {\n      dayPeriodEnumValue = dayPeriodEnum.afternoon;\n    } else if (hours >= 4) {\n      dayPeriodEnumValue = dayPeriodEnum.morning;\n    } else {\n      dayPeriodEnumValue = dayPeriodEnum.night;\n    }\n\n    switch (token) {\n      case 'B':\n      case 'BB':\n      case 'BBB':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'abbreviated',\n          context: 'formatting'\n        });\n\n      case 'BBBBB':\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'narrow',\n          context: 'formatting'\n        });\n\n      case 'BBBB':\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: 'wide',\n          context: 'formatting'\n        });\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token, localize) {\n    if (token === 'ho') {\n      var hours = date.getUTCHours() % 12;\n      if (hours === 0) hours = 12;\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return lightFormatters.h(date, token);\n  },\n  // Hour [0-23]\n  H: function (date, token, localize) {\n    if (token === 'Ho') {\n      return localize.ordinalNumber(date.getUTCHours(), {\n        unit: 'hour'\n      });\n    }\n\n    return lightFormatters.H(date, token);\n  },\n  // Hour [0-11]\n  K: function (date, token, localize) {\n    var hours = date.getUTCHours() % 12;\n\n    if (token === 'Ko') {\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return addLeadingZeros(hours, token.length);\n  },\n  // Hour [1-24]\n  k: function (date, token, localize) {\n    var hours = date.getUTCHours();\n    if (hours === 0) hours = 24;\n\n    if (token === 'ko') {\n      return localize.ordinalNumber(hours, {\n        unit: 'hour'\n      });\n    }\n\n    return addLeadingZeros(hours, token.length);\n  },\n  // Minute\n  m: function (date, token, localize) {\n    if (token === 'mo') {\n      return localize.ordinalNumber(date.getUTCMinutes(), {\n        unit: 'minute'\n      });\n    }\n\n    return lightFormatters.m(date, token);\n  },\n  // Second\n  s: function (date, token, localize) {\n    if (token === 'so') {\n      return localize.ordinalNumber(date.getUTCSeconds(), {\n        unit: 'second'\n      });\n    }\n\n    return lightFormatters.s(date, token);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    return lightFormatters.S(date, token);\n  },\n  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n  X: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    if (timezoneOffset === 0) {\n      return 'Z';\n    }\n\n    switch (token) {\n      // Hours and optional minutes\n      case 'X':\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XX`\n\n      case 'XXXX':\n      case 'XX':\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XXX`\n\n      case 'XXXXX':\n      case 'XXX': // Hours and minutes with `:` delimiter\n\n      default:\n        return formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n  x: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Hours and optional minutes\n      case 'x':\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xx`\n\n      case 'xxxx':\n      case 'xx':\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xxx`\n\n      case 'xxxxx':\n      case 'xxx': // Hours and minutes with `:` delimiter\n\n      default:\n        return formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (GMT)\n  O: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Short\n      case 'O':\n      case 'OO':\n      case 'OOO':\n        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n      // Long\n\n      case 'OOOO':\n      default:\n        return 'GMT' + formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Timezone (specific non-location)\n  z: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timezoneOffset = originalDate.getTimezoneOffset();\n\n    switch (token) {\n      // Short\n      case 'z':\n      case 'zz':\n      case 'zzz':\n        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n      // Long\n\n      case 'zzzz':\n      default:\n        return 'GMT' + formatTimezone(timezoneOffset, ':');\n    }\n  },\n  // Seconds timestamp\n  t: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timestamp = Math.floor(originalDate.getTime() / 1000);\n    return addLeadingZeros(timestamp, token.length);\n  },\n  // Milliseconds timestamp\n  T: function (date, token, _localize, options) {\n    var originalDate = options._originalDate || date;\n    var timestamp = originalDate.getTime();\n    return addLeadingZeros(timestamp, token.length);\n  }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n  var sign = offset > 0 ? '-' : '+';\n  var absOffset = Math.abs(offset);\n  var hours = Math.floor(absOffset / 60);\n  var minutes = absOffset % 60;\n\n  if (minutes === 0) {\n    return sign + String(hours);\n  }\n\n  var delimiter = dirtyDelimiter || '';\n  return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n  if (offset % 60 === 0) {\n    var sign = offset > 0 ? '-' : '+';\n    return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n  }\n\n  return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n  var delimiter = dirtyDelimiter || '';\n  var sign = offset > 0 ? '-' : '+';\n  var absOffset = Math.abs(offset);\n  var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n  var minutes = addLeadingZeros(absOffset % 60, 2);\n  return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit                            | Pattern | Result examples                   | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era                             | G..GGG  | AD, BC                            |       |\n * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 | GGGGG   | A, B                              |       |\n * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |\n * |                                 | yy      | 44, 01, 00, 17                    | 5     |\n * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |\n * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |\n * |                                 | yyyyy   | ...                               | 3,5   |\n * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |\n * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |\n * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |\n * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |\n * |                                 | YYYYY   | ...                               | 3,5   |\n * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |\n * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |\n * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |\n * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |\n * |                                 | RRRRR   | ...                               | 3,5,7 |\n * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |\n * |                                 | uu      | -43, 01, 1900, 2017               | 5     |\n * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |\n * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |\n * |                                 | uuuuu   | ...                               | 3,5   |\n * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |\n * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | QQ      | 01, 02, 03, 04                    |       |\n * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |\n * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | qq      | 01, 02, 03, 04                    |       |\n * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |\n * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |\n * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | MM      | 01, 02, ..., 12                   |       |\n * |                                 | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 | MMMM    | January, February, ..., December  | 2     |\n * |                                 | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |\n * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | LL      | 01, 02, ..., 12                   |       |\n * |                                 | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 | LLLL    | January, February, ..., December  | 2     |\n * |                                 | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | w       | 1, 2, ..., 53                     |       |\n * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |\n * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | II      | 01, 02, ..., 53                   | 7     |\n * | Day of month                    | d       | 1, 2, ..., 31                     |       |\n * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |\n * |                                 | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |\n * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |\n * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |\n * |                                 | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 | DDDD    | ...                               | 3     |\n * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |\n * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |\n * |                                 | ii      | 01, 02, ..., 07                   | 7     |\n * |                                 | iii     | Mon, Tue, Wed, ..., Sun           | 7     |\n * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |\n * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |\n * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 7     |\n * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | ee      | 02, 03, ..., 01                   |       |\n * |                                 | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | cc      | 02, 03, ..., 01                   |       |\n * |                                 | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          | a..aa   | AM, PM                            |       |\n * |                                 | aaa     | am, pm                            |       |\n * |                                 | aaaa    | a.m., p.m.                        | 2     |\n * |                                 | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          | b..bb   | AM, PM, noon, midnight            |       |\n * |                                 | bbb     | am, pm, noon, midnight            |       |\n * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |\n * |                                 | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |\n * |                                 | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |\n * |                                 | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |\n * |                                 | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |\n * |                                 | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          | m       | 0, 1, ..., 59                     |       |\n * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | mm      | 00, 01, ..., 59                   |       |\n * | Second                          | s       | 0, 1, ..., 59                     |       |\n * |                                 | so      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | ss      | 00, 01, ..., 59                   |       |\n * | Fraction of second              | S       | 0, 1, ..., 9                      |       |\n * |                                 | SS      | 00, 01, ..., 99                   |       |\n * |                                 | SSS     | 000, 001, ..., 999                |       |\n * |                                 | SSSS    | ...                               | 3     |\n * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |\n * |                                 | XX      | -0800, +0530, Z                   |       |\n * |                                 | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |\n * |                                 | xx      | -0800, +0530, +0000               |       |\n * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |\n * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |\n * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |\n * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |\n * | Seconds timestamp               | t       | 512969520                         | 7     |\n * |                                 | tt      | ...                               | 3,7   |\n * | Milliseconds timestamp          | T       | 512969520900                      | 7     |\n * |                                 | TT      | ...                               | 3,7   |\n * | Long localized date             | P       | 04/29/1453                        | 7     |\n * |                                 | PP      | Apr 29, 1453                      | 7     |\n * |                                 | PPP     | April 29th, 1453                  | 7     |\n * |                                 | PPPP    | Friday, April 29th, 1453          | 2,7   |\n * | Long localized time             | p       | 12:00 AM                          | 7     |\n * |                                 | pp      | 12:00:00 AM                       | 7     |\n * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |\n * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |\n * | Combination of date and time    | Pp      | 04/29/1453, 12:00 AM              | 7     |\n * |                                 | PPpp    | Apr 29, 1453, 12:00:00 AM         | 7     |\n * |                                 | PPPppp  | April 29th, 1453 at ...           | 7     |\n * |                                 | PPPPpppp| Friday, April 29th, 1453 at ...   | 2,7   |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n *    the output will be the same as default pattern for this unit, usually\n *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n *    are marked with \"2\" in the last column of the table.\n *\n *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n *    The output will be padded with zeros to match the length of the pattern.\n *\n *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` always returns the last two digits of a year,\n *    while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n *    | Year | `yy` | `uu` |\n *    |------|------|------|\n *    | 1    |   01 |   01 |\n *    | 14   |   14 |   14 |\n *    | 376  |   76 |  376 |\n *    | 1453 |   53 | 1453 |\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n *    and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n *    so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `t`: seconds timestamp\n *    - `T`: milliseconds timestamp\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   format(new Date(2016, 0, 1))\n *\n *   // v2.0.0 onward\n *   format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n *   ```\n *\n * - New format string API for `format` function\n *   which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n *   See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n *   see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n *   see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n *   locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var formatStr = String(dirtyFormatStr);\n  var options = dirtyOptions || {};\n  var locale = options.locale || defaultLocale;\n  var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  if (!locale.localize) {\n    throw new RangeError('locale must contain localize property');\n  }\n\n  if (!locale.formatLong) {\n    throw new RangeError('locale must contain formatLong property');\n  }\n\n  var originalDate = toDate(dirtyDate);\n\n  if (!isValid(originalDate)) {\n    throw new RangeError('Invalid time value');\n  } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n  // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n  var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n  var utcDate = subMilliseconds(originalDate, timezoneOffset);\n  var formatterOptions = {\n    firstWeekContainsDate: firstWeekContainsDate,\n    weekStartsOn: weekStartsOn,\n    locale: locale,\n    _originalDate: originalDate\n  };\n  var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === 'p' || firstCharacter === 'P') {\n      var longFormatter = longFormatters[firstCharacter];\n      return longFormatter(substring, locale.formatLong, formatterOptions);\n    }\n\n    return substring;\n  }).join('').match(formattingTokensRegExp).map(function (substring) {\n    // Replace two single quote characters with one single quote character\n    if (substring === \"''\") {\n      return \"'\";\n    }\n\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === \"'\") {\n      return cleanEscapedString(substring);\n    }\n\n    var formatter = formatters[firstCharacter];\n\n    if (formatter) {\n      if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n        throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n      }\n\n      if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n        throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n      }\n\n      return formatter(utcDate, substring, locale.localize, formatterOptions);\n    }\n\n    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n    }\n\n    return substring;\n  }).join('');\n  return result;\n}\n\nfunction cleanEscapedString(input) {\n  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var dayOfMonth = date.getDate();\n  return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var day = date.getDay();\n  return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var hours = date.getHours();\n  return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  return startOfWeek(dirtyDate, {\n    weekStartsOn: 1\n  });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n *   \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n *   This change makes the name consistent with\n *   locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getFullYear();\n  var fourthOfJanuaryOfNextYear = new Date(0);\n  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n  var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n  var fourthOfJanuaryOfThisYear = new Date(0);\n  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n  var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var year = getISOWeekYear(dirtyDate);\n  var fourthOfJanuary = new Date(0);\n  fourthOfJanuary.setFullYear(year, 0, 4);\n  fourthOfJanuary.setHours(0, 0, 0, 0);\n  var date = startOfISOWeek(fourthOfJanuary);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var minutes = date.getMinutes();\n  return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var month = date.getMonth();\n  return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var quarter = Math.floor(date.getMonth() / 3) + 1;\n  return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var seconds = date.getSeconds();\n  return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var timestamp = date.getTime();\n  return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var dateToCompare = toDate(dirtyDateToCompare);\n  return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var dateToCompare = toDate(dirtyDateToCompare);\n  return date.getTime() < dateToCompare.getTime();\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n  requiredArgs(1, arguments);\n  return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n *   new Date(2014, 6, 2, 6, 30, 45, 0),\n *   new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyLeftDate);\n  var dateRight = toDate(dirtyRightDate);\n  return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n * \n * @example\n * // Are 4 September and 4 October in the same day?\n * var result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n * \n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n  var dateRightStartOfDay = startOfDay(dirtyDateRight);\n  return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n * \n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n  var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n  return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n *   if the first argument is not an instance of Date.\n *   Instead, argument is converted beforehand using `toDate`.\n *\n *   Examples:\n *\n *   | `isValid` argument        | Before v2.0.0 | v2.0.0 onward |\n *   |---------------------------|---------------|---------------|\n *   | `new Date()`              | `true`        | `true`        |\n *   | `new Date('2016-01-01')`  | `true`        | `true`        |\n *   | `new Date('')`            | `false`       | `false`       |\n *   | `new Date(1488370835081)` | `true`        | `true`        |\n *   | `new Date(NaN)`           | `false`       | `false`       |\n *   | `'2016-01-01'`            | `TypeError`   | `false`       |\n *   | `''`                      | `TypeError`   | `false`       |\n *   | `1488370835081`           | `TypeError`   | `true`        |\n *   | `NaN`                     | `TypeError`   | `false`       |\n *\n *   We introduce this change to make *date-fns* consistent with ECMAScript behavior\n *   that try to coerce arguments to the expected type\n *   (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n  requiredArgs(1, arguments);\n\n  if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n    return false;\n  }\n\n  var date = toDate(dirtyDate);\n  return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n *   This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n *   ```\n *   2.1.3\n *   time interval\n *   part of the time axis limited by two instants\n *   ```\n *\n *   Also, this function now accepts an object with `start` and `end` properties\n *   instead of two arguments as an interval.\n *   This function now throws `RangeError` if the start of the interval is after its end\n *   or if any date in the interval is `Invalid Date`.\n *\n *   ```javascript\n *   // Before v2.0.0\n *\n *   isWithinRange(\n *     new Date(2014, 0, 3),\n *     new Date(2014, 0, 1), new Date(2014, 0, 7)\n *   )\n *\n *   // v2.0.0 onward\n *\n *   isWithinInterval(\n *     new Date(2014, 0, 3),\n *     { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n *   )\n *   ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n *   start: new Date(2014, 0, 1),\n *   end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n *   start: new Date(2014, 0, 1),\n *   end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n  requiredArgs(2, arguments);\n  var time = toDate(dirtyDate).getTime();\n  var startTime = toDate(interval.start).getTime();\n  var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n  if (!(startTime <= endTime)) {\n    throw new RangeError('Invalid interval');\n  }\n\n  return time >= startTime && time <= endTime;\n}","export default function buildFormatLongFn(args) {\n  return function () {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    // TODO: Remove String()\n    var width = options.width ? String(options.width) : args.defaultWidth;\n    var format = args.formats[width] || args.formats[args.defaultWidth];\n    return format;\n  };\n}","export default function buildLocalizeFn(args) {\n  return function (dirtyIndex, dirtyOptions) {\n    var options = dirtyOptions || {};\n    var context = options.context ? String(options.context) : 'standalone';\n    var valuesArray;\n\n    if (context === 'formatting' && args.formattingValues) {\n      var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n      var width = options.width ? String(options.width) : defaultWidth;\n      valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n    } else {\n      var _defaultWidth = args.defaultWidth;\n\n      var _width = options.width ? String(options.width) : args.defaultWidth;\n\n      valuesArray = args.values[_width] || args.values[_defaultWidth];\n    }\n\n    var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n    return valuesArray[index];\n  };\n}","export default function buildMatchFn(args) {\n  return function (string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var width = options.width;\n    var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n    var matchResult = string.match(matchPattern);\n\n    if (!matchResult) {\n      return null;\n    }\n\n    var matchedString = matchResult[0];\n    var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n    var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n      return pattern.test(matchedString);\n    }) : findKey(parsePatterns, function (pattern) {\n      return pattern.test(matchedString);\n    });\n    var value;\n    value = args.valueCallback ? args.valueCallback(key) : key;\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    var rest = string.slice(matchedString.length);\n    return {\n      value: value,\n      rest: rest\n    };\n  };\n}\n\nfunction findKey(object, predicate) {\n  for (var key in object) {\n    if (object.hasOwnProperty(key) && predicate(object[key])) {\n      return key;\n    }\n  }\n\n  return undefined;\n}\n\nfunction findIndex(array, predicate) {\n  for (var key = 0; key < array.length; key++) {\n    if (predicate(array[key])) {\n      return key;\n    }\n  }\n\n  return undefined;\n}","export default function buildMatchPatternFn(args) {\n  return function (string) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var matchResult = string.match(args.matchPattern);\n    if (!matchResult) return null;\n    var matchedString = matchResult[0];\n    var parseResult = string.match(args.parsePattern);\n    if (!parseResult) return null;\n    var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    var rest = string.slice(matchedString.length);\n    return {\n      value: value,\n      rest: rest\n    };\n  };\n}","var formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: 'less than a second',\n    other: 'less than {{count}} seconds'\n  },\n  xSeconds: {\n    one: '1 second',\n    other: '{{count}} seconds'\n  },\n  halfAMinute: 'half a minute',\n  lessThanXMinutes: {\n    one: 'less than a minute',\n    other: 'less than {{count}} minutes'\n  },\n  xMinutes: {\n    one: '1 minute',\n    other: '{{count}} minutes'\n  },\n  aboutXHours: {\n    one: 'about 1 hour',\n    other: 'about {{count}} hours'\n  },\n  xHours: {\n    one: '1 hour',\n    other: '{{count}} hours'\n  },\n  xDays: {\n    one: '1 day',\n    other: '{{count}} days'\n  },\n  aboutXWeeks: {\n    one: 'about 1 week',\n    other: 'about {{count}} weeks'\n  },\n  xWeeks: {\n    one: '1 week',\n    other: '{{count}} weeks'\n  },\n  aboutXMonths: {\n    one: 'about 1 month',\n    other: 'about {{count}} months'\n  },\n  xMonths: {\n    one: '1 month',\n    other: '{{count}} months'\n  },\n  aboutXYears: {\n    one: 'about 1 year',\n    other: 'about {{count}} years'\n  },\n  xYears: {\n    one: '1 year',\n    other: '{{count}} years'\n  },\n  overXYears: {\n    one: 'over 1 year',\n    other: 'over {{count}} years'\n  },\n  almostXYears: {\n    one: 'almost 1 year',\n    other: 'almost {{count}} years'\n  }\n};\n\nvar formatDistance = function (token, count, options) {\n  var result;\n  var tokenValue = formatDistanceLocale[token];\n\n  if (typeof tokenValue === 'string') {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace('{{count}}', count.toString());\n  }\n\n  if (options !== null && options !== void 0 && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return 'in ' + result;\n    } else {\n      return result + ' ago';\n    }\n  }\n\n  return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n  full: 'EEEE, MMMM do, y',\n  long: 'MMMM do, y',\n  medium: 'MMM d, y',\n  short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n  full: 'h:mm:ss a zzzz',\n  long: 'h:mm:ss a z',\n  medium: 'h:mm:ss a',\n  short: 'h:mm a'\n};\nvar dateTimeFormats = {\n  full: \"{{date}} 'at' {{time}}\",\n  long: \"{{date}} 'at' {{time}}\",\n  medium: '{{date}}, {{time}}',\n  short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: 'full'\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: 'full'\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: 'full'\n  })\n};\nexport default formatLong;","var formatRelativeLocale = {\n  lastWeek: \"'last' eeee 'at' p\",\n  yesterday: \"'yesterday at' p\",\n  today: \"'today at' p\",\n  tomorrow: \"'tomorrow at' p\",\n  nextWeek: \"eeee 'at' p\",\n  other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n  return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n  narrow: ['B', 'A'],\n  abbreviated: ['BC', 'AD'],\n  wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n  narrow: ['1', '2', '3', '4'],\n  abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n  wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n  abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n  narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n  abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n  wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mi',\n    noon: 'n',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'morning',\n    afternoon: 'afternoon',\n    evening: 'evening',\n    night: 'night'\n  }\n};\nvar formattingDayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mi',\n    noon: 'n',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'midnight',\n    noon: 'noon',\n    morning: 'in the morning',\n    afternoon: 'in the afternoon',\n    evening: 'in the evening',\n    night: 'at night'\n  }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n  var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n  // if they are different for different grammatical genders,\n  // use `options.unit`.\n  //\n  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n  // 'day', 'hour', 'minute', 'second'.\n\n  var rem100 = number % 100;\n\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + 'st';\n\n      case 2:\n        return number + 'nd';\n\n      case 3:\n        return number + 'rd';\n    }\n  }\n\n  return number + 'th';\n};\n\nvar localize = {\n  ordinalNumber: ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: 'wide'\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: 'wide',\n    argumentCallback: function (quarter) {\n      return quarter - 1;\n    }\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: 'wide'\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: 'wide'\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: 'wide',\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: 'wide'\n  })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n  code: 'en-US',\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0\n    /* Sunday */\n    ,\n    firstWeekContainsDate: 1\n  }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n  narrow: /^(b|a)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n  any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n  narrow: /^[smtwf]/i,\n  short: /^(su|mo|tu|we|th|fr|sa)/i,\n  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mi/i,\n    noon: /^no/i,\n    morning: /morning/i,\n    afternoon: /afternoon/i,\n    evening: /evening/i,\n    night: /night/i\n  }\n};\nvar match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    }\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: 'any'\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: 'any',\n    valueCallback: function (index) {\n      return index + 1;\n    }\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: 'any'\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: 'any'\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: 'any',\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: 'any'\n  })\n};\nexport default match;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   var date1 = new Date(1989, 6, 10)\n *   var date2 = new Date(1987, 1, 11)\n *   var maxDate = max(date1, date2)\n *\n *   // v2.0.0 onward:\n *   var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n *   var maxDate = max(dates)\n *   ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max([\n *   new Date(1989, 6, 10),\n *   new Date(1987, 1, 11),\n *   new Date(1995, 6, 2),\n *   new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n  requiredArgs(1, arguments);\n  var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n  if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n    datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n  } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n    datesArray = Array.prototype.slice.call(dirtyDatesArray);\n  } else {\n    // `dirtyDatesArray` is non-iterable, return Invalid Date\n    return new Date(NaN);\n  }\n\n  var result;\n  datesArray.forEach(function (dirtyDate) {\n    var currentDate = toDate(dirtyDate);\n\n    if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n      result = currentDate;\n    }\n  });\n  return result || new Date(NaN);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   const date1 = new Date(1989, 6, 10)\n *   const date2 = new Date(1987, 1, 11)\n *   const minDate = min(date1, date2)\n *\n *   // v2.0.0 onward:\n *   const dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n *   const minDate = min(dates)\n *   ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n *   new Date(1989, 6, 10),\n *   new Date(1987, 1, 11),\n *   new Date(1995, 6, 2),\n *   new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n  requiredArgs(1, arguments);\n  var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n  if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n    datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n  } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n    datesArray = Array.prototype.slice.call(dirtyDatesArray);\n  } else {\n    // `dirtyDatesArray` is non-iterable, return Invalid Date\n    return new Date(NaN);\n  }\n\n  var result;\n  datesArray.forEach(function (dirtyDate) {\n    var currentDate = toDate(dirtyDate);\n\n    if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n      result = currentDate;\n    }\n  });\n  return result || new Date(NaN);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   parse('2016-01-01')\n *\n *   // v2.0.0 onward\n *   parseISO('2016-01-01')\n *   ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n *   and returns `Invalid Date` if the date is invalid.\n *\n *   ```javascript\n *   parseISO('2018-13-32')\n *   //=> Invalid Date\n *   ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n *   if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n  if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n    throw new RangeError('additionalDigits must be 0, 1 or 2');\n  }\n\n  if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n    return new Date(NaN);\n  }\n\n  var dateStrings = splitDateString(argument);\n  var date;\n\n  if (dateStrings.date) {\n    var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n    date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n  }\n\n  if (!date || isNaN(date.getTime())) {\n    return new Date(NaN);\n  }\n\n  var timestamp = date.getTime();\n  var time = 0;\n  var offset;\n\n  if (dateStrings.time) {\n    time = parseTime(dateStrings.time);\n\n    if (isNaN(time)) {\n      return new Date(NaN);\n    }\n  }\n\n  if (dateStrings.timezone) {\n    offset = parseTimezone(dateStrings.timezone);\n\n    if (isNaN(offset)) {\n      return new Date(NaN);\n    }\n  } else {\n    var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n    // but we need it to be parsed in our timezone\n    // so we use utc values to build date in our timezone.\n    // Year values from 0 to 99 map to the years 1900 to 1999\n    // so set year explicitly with setFullYear.\n\n    var result = new Date(0);\n    result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n    result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n    return result;\n  }\n\n  return new Date(timestamp + time + offset);\n}\nvar patterns = {\n  dateTimeDelimiter: /[T ]/,\n  timeZoneDelimiter: /[Z ]/i,\n  timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n  var dateStrings = {};\n  var array = dateString.split(patterns.dateTimeDelimiter);\n  var timeString; // The regex match should only return at maximum two array elements.\n  // [date], [time], or [date, time].\n\n  if (array.length > 2) {\n    return dateStrings;\n  }\n\n  if (/:/.test(array[0])) {\n    timeString = array[0];\n  } else {\n    dateStrings.date = array[0];\n    timeString = array[1];\n\n    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n      timeString = dateString.substr(dateStrings.date.length, dateString.length);\n    }\n  }\n\n  if (timeString) {\n    var token = patterns.timezone.exec(timeString);\n\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], '');\n      dateStrings.timezone = token[1];\n    } else {\n      dateStrings.time = timeString;\n    }\n  }\n\n  return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n  var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n  var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n  if (!captures) return {\n    year: NaN,\n    restDateString: ''\n  };\n  var year = captures[1] ? parseInt(captures[1]) : null;\n  var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n  return {\n    year: century === null ? year : century * 100,\n    restDateString: dateString.slice((captures[1] || captures[2]).length)\n  };\n}\n\nfunction parseDate(dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) return new Date(NaN);\n  var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n  if (!captures) return new Date(NaN);\n  var isWeekDate = !!captures[4];\n  var dayOfYear = parseDateUnit(captures[1]);\n  var month = parseDateUnit(captures[2]) - 1;\n  var day = parseDateUnit(captures[3]);\n  var week = parseDateUnit(captures[4]);\n  var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n  if (isWeekDate) {\n    if (!validateWeekDate(year, week, dayOfWeek)) {\n      return new Date(NaN);\n    }\n\n    return dayOfISOWeekYear(year, week, dayOfWeek);\n  } else {\n    var date = new Date(0);\n\n    if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n      return new Date(NaN);\n    }\n\n    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n    return date;\n  }\n}\n\nfunction parseDateUnit(value) {\n  return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n  var captures = timeString.match(timeRegex);\n  if (!captures) return NaN; // Invalid ISO-formatted time\n\n  var hours = parseTimeUnit(captures[1]);\n  var minutes = parseTimeUnit(captures[2]);\n  var seconds = parseTimeUnit(captures[3]);\n\n  if (!validateTime(hours, minutes, seconds)) {\n    return NaN;\n  }\n\n  return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n  return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n  if (timezoneString === 'Z') return 0;\n  var captures = timezoneString.match(timezoneRegex);\n  if (!captures) return 0;\n  var sign = captures[1] === '+' ? -1 : 1;\n  var hours = parseInt(captures[2]);\n  var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n  if (!validateTimezone(hours, minutes)) {\n    return NaN;\n  }\n\n  return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n  var date = new Date(0);\n  date.setUTCFullYear(isoWeekYear, 0, 4);\n  var fourthOfJanuaryDay = date.getUTCDay() || 7;\n  var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n  return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n  return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n  if (hours === 24) {\n    return minutes === 0 && seconds === 0;\n  }\n\n  return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n  return minutes >= 0 && minutes <= 59;\n}","export default function assign(target, dirtyObject) {\n  if (target == null) {\n    throw new TypeError('assign requires that input parameter not be null or undefined');\n  }\n\n  dirtyObject = dirtyObject || {};\n\n  for (var property in dirtyObject) {\n    if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n      target[property] = dirtyObject[property];\n    }\n  }\n\n  return target;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n  requiredArgs(2, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  var date = toDate(dirtyDate);\n  var day = toInteger(dirtyDay);\n  var currentDay = date.getUTCDay();\n  var remainder = day % 7;\n  var dayIndex = (remainder + 7) % 7;\n  var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n  month: /^(1[0-2]|0?\\d)/,\n  // 0 to 12\n  date: /^(3[0-1]|[0-2]?\\d)/,\n  // 0 to 31\n  dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n  // 0 to 366\n  week: /^(5[0-3]|[0-4]?\\d)/,\n  // 0 to 53\n  hour23h: /^(2[0-3]|[0-1]?\\d)/,\n  // 0 to 23\n  hour24h: /^(2[0-4]|[0-1]?\\d)/,\n  // 0 to 24\n  hour11h: /^(1[0-1]|0?\\d)/,\n  // 0 to 11\n  hour12h: /^(1[0-2]|0?\\d)/,\n  // 0 to 12\n  minute: /^[0-5]?\\d/,\n  // 0 to 59\n  second: /^[0-5]?\\d/,\n  // 0 to 59\n  singleDigit: /^\\d/,\n  // 0 to 9\n  twoDigits: /^\\d{1,2}/,\n  // 0 to 99\n  threeDigits: /^\\d{1,3}/,\n  // 0 to 999\n  fourDigits: /^\\d{1,4}/,\n  // 0 to 9999\n  anyDigitsSigned: /^-?\\d+/,\n  singleDigitSigned: /^-?\\d/,\n  // 0 to 9, -0 to -9\n  twoDigitsSigned: /^-?\\d{1,2}/,\n  // 0 to 99, -0 to -99\n  threeDigitsSigned: /^-?\\d{1,3}/,\n  // 0 to 999, -0 to -999\n  fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n  basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n  basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n  basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n  extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n  extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n  var matchResult = string.match(pattern);\n\n  if (!matchResult) {\n    return null;\n  }\n\n  var value = parseInt(matchResult[0], 10);\n  return {\n    value: valueCallback ? valueCallback(value) : value,\n    rest: string.slice(matchResult[0].length)\n  };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n  var matchResult = string.match(pattern);\n\n  if (!matchResult) {\n    return null;\n  } // Input is 'Z'\n\n\n  if (matchResult[0] === 'Z') {\n    return {\n      value: 0,\n      rest: string.slice(1)\n    };\n  }\n\n  var sign = matchResult[1] === '+' ? 1 : -1;\n  var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n  var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n  var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n  return {\n    value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n    rest: string.slice(matchResult[0].length)\n  };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n  return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n  switch (n) {\n    case 1:\n      return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n    case 2:\n      return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n    case 3:\n      return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n    case 4:\n      return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n    default:\n      return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n  }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n  switch (n) {\n    case 1:\n      return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n    case 2:\n      return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n    case 3:\n      return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n    case 4:\n      return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n    default:\n      return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n  }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n  switch (enumValue) {\n    case 'morning':\n      return 4;\n\n    case 'evening':\n      return 17;\n\n    case 'pm':\n    case 'noon':\n    case 'afternoon':\n      return 12;\n\n    case 'am':\n    case 'midnight':\n    case 'night':\n    default:\n      return 0;\n  }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n  var isCommonEra = currentYear > 0; // Absolute number of the current year:\n  // 1 -> 1 AC\n  // 0 -> 1 BC\n  // -1 -> 2 BC\n\n  var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n  var result;\n\n  if (absCurrentYear <= 50) {\n    result = twoDigitYear || 100;\n  } else {\n    var rangeEnd = absCurrentYear + 50;\n    var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n    var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n    result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n  }\n\n  return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O* | Timezone (GMT)                 |\n * |  p  |                                |  P  |                                |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z* | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n  // Era\n  G: {\n    priority: 140,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        // AD, BC\n        case 'G':\n        case 'GG':\n        case 'GGG':\n          return match.era(string, {\n            width: 'abbreviated'\n          }) || match.era(string, {\n            width: 'narrow'\n          });\n        // A, B\n\n        case 'GGGGG':\n          return match.era(string, {\n            width: 'narrow'\n          });\n        // Anno Domini, Before Christ\n\n        case 'GGGG':\n        default:\n          return match.era(string, {\n            width: 'wide'\n          }) || match.era(string, {\n            width: 'abbreviated'\n          }) || match.era(string, {\n            width: 'narrow'\n          });\n      }\n    },\n    set: function (date, flags, value, _options) {\n      flags.era = value;\n      date.setUTCFullYear(value, 0, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['R', 'u', 't', 'T']\n  },\n  // Year\n  y: {\n    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n    // |----------|-------|----|-------|-------|-------|\n    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n    priority: 130,\n    parse: function (string, token, match, _options) {\n      var valueCallback = function (year) {\n        return {\n          year: year,\n          isTwoDigitYear: token === 'yy'\n        };\n      };\n\n      switch (token) {\n        case 'y':\n          return parseNDigits(4, string, valueCallback);\n\n        case 'yo':\n          return match.ordinalNumber(string, {\n            unit: 'year',\n            valueCallback: valueCallback\n          });\n\n        default:\n          return parseNDigits(token.length, string, valueCallback);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value.isTwoDigitYear || value.year > 0;\n    },\n    set: function (date, flags, value, _options) {\n      var currentYear = date.getUTCFullYear();\n\n      if (value.isTwoDigitYear) {\n        var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n        date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n        date.setUTCHours(0, 0, 0, 0);\n        return date;\n      }\n\n      var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n      date.setUTCFullYear(year, 0, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n  },\n  // Local week-numbering year\n  Y: {\n    priority: 130,\n    parse: function (string, token, match, _options) {\n      var valueCallback = function (year) {\n        return {\n          year: year,\n          isTwoDigitYear: token === 'YY'\n        };\n      };\n\n      switch (token) {\n        case 'Y':\n          return parseNDigits(4, string, valueCallback);\n\n        case 'Yo':\n          return match.ordinalNumber(string, {\n            unit: 'year',\n            valueCallback: valueCallback\n          });\n\n        default:\n          return parseNDigits(token.length, string, valueCallback);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value.isTwoDigitYear || value.year > 0;\n    },\n    set: function (date, flags, value, options) {\n      var currentYear = getUTCWeekYear(date, options);\n\n      if (value.isTwoDigitYear) {\n        var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n        date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n        date.setUTCHours(0, 0, 0, 0);\n        return startOfUTCWeek(date, options);\n      }\n\n      var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n      date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n      date.setUTCHours(0, 0, 0, 0);\n      return startOfUTCWeek(date, options);\n    },\n    incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n  },\n  // ISO week-numbering year\n  R: {\n    priority: 130,\n    parse: function (string, token, _match, _options) {\n      if (token === 'R') {\n        return parseNDigitsSigned(4, string);\n      }\n\n      return parseNDigitsSigned(token.length, string);\n    },\n    set: function (_date, _flags, value, _options) {\n      var firstWeekOfYear = new Date(0);\n      firstWeekOfYear.setUTCFullYear(value, 0, 4);\n      firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n      return startOfUTCISOWeek(firstWeekOfYear);\n    },\n    incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n  },\n  // Extended year\n  u: {\n    priority: 130,\n    parse: function (string, token, _match, _options) {\n      if (token === 'u') {\n        return parseNDigitsSigned(4, string);\n      }\n\n      return parseNDigitsSigned(token.length, string);\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCFullYear(value, 0, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n  },\n  // Quarter\n  Q: {\n    priority: 120,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        // 1, 2, 3, 4\n        case 'Q':\n        case 'QQ':\n          // 01, 02, 03, 04\n          return parseNDigits(token.length, string);\n        // 1st, 2nd, 3rd, 4th\n\n        case 'Qo':\n          return match.ordinalNumber(string, {\n            unit: 'quarter'\n          });\n        // Q1, Q2, Q3, Q4\n\n        case 'QQQ':\n          return match.quarter(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.quarter(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n        case 'QQQQQ':\n          return match.quarter(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // 1st quarter, 2nd quarter, ...\n\n        case 'QQQQ':\n        default:\n          return match.quarter(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.quarter(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.quarter(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 4;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMonth((value - 1) * 3, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n  },\n  // Stand-alone quarter\n  q: {\n    priority: 120,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        // 1, 2, 3, 4\n        case 'q':\n        case 'qq':\n          // 01, 02, 03, 04\n          return parseNDigits(token.length, string);\n        // 1st, 2nd, 3rd, 4th\n\n        case 'qo':\n          return match.ordinalNumber(string, {\n            unit: 'quarter'\n          });\n        // Q1, Q2, Q3, Q4\n\n        case 'qqq':\n          return match.quarter(string, {\n            width: 'abbreviated',\n            context: 'standalone'\n          }) || match.quarter(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n        case 'qqqqq':\n          return match.quarter(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // 1st quarter, 2nd quarter, ...\n\n        case 'qqqq':\n        default:\n          return match.quarter(string, {\n            width: 'wide',\n            context: 'standalone'\n          }) || match.quarter(string, {\n            width: 'abbreviated',\n            context: 'standalone'\n          }) || match.quarter(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 4;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMonth((value - 1) * 3, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n  },\n  // Month\n  M: {\n    priority: 110,\n    parse: function (string, token, match, _options) {\n      var valueCallback = function (value) {\n        return value - 1;\n      };\n\n      switch (token) {\n        // 1, 2, ..., 12\n        case 'M':\n          return parseNumericPattern(numericPatterns.month, string, valueCallback);\n        // 01, 02, ..., 12\n\n        case 'MM':\n          return parseNDigits(2, string, valueCallback);\n        // 1st, 2nd, ..., 12th\n\n        case 'Mo':\n          return match.ordinalNumber(string, {\n            unit: 'month',\n            valueCallback: valueCallback\n          });\n        // Jan, Feb, ..., Dec\n\n        case 'MMM':\n          return match.month(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.month(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // J, F, ..., D\n\n        case 'MMMMM':\n          return match.month(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // January, February, ..., December\n\n        case 'MMMM':\n        default:\n          return match.month(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.month(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.month(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 11;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMonth(value, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n  },\n  // Stand-alone month\n  L: {\n    priority: 110,\n    parse: function (string, token, match, _options) {\n      var valueCallback = function (value) {\n        return value - 1;\n      };\n\n      switch (token) {\n        // 1, 2, ..., 12\n        case 'L':\n          return parseNumericPattern(numericPatterns.month, string, valueCallback);\n        // 01, 02, ..., 12\n\n        case 'LL':\n          return parseNDigits(2, string, valueCallback);\n        // 1st, 2nd, ..., 12th\n\n        case 'Lo':\n          return match.ordinalNumber(string, {\n            unit: 'month',\n            valueCallback: valueCallback\n          });\n        // Jan, Feb, ..., Dec\n\n        case 'LLL':\n          return match.month(string, {\n            width: 'abbreviated',\n            context: 'standalone'\n          }) || match.month(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // J, F, ..., D\n\n        case 'LLLLL':\n          return match.month(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // January, February, ..., December\n\n        case 'LLLL':\n        default:\n          return match.month(string, {\n            width: 'wide',\n            context: 'standalone'\n          }) || match.month(string, {\n            width: 'abbreviated',\n            context: 'standalone'\n          }) || match.month(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 11;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMonth(value, 1);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n  },\n  // Local week of year\n  w: {\n    priority: 100,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'w':\n          return parseNumericPattern(numericPatterns.week, string);\n\n        case 'wo':\n          return match.ordinalNumber(string, {\n            unit: 'week'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 53;\n    },\n    set: function (date, _flags, value, options) {\n      return startOfUTCWeek(setUTCWeek(date, value, options), options);\n    },\n    incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n  },\n  // ISO week of year\n  I: {\n    priority: 100,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'I':\n          return parseNumericPattern(numericPatterns.week, string);\n\n        case 'Io':\n          return match.ordinalNumber(string, {\n            unit: 'week'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 53;\n    },\n    set: function (date, _flags, value, options) {\n      return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n    },\n    incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n  },\n  // Day of the month\n  d: {\n    priority: 90,\n    subPriority: 1,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'd':\n          return parseNumericPattern(numericPatterns.date, string);\n\n        case 'do':\n          return match.ordinalNumber(string, {\n            unit: 'date'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (date, value, _options) {\n      var year = date.getUTCFullYear();\n      var isLeapYear = isLeapYearIndex(year);\n      var month = date.getUTCMonth();\n\n      if (isLeapYear) {\n        return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n      } else {\n        return value >= 1 && value <= DAYS_IN_MONTH[month];\n      }\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCDate(value);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n  },\n  // Day of year\n  D: {\n    priority: 90,\n    subPriority: 1,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'D':\n        case 'DD':\n          return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n        case 'Do':\n          return match.ordinalNumber(string, {\n            unit: 'date'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (date, value, _options) {\n      var year = date.getUTCFullYear();\n      var isLeapYear = isLeapYearIndex(year);\n\n      if (isLeapYear) {\n        return value >= 1 && value <= 366;\n      } else {\n        return value >= 1 && value <= 365;\n      }\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMonth(0, value);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n  },\n  // Day of week\n  E: {\n    priority: 90,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        // Tue\n        case 'E':\n        case 'EE':\n        case 'EEE':\n          return match.day(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'short',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // T\n\n        case 'EEEEE':\n          return match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // Tu\n\n        case 'EEEEEE':\n          return match.day(string, {\n            width: 'short',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // Tuesday\n\n        case 'EEEE':\n        default:\n          return match.day(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'short',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 6;\n    },\n    set: function (date, _flags, value, options) {\n      date = setUTCDay(date, value, options);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n  },\n  // Local day of week\n  e: {\n    priority: 90,\n    parse: function (string, token, match, options) {\n      var valueCallback = function (value) {\n        var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n        return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n      };\n\n      switch (token) {\n        // 3\n        case 'e':\n        case 'ee':\n          // 03\n          return parseNDigits(token.length, string, valueCallback);\n        // 3rd\n\n        case 'eo':\n          return match.ordinalNumber(string, {\n            unit: 'day',\n            valueCallback: valueCallback\n          });\n        // Tue\n\n        case 'eee':\n          return match.day(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'short',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // T\n\n        case 'eeeee':\n          return match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // Tu\n\n        case 'eeeeee':\n          return match.day(string, {\n            width: 'short',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n        // Tuesday\n\n        case 'eeee':\n        default:\n          return match.day(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'short',\n            context: 'formatting'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 6;\n    },\n    set: function (date, _flags, value, options) {\n      date = setUTCDay(date, value, options);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n  },\n  // Stand-alone local day of week\n  c: {\n    priority: 90,\n    parse: function (string, token, match, options) {\n      var valueCallback = function (value) {\n        var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n        return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n      };\n\n      switch (token) {\n        // 3\n        case 'c':\n        case 'cc':\n          // 03\n          return parseNDigits(token.length, string, valueCallback);\n        // 3rd\n\n        case 'co':\n          return match.ordinalNumber(string, {\n            unit: 'day',\n            valueCallback: valueCallback\n          });\n        // Tue\n\n        case 'ccc':\n          return match.day(string, {\n            width: 'abbreviated',\n            context: 'standalone'\n          }) || match.day(string, {\n            width: 'short',\n            context: 'standalone'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // T\n\n        case 'ccccc':\n          return match.day(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // Tu\n\n        case 'cccccc':\n          return match.day(string, {\n            width: 'short',\n            context: 'standalone'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n        // Tuesday\n\n        case 'cccc':\n        default:\n          return match.day(string, {\n            width: 'wide',\n            context: 'standalone'\n          }) || match.day(string, {\n            width: 'abbreviated',\n            context: 'standalone'\n          }) || match.day(string, {\n            width: 'short',\n            context: 'standalone'\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'standalone'\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 6;\n    },\n    set: function (date, _flags, value, options) {\n      date = setUTCDay(date, value, options);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n  },\n  // ISO day of week\n  i: {\n    priority: 90,\n    parse: function (string, token, match, _options) {\n      var valueCallback = function (value) {\n        if (value === 0) {\n          return 7;\n        }\n\n        return value;\n      };\n\n      switch (token) {\n        // 2\n        case 'i':\n        case 'ii':\n          // 02\n          return parseNDigits(token.length, string);\n        // 2nd\n\n        case 'io':\n          return match.ordinalNumber(string, {\n            unit: 'day'\n          });\n        // Tue\n\n        case 'iii':\n          return match.day(string, {\n            width: 'abbreviated',\n            context: 'formatting',\n            valueCallback: valueCallback\n          }) || match.day(string, {\n            width: 'short',\n            context: 'formatting',\n            valueCallback: valueCallback\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting',\n            valueCallback: valueCallback\n          });\n        // T\n\n        case 'iiiii':\n          return match.day(string, {\n            width: 'narrow',\n            context: 'formatting',\n            valueCallback: valueCallback\n          });\n        // Tu\n\n        case 'iiiiii':\n          return match.day(string, {\n            width: 'short',\n            context: 'formatting',\n            valueCallback: valueCallback\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting',\n            valueCallback: valueCallback\n          });\n        // Tuesday\n\n        case 'iiii':\n        default:\n          return match.day(string, {\n            width: 'wide',\n            context: 'formatting',\n            valueCallback: valueCallback\n          }) || match.day(string, {\n            width: 'abbreviated',\n            context: 'formatting',\n            valueCallback: valueCallback\n          }) || match.day(string, {\n            width: 'short',\n            context: 'formatting',\n            valueCallback: valueCallback\n          }) || match.day(string, {\n            width: 'narrow',\n            context: 'formatting',\n            valueCallback: valueCallback\n          });\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 7;\n    },\n    set: function (date, _flags, value, options) {\n      date = setUTCISODay(date, value, options);\n      date.setUTCHours(0, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n  },\n  // AM or PM\n  a: {\n    priority: 80,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'a':\n        case 'aa':\n        case 'aaa':\n          return match.dayPeriod(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n\n        case 'aaaaa':\n          return match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n\n        case 'aaaa':\n        default:\n          return match.dayPeriod(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['b', 'B', 'H', 'k', 't', 'T']\n  },\n  // AM, PM, midnight\n  b: {\n    priority: 80,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'b':\n        case 'bb':\n        case 'bbb':\n          return match.dayPeriod(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n\n        case 'bbbbb':\n          return match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n\n        case 'bbbb':\n        default:\n          return match.dayPeriod(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['a', 'B', 'H', 'k', 't', 'T']\n  },\n  // in the morning, in the afternoon, in the evening, at night\n  B: {\n    priority: 80,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'B':\n        case 'BB':\n        case 'BBB':\n          return match.dayPeriod(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n\n        case 'BBBBB':\n          return match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n\n        case 'BBBB':\n        default:\n          return match.dayPeriod(string, {\n            width: 'wide',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'abbreviated',\n            context: 'formatting'\n          }) || match.dayPeriod(string, {\n            width: 'narrow',\n            context: 'formatting'\n          });\n      }\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['a', 'b', 't', 'T']\n  },\n  // Hour [1-12]\n  h: {\n    priority: 70,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'h':\n          return parseNumericPattern(numericPatterns.hour12h, string);\n\n        case 'ho':\n          return match.ordinalNumber(string, {\n            unit: 'hour'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 12;\n    },\n    set: function (date, _flags, value, _options) {\n      var isPM = date.getUTCHours() >= 12;\n\n      if (isPM && value < 12) {\n        date.setUTCHours(value + 12, 0, 0, 0);\n      } else if (!isPM && value === 12) {\n        date.setUTCHours(0, 0, 0, 0);\n      } else {\n        date.setUTCHours(value, 0, 0, 0);\n      }\n\n      return date;\n    },\n    incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n  },\n  // Hour [0-23]\n  H: {\n    priority: 70,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'H':\n          return parseNumericPattern(numericPatterns.hour23h, string);\n\n        case 'Ho':\n          return match.ordinalNumber(string, {\n            unit: 'hour'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 23;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCHours(value, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n  },\n  // Hour [0-11]\n  K: {\n    priority: 70,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'K':\n          return parseNumericPattern(numericPatterns.hour11h, string);\n\n        case 'Ko':\n          return match.ordinalNumber(string, {\n            unit: 'hour'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 11;\n    },\n    set: function (date, _flags, value, _options) {\n      var isPM = date.getUTCHours() >= 12;\n\n      if (isPM && value < 12) {\n        date.setUTCHours(value + 12, 0, 0, 0);\n      } else {\n        date.setUTCHours(value, 0, 0, 0);\n      }\n\n      return date;\n    },\n    incompatibleTokens: ['h', 'H', 'k', 't', 'T']\n  },\n  // Hour [1-24]\n  k: {\n    priority: 70,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'k':\n          return parseNumericPattern(numericPatterns.hour24h, string);\n\n        case 'ko':\n          return match.ordinalNumber(string, {\n            unit: 'hour'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 1 && value <= 24;\n    },\n    set: function (date, _flags, value, _options) {\n      var hours = value <= 24 ? value % 24 : value;\n      date.setUTCHours(hours, 0, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n  },\n  // Minute\n  m: {\n    priority: 60,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 'm':\n          return parseNumericPattern(numericPatterns.minute, string);\n\n        case 'mo':\n          return match.ordinalNumber(string, {\n            unit: 'minute'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 59;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMinutes(value, 0, 0);\n      return date;\n    },\n    incompatibleTokens: ['t', 'T']\n  },\n  // Second\n  s: {\n    priority: 50,\n    parse: function (string, token, match, _options) {\n      switch (token) {\n        case 's':\n          return parseNumericPattern(numericPatterns.second, string);\n\n        case 'so':\n          return match.ordinalNumber(string, {\n            unit: 'second'\n          });\n\n        default:\n          return parseNDigits(token.length, string);\n      }\n    },\n    validate: function (_date, value, _options) {\n      return value >= 0 && value <= 59;\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCSeconds(value, 0);\n      return date;\n    },\n    incompatibleTokens: ['t', 'T']\n  },\n  // Fraction of second\n  S: {\n    priority: 30,\n    parse: function (string, token, _match, _options) {\n      var valueCallback = function (value) {\n        return Math.floor(value * Math.pow(10, -token.length + 3));\n      };\n\n      return parseNDigits(token.length, string, valueCallback);\n    },\n    set: function (date, _flags, value, _options) {\n      date.setUTCMilliseconds(value);\n      return date;\n    },\n    incompatibleTokens: ['t', 'T']\n  },\n  // Timezone (ISO-8601. +00:00 is `'Z'`)\n  X: {\n    priority: 10,\n    parse: function (string, token, _match, _options) {\n      switch (token) {\n        case 'X':\n          return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n        case 'XX':\n          return parseTimezonePattern(timezonePatterns.basic, string);\n\n        case 'XXXX':\n          return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n        case 'XXXXX':\n          return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n        case 'XXX':\n        default:\n          return parseTimezonePattern(timezonePatterns.extended, string);\n      }\n    },\n    set: function (date, flags, value, _options) {\n      if (flags.timestampIsSet) {\n        return date;\n      }\n\n      return new Date(date.getTime() - value);\n    },\n    incompatibleTokens: ['t', 'T', 'x']\n  },\n  // Timezone (ISO-8601)\n  x: {\n    priority: 10,\n    parse: function (string, token, _match, _options) {\n      switch (token) {\n        case 'x':\n          return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n        case 'xx':\n          return parseTimezonePattern(timezonePatterns.basic, string);\n\n        case 'xxxx':\n          return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n        case 'xxxxx':\n          return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n        case 'xxx':\n        default:\n          return parseTimezonePattern(timezonePatterns.extended, string);\n      }\n    },\n    set: function (date, flags, value, _options) {\n      if (flags.timestampIsSet) {\n        return date;\n      }\n\n      return new Date(date.getTime() - value);\n    },\n    incompatibleTokens: ['t', 'T', 'X']\n  },\n  // Seconds timestamp\n  t: {\n    priority: 40,\n    parse: function (string, _token, _match, _options) {\n      return parseAnyDigitsSigned(string);\n    },\n    set: function (_date, _flags, value, _options) {\n      return [new Date(value * 1000), {\n        timestampIsSet: true\n      }];\n    },\n    incompatibleTokens: '*'\n  },\n  // Milliseconds timestamp\n  T: {\n    priority: 20,\n    parse: function (string, _token, _match, _options) {\n      return parseAnyDigitsSigned(string);\n    },\n    set: function (_date, _flags, value, _options) {\n      return [new Date(value), {\n        timestampIsSet: true\n      }];\n    },\n    incompatibleTokens: '*'\n  }\n};\nexport default parsers;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var week = toInteger(dirtyWeek);\n  var diff = getUTCWeek(date, options) - week;\n  date.setUTCDate(date.getUTCDate() - diff * 7);\n  return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var isoWeek = toInteger(dirtyISOWeek);\n  var diff = getUTCISOWeek(date) - isoWeek;\n  date.setUTCDate(date.getUTCDate() - diff * 7);\n  return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n  requiredArgs(2, arguments);\n  var day = toInteger(dirtyDay);\n\n  if (day % 7 === 0) {\n    day = day - 7;\n  }\n\n  var weekStartsOn = 1;\n  var date = toDate(dirtyDate);\n  var currentDay = date.getUTCDay();\n  var remainder = day % 7;\n  var dayIndex = (remainder + 7) % 7;\n  var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n}","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit                            |Prior| Pattern | Result examples                   | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era                             | 140 | G..GGG  | AD, BC                            |       |\n * |                                 |     | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 |     | GGGGG   | A, B                              |       |\n * | Calendar year                   | 130 | y       | 44, 1, 1900, 2017, 9999           | 4     |\n * |                                 |     | yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |\n * |                                 |     | yy      | 44, 01, 00, 17                    | 4     |\n * |                                 |     | yyy     | 044, 001, 123, 999                | 4     |\n * |                                 |     | yyyy    | 0044, 0001, 1900, 2017            | 4     |\n * |                                 |     | yyyyy   | ...                               | 2,4   |\n * | Local week-numbering year       | 130 | Y       | 44, 1, 1900, 2017, 9000           | 4     |\n * |                                 |     | Yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |\n * |                                 |     | YY      | 44, 01, 00, 17                    | 4,6   |\n * |                                 |     | YYY     | 044, 001, 123, 999                | 4     |\n * |                                 |     | YYYY    | 0044, 0001, 1900, 2017            | 4,6   |\n * |                                 |     | YYYYY   | ...                               | 2,4   |\n * | ISO week-numbering year         | 130 | R       | -43, 1, 1900, 2017, 9999, -9999   | 4,5   |\n * |                                 |     | RR      | -43, 01, 00, 17                   | 4,5   |\n * |                                 |     | RRR     | -043, 001, 123, 999, -999         | 4,5   |\n * |                                 |     | RRRR    | -0043, 0001, 2017, 9999, -9999    | 4,5   |\n * |                                 |     | RRRRR   | ...                               | 2,4,5 |\n * | Extended year                   | 130 | u       | -43, 1, 1900, 2017, 9999, -999    | 4     |\n * |                                 |     | uu      | -43, 01, 99, -99                  | 4     |\n * |                                 |     | uuu     | -043, 001, 123, 999, -999         | 4     |\n * |                                 |     | uuuu    | -0043, 0001, 2017, 9999, -9999    | 4     |\n * |                                 |     | uuuuu   | ...                               | 2,4   |\n * | Quarter (formatting)            | 120 | Q       | 1, 2, 3, 4                        |       |\n * |                                 |     | Qo      | 1st, 2nd, 3rd, 4th                | 5     |\n * |                                 |     | QQ      | 01, 02, 03, 04                    |       |\n * |                                 |     | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 |     | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 |     | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | 120 | q       | 1, 2, 3, 4                        |       |\n * |                                 |     | qo      | 1st, 2nd, 3rd, 4th                | 5     |\n * |                                 |     | qq      | 01, 02, 03, 04                    |       |\n * |                                 |     | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 |     | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 |     | qqqqq   | 1, 2, 3, 4                        | 3     |\n * | Month (formatting)              | 110 | M       | 1, 2, ..., 12                     |       |\n * |                                 |     | Mo      | 1st, 2nd, ..., 12th               | 5     |\n * |                                 |     | MM      | 01, 02, ..., 12                   |       |\n * |                                 |     | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 |     | MMMM    | January, February, ..., December  | 2     |\n * |                                 |     | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | 110 | L       | 1, 2, ..., 12                     |       |\n * |                                 |     | Lo      | 1st, 2nd, ..., 12th               | 5     |\n * |                                 |     | LL      | 01, 02, ..., 12                   |       |\n * |                                 |     | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 |     | LLLL    | January, February, ..., December  | 2     |\n * |                                 |     | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | 100 | w       | 1, 2, ..., 53                     |       |\n * |                                 |     | wo      | 1st, 2nd, ..., 53th               | 5     |\n * |                                 |     | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | 100 | I       | 1, 2, ..., 53                     | 5     |\n * |                                 |     | Io      | 1st, 2nd, ..., 53th               | 5     |\n * |                                 |     | II      | 01, 02, ..., 53                   | 5     |\n * | Day of month                    |  90 | d       | 1, 2, ..., 31                     |       |\n * |                                 |     | do      | 1st, 2nd, ..., 31st               | 5     |\n * |                                 |     | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     |  90 | D       | 1, 2, ..., 365, 366               | 7     |\n * |                                 |     | Do      | 1st, 2nd, ..., 365th, 366th       | 5     |\n * |                                 |     | DD      | 01, 02, ..., 365, 366             | 7     |\n * |                                 |     | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 |     | DDDD    | ...                               | 2     |\n * | Day of week (formatting)        |  90 | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 |     | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    |  90 | i       | 1, 2, 3, ..., 7                   | 5     |\n * |                                 |     | io      | 1st, 2nd, ..., 7th                | 5     |\n * |                                 |     | ii      | 01, 02, ..., 07                   | 5     |\n * |                                 |     | iii     | Mon, Tue, Wed, ..., Sun           | 5     |\n * |                                 |     | iiii    | Monday, Tuesday, ..., Sunday      | 2,5   |\n * |                                 |     | iiiii   | M, T, W, T, F, S, S               | 5     |\n * |                                 |     | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 5     |\n * | Local day of week (formatting)  |  90 | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 |     | eo      | 2nd, 3rd, ..., 1st                | 5     |\n * |                                 |     | ee      | 02, 03, ..., 01                   |       |\n * |                                 |     | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 |     | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) |  90 | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 |     | co      | 2nd, 3rd, ..., 1st                | 5     |\n * |                                 |     | cc      | 02, 03, ..., 01                   |       |\n * |                                 |     | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 |     | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          |  80 | a..aaa  | AM, PM                            |       |\n * |                                 |     | aaaa    | a.m., p.m.                        | 2     |\n * |                                 |     | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          |  80 | b..bbb  | AM, PM, noon, midnight            |       |\n * |                                 |     | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 |     | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             |  80 | B..BBB  | at night, in the morning, ...     |       |\n * |                                 |     | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 |     | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     |  70 | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 |     | ho      | 1st, 2nd, ..., 11th, 12th         | 5     |\n * |                                 |     | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     |  70 | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 |     | Ho      | 0th, 1st, 2nd, ..., 23rd          | 5     |\n * |                                 |     | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     |  70 | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 |     | Ko      | 1st, 2nd, ..., 11th, 0th          | 5     |\n * |                                 |     | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     |  70 | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 |     | ko      | 24th, 1st, 2nd, ..., 23rd         | 5     |\n * |                                 |     | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          |  60 | m       | 0, 1, ..., 59                     |       |\n * |                                 |     | mo      | 0th, 1st, ..., 59th               | 5     |\n * |                                 |     | mm      | 00, 01, ..., 59                   |       |\n * | Second                          |  50 | s       | 0, 1, ..., 59                     |       |\n * |                                 |     | so      | 0th, 1st, ..., 59th               | 5     |\n * |                                 |     | ss      | 00, 01, ..., 59                   |       |\n * | Seconds timestamp               |  40 | t       | 512969520                         |       |\n * |                                 |     | tt      | ...                               | 2     |\n * | Fraction of second              |  30 | S       | 0, 1, ..., 9                      |       |\n * |                                 |     | SS      | 00, 01, ..., 99                   |       |\n * |                                 |     | SSS     | 000, 001, ..., 999                |       |\n * |                                 |     | SSSS    | ...                               | 2     |\n * | Milliseconds timestamp          |  20 | T       | 512969520900                      |       |\n * |                                 |     | TT      | ...                               | 2     |\n * | Timezone (ISO-8601 w/ Z)        |  10 | X       | -08, +0530, Z                     |       |\n * |                                 |     | XX      | -0800, +0530, Z                   |       |\n * |                                 |     | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 |     | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 |     | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       |  10 | x       | -08, +0530, +00                   |       |\n * |                                 |     | xx      | -0800, +0530, +0000               |       |\n * |                                 |     | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 |     | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 |     | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Long localized date             |  NA | P       | 05/29/1453                        | 5,8   |\n * |                                 |     | PP      | May 29, 1453                      |       |\n * |                                 |     | PPP     | May 29th, 1453                    |       |\n * |                                 |     | PPPP    | Sunday, May 29th, 1453            | 2,5,8 |\n * | Long localized time             |  NA | p       | 12:00 AM                          | 5,8   |\n * |                                 |     | pp      | 12:00:00 AM                       |       |\n * | Combination of date and time    |  NA | Pp      | 05/29/1453, 12:00 AM              |       |\n * |                                 |     | PPpp    | May 29, 1453, 12:00:00 AM         |       |\n * |                                 |     | PPPpp   | May 29th, 1453 at ...             |       |\n * |                                 |     | PPPPpp  | Sunday, May 29th, 1453 at ...     | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular.\n *    In `format` function, they will produce different result:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n *    `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table:\n *    - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n *      as wide as the sequence\n *    - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n *      These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n *    `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n *    `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n *    while `uu` will just assign the year as is:\n *\n *    `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n *    `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n *    and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n *    on the given locale.\n *\n *    using `en-US` locale: `P` => `MM/dd/yyyy`\n *    using `en-US` locale: `p` => `hh:mm a`\n *    using `pt-BR` locale: `P` => `dd/MM/yyyy`\n *    using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n *   Now `parse` is a new function which parses a string using a provided format.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   parse('2016-01-01')\n *\n *   // v2.0.0 onward (toDate no longer accepts a string)\n *   toDate(1392098430000) // Unix to timestamp\n *   toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n *   parse('2016-01-01', 'yyyy-MM-dd', new Date())\n *   ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n *   see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n *   see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n *   locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n  requiredArgs(3, arguments);\n  var dateString = String(dirtyDateString);\n  var formatString = String(dirtyFormatString);\n  var options = dirtyOptions || {};\n  var locale = options.locale || defaultLocale;\n\n  if (!locale.match) {\n    throw new RangeError('locale must contain match property');\n  }\n\n  var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n  var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n  var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n  }\n\n  var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  if (formatString === '') {\n    if (dateString === '') {\n      return toDate(dirtyReferenceDate);\n    } else {\n      return new Date(NaN);\n    }\n  }\n\n  var subFnOptions = {\n    firstWeekContainsDate: firstWeekContainsDate,\n    weekStartsOn: weekStartsOn,\n    locale: locale\n  }; // If timezone isn't specified, it will be set to the system timezone\n\n  var setters = [{\n    priority: TIMEZONE_UNIT_PRIORITY,\n    subPriority: -1,\n    set: dateToSystemTimezone,\n    index: 0\n  }];\n  var i;\n  var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n    var firstCharacter = substring[0];\n\n    if (firstCharacter === 'p' || firstCharacter === 'P') {\n      var longFormatter = longFormatters[firstCharacter];\n      return longFormatter(substring, locale.formatLong, subFnOptions);\n    }\n\n    return substring;\n  }).join('').match(formattingTokensRegExp);\n  var usedTokens = [];\n\n  for (i = 0; i < tokens.length; i++) {\n    var token = tokens[i];\n\n    if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n      throwProtectedError(token, formatString, dirtyDateString);\n    }\n\n    if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n      throwProtectedError(token, formatString, dirtyDateString);\n    }\n\n    var firstCharacter = token[0];\n    var parser = parsers[firstCharacter];\n\n    if (parser) {\n      var incompatibleTokens = parser.incompatibleTokens;\n\n      if (Array.isArray(incompatibleTokens)) {\n        var incompatibleToken = void 0;\n\n        for (var _i = 0; _i < usedTokens.length; _i++) {\n          var usedToken = usedTokens[_i].token;\n\n          if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n            incompatibleToken = usedTokens[_i];\n            break;\n          }\n        }\n\n        if (incompatibleToken) {\n          throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n        }\n      } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n        throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n      }\n\n      usedTokens.push({\n        token: firstCharacter,\n        fullToken: token\n      });\n      var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n      if (!parseResult) {\n        return new Date(NaN);\n      }\n\n      setters.push({\n        priority: parser.priority,\n        subPriority: parser.subPriority || 0,\n        set: parser.set,\n        validate: parser.validate,\n        value: parseResult.value,\n        index: setters.length\n      });\n      dateString = parseResult.rest;\n    } else {\n      if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n        throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n      } // Replace two single quote characters with one single quote character\n\n\n      if (token === \"''\") {\n        token = \"'\";\n      } else if (firstCharacter === \"'\") {\n        token = cleanEscapedString(token);\n      } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n      if (dateString.indexOf(token) === 0) {\n        dateString = dateString.slice(token.length);\n      } else {\n        return new Date(NaN);\n      }\n    }\n  } // Check if the remaining input contains something other than whitespace\n\n\n  if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n    return new Date(NaN);\n  }\n\n  var uniquePrioritySetters = setters.map(function (setter) {\n    return setter.priority;\n  }).sort(function (a, b) {\n    return b - a;\n  }).filter(function (priority, index, array) {\n    return array.indexOf(priority) === index;\n  }).map(function (priority) {\n    return setters.filter(function (setter) {\n      return setter.priority === priority;\n    }).sort(function (a, b) {\n      return b.subPriority - a.subPriority;\n    });\n  }).map(function (setterArray) {\n    return setterArray[0];\n  });\n  var date = toDate(dirtyReferenceDate);\n\n  if (isNaN(date)) {\n    return new Date(NaN);\n  } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n  // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n  var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n  var flags = {};\n\n  for (i = 0; i < uniquePrioritySetters.length; i++) {\n    var setter = uniquePrioritySetters[i];\n\n    if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n      return new Date(NaN);\n    }\n\n    var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n    if (result[0]) {\n      utcDate = result[0];\n      assign(flags, result[1]); // Result is date\n    } else {\n      utcDate = result;\n    }\n  }\n\n  return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n  if (flags.timestampIsSet) {\n    return date;\n  }\n\n  var convertedDate = new Date(0);\n  convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n  convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n  return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var hours = toInteger(dirtyHours);\n  date.setHours(hours);\n  return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var minutes = toInteger(dirtyMinutes);\n  date.setMinutes(minutes);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var year = date.getFullYear();\n  var monthIndex = date.getMonth();\n  var lastDayOfMonth = new Date(0);\n  lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n  lastDayOfMonth.setHours(0, 0, 0, 0);\n  return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var month = toInteger(dirtyMonth);\n  var year = date.getFullYear();\n  var day = date.getDate();\n  var dateWithDesiredMonth = new Date(0);\n  dateWithDesiredMonth.setFullYear(year, month, 15);\n  dateWithDesiredMonth.setHours(0, 0, 0, 0);\n  var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n  // if the original date was the last day of the longer month\n\n  date.setMonth(month, Math.min(day, daysInMonth));\n  return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var quarter = toInteger(dirtyQuarter);\n  var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n  var diff = quarter - oldQuarter;\n  return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var seconds = toInteger(dirtySeconds);\n  date.setSeconds(seconds);\n  return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n  requiredArgs(2, arguments);\n  var date = toDate(dirtyDate);\n  var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n  if (isNaN(date.getTime())) {\n    return new Date(NaN);\n  }\n\n  date.setFullYear(year);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  var currentMonth = date.getMonth();\n  var month = currentMonth - currentMonth % 3;\n  date.setMonth(month, 1);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n  requiredArgs(1, arguments);\n  var options = dirtyOptions || {};\n  var locale = options.locale;\n  var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n  var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n  var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n\n  var date = toDate(dirtyDate);\n  var day = date.getDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setDate(date.getDate() - diff);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n  requiredArgs(1, arguments);\n  var cleanDate = toDate(dirtyDate);\n  var date = new Date(0);\n  date.setFullYear(cleanDate.getFullYear(), 0, 1);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addDays(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addHours from \"../addHours/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addHours(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMinutes from \"../addMinutes/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMinutes(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n  requiredArgs(2, arguments);\n  var amount = toInteger(dirtyAmount);\n  return addYears(dirtyDate, -amount);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n  requiredArgs(1, arguments);\n  var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n  if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n    // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n    return new Date(argument.getTime());\n  } else if (typeof argument === 'number' || argStr === '[object Number]') {\n    return new Date(argument);\n  } else {\n    if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n      // eslint-disable-next-line no-console\n      console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n      console.warn(new Error().stack);\n    }\n\n    return new Date(NaN);\n  }\n}","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","const {\n  hasOwnProperty,\n  setPrototypeOf,\n  isFrozen,\n  getPrototypeOf,\n  getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!apply) {\n  apply = function (fun, thisValue, args) {\n    return fun.apply(thisValue, args);\n  };\n}\n\nif (!freeze) {\n  freeze = function (x) {\n    return x;\n  };\n}\n\nif (!seal) {\n  seal = function (x) {\n    return x;\n  };\n}\n\nif (!construct) {\n  construct = function (Func, args) {\n    return new Func(...args);\n  };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\nexport function unapply(func) {\n  return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\nexport function unconstruct(func) {\n  return (...args) => construct(func, args);\n}\n\n/* Add properties to a lookup table */\nexport function addToSet(set, array, transformCaseFunc) {\n  transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n  if (setPrototypeOf) {\n    // Make 'in' and truthy checks like Boolean(set.constructor)\n    // independent of any properties defined on Object.prototype.\n    // Prevent prototype setters from intercepting set as a this value.\n    setPrototypeOf(set, null);\n  }\n\n  let l = array.length;\n  while (l--) {\n    let element = array[l];\n    if (typeof element === 'string') {\n      const lcElement = transformCaseFunc(element);\n      if (lcElement !== element) {\n        // Config presets (e.g. tags.js, attrs.js) are immutable.\n        if (!isFrozen(array)) {\n          array[l] = lcElement;\n        }\n\n        element = lcElement;\n      }\n    }\n\n    set[element] = true;\n  }\n\n  return set;\n}\n\n/* Shallow clone an object */\nexport function clone(object) {\n  const newObject = create(null);\n\n  let property;\n  for (property in object) {\n    if (apply(hasOwnProperty, object, [property])) {\n      newObject[property] = object[property];\n    }\n  }\n\n  return newObject;\n}\n\n/* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\nfunction lookupGetter(object, prop) {\n  while (object !== null) {\n    const desc = getOwnPropertyDescriptor(object, prop);\n    if (desc) {\n      if (desc.get) {\n        return unapply(desc.get);\n      }\n\n      if (typeof desc.value === 'function') {\n        return unapply(desc.value);\n      }\n    }\n\n    object = getPrototypeOf(object);\n  }\n\n  function fallbackValue(element) {\n    console.warn('fallback value for', element);\n    return null;\n  }\n\n  return fallbackValue;\n}\n\nexport {\n  // Array\n  arrayForEach,\n  arrayIndexOf,\n  arrayPop,\n  arrayPush,\n  arraySlice,\n  // Object\n  freeze,\n  getPrototypeOf,\n  getOwnPropertyDescriptor,\n  hasOwnProperty,\n  isFrozen,\n  setPrototypeOf,\n  seal,\n  // RegExp\n  regExpTest,\n  // String\n  stringIndexOf,\n  stringMatch,\n  stringReplace,\n  stringToLowerCase,\n  stringTrim,\n  // Errors\n  typeErrorCreate,\n  // Other\n  lookupGetter,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n  'a',\n  'abbr',\n  'acronym',\n  'address',\n  'area',\n  'article',\n  'aside',\n  'audio',\n  'b',\n  'bdi',\n  'bdo',\n  'big',\n  'blink',\n  'blockquote',\n  'body',\n  'br',\n  'button',\n  'canvas',\n  'caption',\n  'center',\n  'cite',\n  'code',\n  'col',\n  'colgroup',\n  'content',\n  'data',\n  'datalist',\n  'dd',\n  'decorator',\n  'del',\n  'details',\n  'dfn',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'element',\n  'em',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'font',\n  'footer',\n  'form',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hgroup',\n  'hr',\n  'html',\n  'i',\n  'img',\n  'input',\n  'ins',\n  'kbd',\n  'label',\n  'legend',\n  'li',\n  'main',\n  'map',\n  'mark',\n  'marquee',\n  'menu',\n  'menuitem',\n  'meter',\n  'nav',\n  'nobr',\n  'ol',\n  'optgroup',\n  'option',\n  'output',\n  'p',\n  'picture',\n  'pre',\n  'progress',\n  'q',\n  'rp',\n  'rt',\n  'ruby',\n  's',\n  'samp',\n  'section',\n  'select',\n  'shadow',\n  'small',\n  'source',\n  'spacer',\n  'span',\n  'strike',\n  'strong',\n  'style',\n  'sub',\n  'summary',\n  'sup',\n  'table',\n  'tbody',\n  'td',\n  'template',\n  'textarea',\n  'tfoot',\n  'th',\n  'thead',\n  'time',\n  'tr',\n  'track',\n  'tt',\n  'u',\n  'ul',\n  'var',\n  'video',\n  'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n  'svg',\n  'a',\n  'altglyph',\n  'altglyphdef',\n  'altglyphitem',\n  'animatecolor',\n  'animatemotion',\n  'animatetransform',\n  'circle',\n  'clippath',\n  'defs',\n  'desc',\n  'ellipse',\n  'filter',\n  'font',\n  'g',\n  'glyph',\n  'glyphref',\n  'hkern',\n  'image',\n  'line',\n  'lineargradient',\n  'marker',\n  'mask',\n  'metadata',\n  'mpath',\n  'path',\n  'pattern',\n  'polygon',\n  'polyline',\n  'radialgradient',\n  'rect',\n  'stop',\n  'style',\n  'switch',\n  'symbol',\n  'text',\n  'textpath',\n  'title',\n  'tref',\n  'tspan',\n  'view',\n  'vkern',\n]);\n\nexport const svgFilters = freeze([\n  'feBlend',\n  'feColorMatrix',\n  'feComponentTransfer',\n  'feComposite',\n  'feConvolveMatrix',\n  'feDiffuseLighting',\n  'feDisplacementMap',\n  'feDistantLight',\n  'feFlood',\n  'feFuncA',\n  'feFuncB',\n  'feFuncG',\n  'feFuncR',\n  'feGaussianBlur',\n  'feImage',\n  'feMerge',\n  'feMergeNode',\n  'feMorphology',\n  'feOffset',\n  'fePointLight',\n  'feSpecularLighting',\n  'feSpotLight',\n  'feTile',\n  'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n  'animate',\n  'color-profile',\n  'cursor',\n  'discard',\n  'fedropshadow',\n  'font-face',\n  'font-face-format',\n  'font-face-name',\n  'font-face-src',\n  'font-face-uri',\n  'foreignobject',\n  'hatch',\n  'hatchpath',\n  'mesh',\n  'meshgradient',\n  'meshpatch',\n  'meshrow',\n  'missing-glyph',\n  'script',\n  'set',\n  'solidcolor',\n  'unknown',\n  'use',\n]);\n\nexport const mathMl = freeze([\n  'math',\n  'menclose',\n  'merror',\n  'mfenced',\n  'mfrac',\n  'mglyph',\n  'mi',\n  'mlabeledtr',\n  'mmultiscripts',\n  'mn',\n  'mo',\n  'mover',\n  'mpadded',\n  'mphantom',\n  'mroot',\n  'mrow',\n  'ms',\n  'mspace',\n  'msqrt',\n  'mstyle',\n  'msub',\n  'msup',\n  'msubsup',\n  'mtable',\n  'mtd',\n  'mtext',\n  'mtr',\n  'munder',\n  'munderover',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n  'maction',\n  'maligngroup',\n  'malignmark',\n  'mlongdiv',\n  'mscarries',\n  'mscarry',\n  'msgroup',\n  'mstack',\n  'msline',\n  'msrow',\n  'semantics',\n  'annotation',\n  'annotation-xml',\n  'mprescripts',\n  'none',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n  'accept',\n  'action',\n  'align',\n  'alt',\n  'autocapitalize',\n  'autocomplete',\n  'autopictureinpicture',\n  'autoplay',\n  'background',\n  'bgcolor',\n  'border',\n  'capture',\n  'cellpadding',\n  'cellspacing',\n  'checked',\n  'cite',\n  'class',\n  'clear',\n  'color',\n  'cols',\n  'colspan',\n  'controls',\n  'controlslist',\n  'coords',\n  'crossorigin',\n  'datetime',\n  'decoding',\n  'default',\n  'dir',\n  'disabled',\n  'disablepictureinpicture',\n  'disableremoteplayback',\n  'download',\n  'draggable',\n  'enctype',\n  'enterkeyhint',\n  'face',\n  'for',\n  'headers',\n  'height',\n  'hidden',\n  'high',\n  'href',\n  'hreflang',\n  'id',\n  'inputmode',\n  'integrity',\n  'ismap',\n  'kind',\n  'label',\n  'lang',\n  'list',\n  'loading',\n  'loop',\n  'low',\n  'max',\n  'maxlength',\n  'media',\n  'method',\n  'min',\n  'minlength',\n  'multiple',\n  'muted',\n  'name',\n  'nonce',\n  'noshade',\n  'novalidate',\n  'nowrap',\n  'open',\n  'optimum',\n  'pattern',\n  'placeholder',\n  'playsinline',\n  'poster',\n  'preload',\n  'pubdate',\n  'radiogroup',\n  'readonly',\n  'rel',\n  'required',\n  'rev',\n  'reversed',\n  'role',\n  'rows',\n  'rowspan',\n  'spellcheck',\n  'scope',\n  'selected',\n  'shape',\n  'size',\n  'sizes',\n  'span',\n  'srclang',\n  'start',\n  'src',\n  'srcset',\n  'step',\n  'style',\n  'summary',\n  'tabindex',\n  'title',\n  'translate',\n  'type',\n  'usemap',\n  'valign',\n  'value',\n  'width',\n  'xmlns',\n  'slot',\n]);\n\nexport const svg = freeze([\n  'accent-height',\n  'accumulate',\n  'additive',\n  'alignment-baseline',\n  'ascent',\n  'attributename',\n  'attributetype',\n  'azimuth',\n  'basefrequency',\n  'baseline-shift',\n  'begin',\n  'bias',\n  'by',\n  'class',\n  'clip',\n  'clippathunits',\n  'clip-path',\n  'clip-rule',\n  'color',\n  'color-interpolation',\n  'color-interpolation-filters',\n  'color-profile',\n  'color-rendering',\n  'cx',\n  'cy',\n  'd',\n  'dx',\n  'dy',\n  'diffuseconstant',\n  'direction',\n  'display',\n  'divisor',\n  'dur',\n  'edgemode',\n  'elevation',\n  'end',\n  'fill',\n  'fill-opacity',\n  'fill-rule',\n  'filter',\n  'filterunits',\n  'flood-color',\n  'flood-opacity',\n  'font-family',\n  'font-size',\n  'font-size-adjust',\n  'font-stretch',\n  'font-style',\n  'font-variant',\n  'font-weight',\n  'fx',\n  'fy',\n  'g1',\n  'g2',\n  'glyph-name',\n  'glyphref',\n  'gradientunits',\n  'gradienttransform',\n  'height',\n  'href',\n  'id',\n  'image-rendering',\n  'in',\n  'in2',\n  'k',\n  'k1',\n  'k2',\n  'k3',\n  'k4',\n  'kerning',\n  'keypoints',\n  'keysplines',\n  'keytimes',\n  'lang',\n  'lengthadjust',\n  'letter-spacing',\n  'kernelmatrix',\n  'kernelunitlength',\n  'lighting-color',\n  'local',\n  'marker-end',\n  'marker-mid',\n  'marker-start',\n  'markerheight',\n  'markerunits',\n  'markerwidth',\n  'maskcontentunits',\n  'maskunits',\n  'max',\n  'mask',\n  'media',\n  'method',\n  'mode',\n  'min',\n  'name',\n  'numoctaves',\n  'offset',\n  'operator',\n  'opacity',\n  'order',\n  'orient',\n  'orientation',\n  'origin',\n  'overflow',\n  'paint-order',\n  'path',\n  'pathlength',\n  'patterncontentunits',\n  'patterntransform',\n  'patternunits',\n  'points',\n  'preservealpha',\n  'preserveaspectratio',\n  'primitiveunits',\n  'r',\n  'rx',\n  'ry',\n  'radius',\n  'refx',\n  'refy',\n  'repeatcount',\n  'repeatdur',\n  'restart',\n  'result',\n  'rotate',\n  'scale',\n  'seed',\n  'shape-rendering',\n  'specularconstant',\n  'specularexponent',\n  'spreadmethod',\n  'startoffset',\n  'stddeviation',\n  'stitchtiles',\n  'stop-color',\n  'stop-opacity',\n  'stroke-dasharray',\n  'stroke-dashoffset',\n  'stroke-linecap',\n  'stroke-linejoin',\n  'stroke-miterlimit',\n  'stroke-opacity',\n  'stroke',\n  'stroke-width',\n  'style',\n  'surfacescale',\n  'systemlanguage',\n  'tabindex',\n  'targetx',\n  'targety',\n  'transform',\n  'transform-origin',\n  'text-anchor',\n  'text-decoration',\n  'text-rendering',\n  'textlength',\n  'type',\n  'u1',\n  'u2',\n  'unicode',\n  'values',\n  'viewbox',\n  'visibility',\n  'version',\n  'vert-adv-y',\n  'vert-origin-x',\n  'vert-origin-y',\n  'width',\n  'word-spacing',\n  'wrap',\n  'writing-mode',\n  'xchannelselector',\n  'ychannelselector',\n  'x',\n  'x1',\n  'x2',\n  'xmlns',\n  'y',\n  'y1',\n  'y2',\n  'z',\n  'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n  'accent',\n  'accentunder',\n  'align',\n  'bevelled',\n  'close',\n  'columnsalign',\n  'columnlines',\n  'columnspan',\n  'denomalign',\n  'depth',\n  'dir',\n  'display',\n  'displaystyle',\n  'encoding',\n  'fence',\n  'frame',\n  'height',\n  'href',\n  'id',\n  'largeop',\n  'length',\n  'linethickness',\n  'lspace',\n  'lquote',\n  'mathbackground',\n  'mathcolor',\n  'mathsize',\n  'mathvariant',\n  'maxsize',\n  'minsize',\n  'movablelimits',\n  'notation',\n  'numalign',\n  'open',\n  'rowalign',\n  'rowlines',\n  'rowspacing',\n  'rowspan',\n  'rspace',\n  'rquote',\n  'scriptlevel',\n  'scriptminsize',\n  'scriptsizemultiplier',\n  'selection',\n  'separator',\n  'separators',\n  'stretchy',\n  'subscriptshift',\n  'supscriptshift',\n  'symmetric',\n  'voffset',\n  'width',\n  'xmlns',\n]);\n\nexport const xml = freeze([\n  'xlink:href',\n  'xml:id',\n  'xlink:title',\n  'xml:space',\n  'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n  /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n  addToSet,\n  clone,\n  freeze,\n  arrayForEach,\n  arrayPop,\n  arrayPush,\n  stringMatch,\n  stringReplace,\n  stringToLowerCase,\n  stringIndexOf,\n  stringTrim,\n  regExpTest,\n  typeErrorCreate,\n  lookupGetter,\n} from './utils.js';\n\nconst getGlobal = () => (typeof window === 'undefined' ? null : window);\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, document) {\n  if (\n    typeof trustedTypes !== 'object' ||\n    typeof trustedTypes.createPolicy !== 'function'\n  ) {\n    return null;\n  }\n\n  // Allow the callers to control the unique policy name\n  // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n  // Policy creation with duplicate names throws in Trusted Types.\n  let suffix = null;\n  const ATTR_NAME = 'data-tt-policy-suffix';\n  if (\n    document.currentScript &&\n    document.currentScript.hasAttribute(ATTR_NAME)\n  ) {\n    suffix = document.currentScript.getAttribute(ATTR_NAME);\n  }\n\n  const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n  try {\n    return trustedTypes.createPolicy(policyName, {\n      createHTML(html) {\n        return html;\n      },\n      createScriptURL(scriptUrl) {\n        return scriptUrl;\n      },\n    });\n  } catch (_) {\n    // Policy creation failed (most likely another DOMPurify script has\n    // already run). Skip creating the policy, as this will only cause errors\n    // if TT are enforced.\n    console.warn(\n      'TrustedTypes policy ' + policyName + ' could not be created.'\n    );\n    return null;\n  }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n  const DOMPurify = (root) => createDOMPurify(root);\n\n  /**\n   * Version label, exposed for easier checks\n   * if DOMPurify is up to date or not\n   */\n  DOMPurify.version = VERSION;\n\n  /**\n   * Array of elements that DOMPurify removed during sanitation.\n   * Empty if nothing was removed.\n   */\n  DOMPurify.removed = [];\n\n  if (!window || !window.document || window.document.nodeType !== 9) {\n    // Not running in a browser, provide a factory function\n    // so that you can pass your own Window\n    DOMPurify.isSupported = false;\n\n    return DOMPurify;\n  }\n\n  const originalDocument = window.document;\n\n  let { document } = window;\n  const {\n    DocumentFragment,\n    HTMLTemplateElement,\n    Node,\n    Element,\n    NodeFilter,\n    NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n    HTMLFormElement,\n    DOMParser,\n    trustedTypes,\n  } = window;\n\n  const ElementPrototype = Element.prototype;\n\n  const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n  const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n  const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n  const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n  // As per issue #47, the web-components registry is inherited by a\n  // new document created via createHTMLDocument. As per the spec\n  // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n  // a new empty registry is used when creating a template contents owner\n  // document, so we use that as our parent document to ensure nothing\n  // is inherited.\n  if (typeof HTMLTemplateElement === 'function') {\n    const template = document.createElement('template');\n    if (template.content && template.content.ownerDocument) {\n      document = template.content.ownerDocument;\n    }\n  }\n\n  const trustedTypesPolicy = _createTrustedTypesPolicy(\n    trustedTypes,\n    originalDocument\n  );\n  const emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n  const {\n    implementation,\n    createNodeIterator,\n    createDocumentFragment,\n    getElementsByTagName,\n  } = document;\n  const { importNode } = originalDocument;\n\n  let documentMode = {};\n  try {\n    documentMode = clone(document).documentMode ? document.documentMode : {};\n  } catch (_) {}\n\n  let hooks = {};\n\n  /**\n   * Expose whether this browser supports running the full DOMPurify.\n   */\n  DOMPurify.isSupported =\n    typeof getParentNode === 'function' &&\n    implementation &&\n    typeof implementation.createHTMLDocument !== 'undefined' &&\n    documentMode !== 9;\n\n  const {\n    MUSTACHE_EXPR,\n    ERB_EXPR,\n    DATA_ATTR,\n    ARIA_ATTR,\n    IS_SCRIPT_OR_DATA,\n    ATTR_WHITESPACE,\n  } = EXPRESSIONS;\n\n  let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n  /**\n   * We consider the elements and attributes below to be safe. Ideally\n   * don't add any new ones but feel free to remove unwanted ones.\n   */\n\n  /* allowed element names */\n  let ALLOWED_TAGS = null;\n  const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n    ...TAGS.html,\n    ...TAGS.svg,\n    ...TAGS.svgFilters,\n    ...TAGS.mathMl,\n    ...TAGS.text,\n  ]);\n\n  /* Allowed attribute names */\n  let ALLOWED_ATTR = null;\n  const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n    ...ATTRS.html,\n    ...ATTRS.svg,\n    ...ATTRS.mathMl,\n    ...ATTRS.xml,\n  ]);\n\n  /*\n   * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n   * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n   * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n   * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n   */\n  const CUSTOM_ELEMENT_HANDLING = Object.seal(\n    Object.create(null, {\n      tagNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null,\n      },\n      attributeNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null,\n      },\n      allowCustomizedBuiltInElements: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: false,\n      },\n    })\n  );\n\n  /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n  let FORBID_TAGS = null;\n\n  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n  let FORBID_ATTR = null;\n\n  /* Decide if ARIA attributes are okay */\n  let ALLOW_ARIA_ATTR = true;\n\n  /* Decide if custom data attributes are okay */\n  let ALLOW_DATA_ATTR = true;\n\n  /* Decide if unknown protocols are okay */\n  let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n  /* Output should be safe for common template engines.\n   * This means, DOMPurify removes data attributes, mustaches and ERB\n   */\n  let SAFE_FOR_TEMPLATES = false;\n\n  /* Decide if document with <html>... should be returned */\n  let WHOLE_DOCUMENT = false;\n\n  /* Track whether config is already set on this instance of DOMPurify. */\n  let SET_CONFIG = false;\n\n  /* Decide if all elements (e.g. style, script) must be children of\n   * document.body. By default, browsers might move them to document.head */\n  let FORCE_BODY = false;\n\n  /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n   * string (or a TrustedHTML object if Trusted Types are supported).\n   * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n   */\n  let RETURN_DOM = false;\n\n  /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n   * string  (or a TrustedHTML object if Trusted Types are supported) */\n  let RETURN_DOM_FRAGMENT = false;\n\n  /* Try to return a Trusted Type object instead of a string, return a string in\n   * case Trusted Types are not supported  */\n  let RETURN_TRUSTED_TYPE = false;\n\n  /* Output should be free from DOM clobbering attacks?\n   * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n   */\n  let SANITIZE_DOM = true;\n\n  /* Achieve full DOM Clobbering protection by isolating the namespace of named\n   * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n   *\n   * HTML/DOM spec rules that enable DOM Clobbering:\n   *   - Named Access on Window (§7.3.3)\n   *   - DOM Tree Accessors (§3.1.5)\n   *   - Form Element Parent-Child Relations (§4.10.3)\n   *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n   *   - HTMLCollection (§4.2.10.2)\n   *\n   * Namespace isolation is implemented by prefixing `id` and `name` attributes\n   * with a constant string, i.e., `user-content-`\n   */\n  let SANITIZE_NAMED_PROPS = false;\n  const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n  /* Keep element content when removing element? */\n  let KEEP_CONTENT = true;\n\n  /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n   * of importing it into a new Document and returning a sanitized copy */\n  let IN_PLACE = false;\n\n  /* Allow usage of profiles like html, svg and mathMl */\n  let USE_PROFILES = {};\n\n  /* Tags to ignore content of when KEEP_CONTENT is true */\n  let FORBID_CONTENTS = null;\n  const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n    'annotation-xml',\n    'audio',\n    'colgroup',\n    'desc',\n    'foreignobject',\n    'head',\n    'iframe',\n    'math',\n    'mi',\n    'mn',\n    'mo',\n    'ms',\n    'mtext',\n    'noembed',\n    'noframes',\n    'noscript',\n    'plaintext',\n    'script',\n    'style',\n    'svg',\n    'template',\n    'thead',\n    'title',\n    'video',\n    'xmp',\n  ]);\n\n  /* Tags that are safe for data: URIs */\n  let DATA_URI_TAGS = null;\n  const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n    'audio',\n    'video',\n    'img',\n    'source',\n    'image',\n    'track',\n  ]);\n\n  /* Attributes safe for values like \"javascript:\" */\n  let URI_SAFE_ATTRIBUTES = null;\n  const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n    'alt',\n    'class',\n    'for',\n    'id',\n    'label',\n    'name',\n    'pattern',\n    'placeholder',\n    'role',\n    'summary',\n    'title',\n    'value',\n    'style',\n    'xmlns',\n  ]);\n\n  const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n  const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n  const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n  /* Document namespace */\n  let NAMESPACE = HTML_NAMESPACE;\n  let IS_EMPTY_INPUT = false;\n\n  /* Parsing of strict XHTML documents */\n  let PARSER_MEDIA_TYPE;\n  const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n  const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n  let transformCaseFunc;\n\n  /* Keep a reference to config to pass to hooks */\n  let CONFIG = null;\n\n  /* Ideally, do not touch anything below this line */\n  /* ______________________________________________ */\n\n  const formElement = document.createElement('form');\n\n  const isRegexOrFunction = function (testValue) {\n    return testValue instanceof RegExp || testValue instanceof Function;\n  };\n\n  /**\n   * _parseConfig\n   *\n   * @param  {Object} cfg optional config literal\n   */\n  // eslint-disable-next-line complexity\n  const _parseConfig = function (cfg) {\n    if (CONFIG && CONFIG === cfg) {\n      return;\n    }\n\n    /* Shield configuration object from tampering */\n    if (!cfg || typeof cfg !== 'object') {\n      cfg = {};\n    }\n\n    /* Shield configuration object from prototype pollution */\n    cfg = clone(cfg);\n\n    PARSER_MEDIA_TYPE =\n      // eslint-disable-next-line unicorn/prefer-includes\n      SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n        ? (PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE)\n        : (PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE);\n\n    // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n    transformCaseFunc =\n      PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n        ? (x) => x\n        : stringToLowerCase;\n\n    /* Set configuration parameters */\n    ALLOWED_TAGS =\n      'ALLOWED_TAGS' in cfg\n        ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n        : DEFAULT_ALLOWED_TAGS;\n    ALLOWED_ATTR =\n      'ALLOWED_ATTR' in cfg\n        ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n        : DEFAULT_ALLOWED_ATTR;\n    URI_SAFE_ATTRIBUTES =\n      'ADD_URI_SAFE_ATTR' in cfg\n        ? addToSet(\n            clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n            cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n            transformCaseFunc // eslint-disable-line indent\n          ) // eslint-disable-line indent\n        : DEFAULT_URI_SAFE_ATTRIBUTES;\n    DATA_URI_TAGS =\n      'ADD_DATA_URI_TAGS' in cfg\n        ? addToSet(\n            clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n            cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n            transformCaseFunc // eslint-disable-line indent\n          ) // eslint-disable-line indent\n        : DEFAULT_DATA_URI_TAGS;\n    FORBID_CONTENTS =\n      'FORBID_CONTENTS' in cfg\n        ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n        : DEFAULT_FORBID_CONTENTS;\n    FORBID_TAGS =\n      'FORBID_TAGS' in cfg\n        ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n        : {};\n    FORBID_ATTR =\n      'FORBID_ATTR' in cfg\n        ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n        : {};\n    USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n    ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n    ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n    ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n    SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n    WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n    RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n    RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n    RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n    FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n    SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n    SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n    KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n    IN_PLACE = cfg.IN_PLACE || false; // Default false\n    IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n    NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n    if (\n      cfg.CUSTOM_ELEMENT_HANDLING &&\n      isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n    ) {\n      CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n        cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n    }\n\n    if (\n      cfg.CUSTOM_ELEMENT_HANDLING &&\n      isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n    ) {\n      CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n        cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n    }\n\n    if (\n      cfg.CUSTOM_ELEMENT_HANDLING &&\n      typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n        'boolean'\n    ) {\n      CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n        cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n    }\n\n    if (SAFE_FOR_TEMPLATES) {\n      ALLOW_DATA_ATTR = false;\n    }\n\n    if (RETURN_DOM_FRAGMENT) {\n      RETURN_DOM = true;\n    }\n\n    /* Parse profile info */\n    if (USE_PROFILES) {\n      ALLOWED_TAGS = addToSet({}, [...TAGS.text]);\n      ALLOWED_ATTR = [];\n      if (USE_PROFILES.html === true) {\n        addToSet(ALLOWED_TAGS, TAGS.html);\n        addToSet(ALLOWED_ATTR, ATTRS.html);\n      }\n\n      if (USE_PROFILES.svg === true) {\n        addToSet(ALLOWED_TAGS, TAGS.svg);\n        addToSet(ALLOWED_ATTR, ATTRS.svg);\n        addToSet(ALLOWED_ATTR, ATTRS.xml);\n      }\n\n      if (USE_PROFILES.svgFilters === true) {\n        addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n        addToSet(ALLOWED_ATTR, ATTRS.svg);\n        addToSet(ALLOWED_ATTR, ATTRS.xml);\n      }\n\n      if (USE_PROFILES.mathMl === true) {\n        addToSet(ALLOWED_TAGS, TAGS.mathMl);\n        addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n        addToSet(ALLOWED_ATTR, ATTRS.xml);\n      }\n    }\n\n    /* Merge configuration parameters */\n    if (cfg.ADD_TAGS) {\n      if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n        ALLOWED_TAGS = clone(ALLOWED_TAGS);\n      }\n\n      addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n    }\n\n    if (cfg.ADD_ATTR) {\n      if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n        ALLOWED_ATTR = clone(ALLOWED_ATTR);\n      }\n\n      addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n    }\n\n    if (cfg.ADD_URI_SAFE_ATTR) {\n      addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n    }\n\n    if (cfg.FORBID_CONTENTS) {\n      if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n        FORBID_CONTENTS = clone(FORBID_CONTENTS);\n      }\n\n      addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n    }\n\n    /* Add #text in case KEEP_CONTENT is set to true */\n    if (KEEP_CONTENT) {\n      ALLOWED_TAGS['#text'] = true;\n    }\n\n    /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n    if (WHOLE_DOCUMENT) {\n      addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n    }\n\n    /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n    if (ALLOWED_TAGS.table) {\n      addToSet(ALLOWED_TAGS, ['tbody']);\n      delete FORBID_TAGS.tbody;\n    }\n\n    // Prevent further manipulation of configuration.\n    // Not available in IE8, Safari 5, etc.\n    if (freeze) {\n      freeze(cfg);\n    }\n\n    CONFIG = cfg;\n  };\n\n  const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n    'mi',\n    'mo',\n    'mn',\n    'ms',\n    'mtext',\n  ]);\n\n  const HTML_INTEGRATION_POINTS = addToSet({}, [\n    'foreignobject',\n    'desc',\n    'title',\n    'annotation-xml',\n  ]);\n\n  // Certain elements are allowed in both SVG and HTML\n  // namespace. We need to specify them explicitly\n  // so that they don't get erroneously deleted from\n  // HTML namespace.\n  const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n    'title',\n    'style',\n    'font',\n    'a',\n    'script',\n  ]);\n\n  /* Keep track of all possible SVG and MathML tags\n   * so that we can perform the namespace checks\n   * correctly. */\n  const ALL_SVG_TAGS = addToSet({}, TAGS.svg);\n  addToSet(ALL_SVG_TAGS, TAGS.svgFilters);\n  addToSet(ALL_SVG_TAGS, TAGS.svgDisallowed);\n\n  const ALL_MATHML_TAGS = addToSet({}, TAGS.mathMl);\n  addToSet(ALL_MATHML_TAGS, TAGS.mathMlDisallowed);\n\n  /**\n   *\n   *\n   * @param  {Element} element a DOM element whose namespace is being checked\n   * @returns {boolean} Return false if the element has a\n   *  namespace that a spec-compliant parser would never\n   *  return. Return true otherwise.\n   */\n  const _checkValidNamespace = function (element) {\n    let parent = getParentNode(element);\n\n    // In JSDOM, if we're inside shadow DOM, then parentNode\n    // can be null. We just simulate parent in this case.\n    if (!parent || !parent.tagName) {\n      parent = {\n        namespaceURI: HTML_NAMESPACE,\n        tagName: 'template',\n      };\n    }\n\n    const tagName = stringToLowerCase(element.tagName);\n    const parentTagName = stringToLowerCase(parent.tagName);\n\n    if (element.namespaceURI === SVG_NAMESPACE) {\n      // The only way to switch from HTML namespace to SVG\n      // is via <svg>. If it happens via any other tag, then\n      // it should be killed.\n      if (parent.namespaceURI === HTML_NAMESPACE) {\n        return tagName === 'svg';\n      }\n\n      // The only way to switch from MathML to SVG is via\n      // svg if parent is either <annotation-xml> or MathML\n      // text integration points.\n      if (parent.namespaceURI === MATHML_NAMESPACE) {\n        return (\n          tagName === 'svg' &&\n          (parentTagName === 'annotation-xml' ||\n            MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n        );\n      }\n\n      // We only allow elements that are defined in SVG\n      // spec. All others are disallowed in SVG namespace.\n      return Boolean(ALL_SVG_TAGS[tagName]);\n    }\n\n    if (element.namespaceURI === MATHML_NAMESPACE) {\n      // The only way to switch from HTML namespace to MathML\n      // is via <math>. If it happens via any other tag, then\n      // it should be killed.\n      if (parent.namespaceURI === HTML_NAMESPACE) {\n        return tagName === 'math';\n      }\n\n      // The only way to switch from SVG to MathML is via\n      // <math> and HTML integration points\n      if (parent.namespaceURI === SVG_NAMESPACE) {\n        return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n      }\n\n      // We only allow elements that are defined in MathML\n      // spec. All others are disallowed in MathML namespace.\n      return Boolean(ALL_MATHML_TAGS[tagName]);\n    }\n\n    if (element.namespaceURI === HTML_NAMESPACE) {\n      // The only way to switch from SVG to HTML is via\n      // HTML integration points, and from MathML to HTML\n      // is via MathML text integration points\n      if (\n        parent.namespaceURI === SVG_NAMESPACE &&\n        !HTML_INTEGRATION_POINTS[parentTagName]\n      ) {\n        return false;\n      }\n\n      if (\n        parent.namespaceURI === MATHML_NAMESPACE &&\n        !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n      ) {\n        return false;\n      }\n\n      // We disallow tags that are specific for MathML\n      // or SVG and should never appear in HTML namespace\n      return (\n        !ALL_MATHML_TAGS[tagName] &&\n        (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n      );\n    }\n\n    // The code should never reach this place (this means\n    // that the element somehow got namespace that is not\n    // HTML, SVG or MathML). Return false just in case.\n    return false;\n  };\n\n  /**\n   * _forceRemove\n   *\n   * @param  {Node} node a DOM node\n   */\n  const _forceRemove = function (node) {\n    arrayPush(DOMPurify.removed, { element: node });\n    try {\n      // eslint-disable-next-line unicorn/prefer-dom-node-remove\n      node.parentNode.removeChild(node);\n    } catch (_) {\n      try {\n        node.outerHTML = emptyHTML;\n      } catch (_) {\n        node.remove();\n      }\n    }\n  };\n\n  /**\n   * _removeAttribute\n   *\n   * @param  {String} name an Attribute name\n   * @param  {Node} node a DOM node\n   */\n  const _removeAttribute = function (name, node) {\n    try {\n      arrayPush(DOMPurify.removed, {\n        attribute: node.getAttributeNode(name),\n        from: node,\n      });\n    } catch (_) {\n      arrayPush(DOMPurify.removed, {\n        attribute: null,\n        from: node,\n      });\n    }\n\n    node.removeAttribute(name);\n\n    // We void attribute values for unremovable \"is\"\" attributes\n    if (name === 'is' && !ALLOWED_ATTR[name]) {\n      if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n        try {\n          _forceRemove(node);\n        } catch (_) {}\n      } else {\n        try {\n          node.setAttribute(name, '');\n        } catch (_) {}\n      }\n    }\n  };\n\n  /**\n   * _initDocument\n   *\n   * @param  {String} dirty a string of dirty markup\n   * @return {Document} a DOM, filled with the dirty markup\n   */\n  const _initDocument = function (dirty) {\n    /* Create a HTML document */\n    let doc;\n    let leadingWhitespace;\n\n    if (FORCE_BODY) {\n      dirty = '<remove></remove>' + dirty;\n    } else {\n      /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n      const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n      leadingWhitespace = matches && matches[0];\n    }\n\n    if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n      // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n      dirty =\n        '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' +\n        dirty +\n        '</body></html>';\n    }\n\n    const dirtyPayload = trustedTypesPolicy\n      ? trustedTypesPolicy.createHTML(dirty)\n      : dirty;\n    /*\n     * Use the DOMParser API by default, fallback later if needs be\n     * DOMParser not work for svg when has multiple root element.\n     */\n    if (NAMESPACE === HTML_NAMESPACE) {\n      try {\n        doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n      } catch (_) {}\n    }\n\n    /* Use createHTMLDocument in case DOMParser is not available */\n    if (!doc || !doc.documentElement) {\n      doc = implementation.createDocument(NAMESPACE, 'template', null);\n      try {\n        doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n      } catch (_) {\n        // Syntax error if dirtyPayload is invalid xml\n      }\n    }\n\n    const body = doc.body || doc.documentElement;\n\n    if (dirty && leadingWhitespace) {\n      body.insertBefore(\n        document.createTextNode(leadingWhitespace),\n        body.childNodes[0] || null\n      );\n    }\n\n    /* Work on whole document or just its body */\n    if (NAMESPACE === HTML_NAMESPACE) {\n      return getElementsByTagName.call(\n        doc,\n        WHOLE_DOCUMENT ? 'html' : 'body'\n      )[0];\n    }\n\n    return WHOLE_DOCUMENT ? doc.documentElement : body;\n  };\n\n  /**\n   * _createIterator\n   *\n   * @param  {Document} root document/fragment to create iterator for\n   * @return {Iterator} iterator instance\n   */\n  const _createIterator = function (root) {\n    return createNodeIterator.call(\n      root.ownerDocument || root,\n      root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,\n      null,\n      false\n    );\n  };\n\n  /**\n   * _isClobbered\n   *\n   * @param  {Node} elm element to check for clobbering attacks\n   * @return {Boolean} true if clobbered, false if safe\n   */\n  const _isClobbered = function (elm) {\n    return (\n      elm instanceof HTMLFormElement &&\n      (typeof elm.nodeName !== 'string' ||\n        typeof elm.textContent !== 'string' ||\n        typeof elm.removeChild !== 'function' ||\n        !(elm.attributes instanceof NamedNodeMap) ||\n        typeof elm.removeAttribute !== 'function' ||\n        typeof elm.setAttribute !== 'function' ||\n        typeof elm.namespaceURI !== 'string' ||\n        typeof elm.insertBefore !== 'function')\n    );\n  };\n\n  /**\n   * _isNode\n   *\n   * @param  {Node} obj object to check whether it's a DOM node\n   * @return {Boolean} true is object is a DOM node\n   */\n  const _isNode = function (object) {\n    return typeof Node === 'object'\n      ? object instanceof Node\n      : object &&\n          typeof object === 'object' &&\n          typeof object.nodeType === 'number' &&\n          typeof object.nodeName === 'string';\n  };\n\n  /**\n   * _executeHook\n   * Execute user configurable hooks\n   *\n   * @param  {String} entryPoint  Name of the hook's entry point\n   * @param  {Node} currentNode node to work on with the hook\n   * @param  {Object} data additional hook parameters\n   */\n  const _executeHook = function (entryPoint, currentNode, data) {\n    if (!hooks[entryPoint]) {\n      return;\n    }\n\n    arrayForEach(hooks[entryPoint], (hook) => {\n      hook.call(DOMPurify, currentNode, data, CONFIG);\n    });\n  };\n\n  /**\n   * _sanitizeElements\n   *\n   * @protect nodeName\n   * @protect textContent\n   * @protect removeChild\n   *\n   * @param   {Node} currentNode to check for permission to exist\n   * @return  {Boolean} true if node was killed, false if left alive\n   */\n  const _sanitizeElements = function (currentNode) {\n    let content;\n\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeElements', currentNode, null);\n\n    /* Check if element is clobbered or can clobber */\n    if (_isClobbered(currentNode)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Check if tagname contains Unicode */\n    if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Now let's check the element's type and name */\n    const tagName = transformCaseFunc(currentNode.nodeName);\n\n    /* Execute a hook if present */\n    _executeHook('uponSanitizeElement', currentNode, {\n      tagName,\n      allowedTags: ALLOWED_TAGS,\n    });\n\n    /* Detect mXSS attempts abusing namespace confusion */\n    if (\n      currentNode.hasChildNodes() &&\n      !_isNode(currentNode.firstElementChild) &&\n      (!_isNode(currentNode.content) ||\n        !_isNode(currentNode.content.firstElementChild)) &&\n      regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n      regExpTest(/<[/\\w]/g, currentNode.textContent)\n    ) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Mitigate a problem with templates inside select */\n    if (\n      tagName === 'select' &&\n      regExpTest(/<template/i, currentNode.innerHTML)\n    ) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Remove element if anything forbids its presence */\n    if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n      /* Check if we have a custom element to handle */\n      if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n        if (\n          CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n          regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n        )\n          return false;\n        if (\n          CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n          CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n        )\n          return false;\n      }\n\n      /* Keep content except for bad-listed elements */\n      if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n        const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n        const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n        if (childNodes && parentNode) {\n          const childCount = childNodes.length;\n\n          for (let i = childCount - 1; i >= 0; --i) {\n            parentNode.insertBefore(\n              cloneNode(childNodes[i], true),\n              getNextSibling(currentNode)\n            );\n          }\n        }\n      }\n\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Check whether element has a valid namespace */\n    if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    if (\n      (tagName === 'noscript' || tagName === 'noembed') &&\n      regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)\n    ) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Sanitize element content to be template-safe */\n    if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n      /* Get the element's text content */\n      content = currentNode.textContent;\n      content = stringReplace(content, MUSTACHE_EXPR, ' ');\n      content = stringReplace(content, ERB_EXPR, ' ');\n      if (currentNode.textContent !== content) {\n        arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n        currentNode.textContent = content;\n      }\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeElements', currentNode, null);\n\n    return false;\n  };\n\n  /**\n   * _isValidAttribute\n   *\n   * @param  {string} lcTag Lowercase tag name of containing element.\n   * @param  {string} lcName Lowercase attribute name.\n   * @param  {string} value Attribute value.\n   * @return {Boolean} Returns true if `value` is valid, otherwise false.\n   */\n  // eslint-disable-next-line complexity\n  const _isValidAttribute = function (lcTag, lcName, value) {\n    /* Make sure attribute cannot clobber */\n    if (\n      SANITIZE_DOM &&\n      (lcName === 'id' || lcName === 'name') &&\n      (value in document || value in formElement)\n    ) {\n      return false;\n    }\n\n    /* Allow valid data-* attributes: At least one character after \"-\"\n        (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n        XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n        We don't need to check the value; it's always URI safe. */\n    if (\n      ALLOW_DATA_ATTR &&\n      !FORBID_ATTR[lcName] &&\n      regExpTest(DATA_ATTR, lcName)\n    ) {\n      // This attribute is safe\n    } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n      // This attribute is safe\n      /* Otherwise, check the name is permitted */\n    } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n      if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        (_basicCustomElementTest(lcTag) &&\n          ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n            regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n            (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n              CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n          ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n            regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n            (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n              CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n        // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        (lcName === 'is' &&\n          CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n          ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n            regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n            (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n              CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n      ) {\n        // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n        // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n      } else {\n        return false;\n      }\n      /* Check value is safe. First, is attr inert? If so, is safe */\n    } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n      // This attribute is safe\n      /* Check no script, data or unknown possibly unsafe URI\n        unless we know URI values are safe for that attribute */\n    } else if (\n      regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n    ) {\n      // This attribute is safe\n      /* Keep image data URIs alive if src/xlink:href is allowed */\n      /* Further prevent gadget XSS for dynamically built script tags */\n    } else if (\n      (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n      lcTag !== 'script' &&\n      stringIndexOf(value, 'data:') === 0 &&\n      DATA_URI_TAGS[lcTag]\n    ) {\n      // This attribute is safe\n      /* Allow unknown protocols: This provides support for links that\n        are handled by protocol handlers which may be unknown ahead of\n        time, e.g. fb:, spotify: */\n    } else if (\n      ALLOW_UNKNOWN_PROTOCOLS &&\n      !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n    ) {\n      // This attribute is safe\n      /* Check for binary attributes */\n      // eslint-disable-next-line no-negated-condition\n    } else if (!value) {\n      // Binary attributes are safe at this point\n      /* Anything else, presume unsafe, do not add it back */\n    } else {\n      return false;\n    }\n\n    return true;\n  };\n\n  /**\n   * _basicCustomElementCheck\n   * checks if at least one dash is included in tagName, and it's not the first char\n   * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n   * @param {string} tagName name of the tag of the node to sanitize\n   */\n  const _basicCustomElementTest = function (tagName) {\n    return tagName.indexOf('-') > 0;\n  };\n\n  /**\n   * _sanitizeAttributes\n   *\n   * @protect attributes\n   * @protect nodeName\n   * @protect removeAttribute\n   * @protect setAttribute\n   *\n   * @param  {Node} currentNode to sanitize\n   */\n  const _sanitizeAttributes = function (currentNode) {\n    let attr;\n    let value;\n    let lcName;\n    let l;\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n    const { attributes } = currentNode;\n\n    /* Check if we have attributes; if not we might have a text node */\n    if (!attributes) {\n      return;\n    }\n\n    const hookEvent = {\n      attrName: '',\n      attrValue: '',\n      keepAttr: true,\n      allowedAttributes: ALLOWED_ATTR,\n    };\n    l = attributes.length;\n\n    /* Go backwards over all attributes; safely remove bad ones */\n    while (l--) {\n      attr = attributes[l];\n      const { name, namespaceURI } = attr;\n      value = name === 'value' ? attr.value : stringTrim(attr.value);\n      lcName = transformCaseFunc(name);\n\n      /* Execute a hook if present */\n      hookEvent.attrName = lcName;\n      hookEvent.attrValue = value;\n      hookEvent.keepAttr = true;\n      hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n      _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n      value = hookEvent.attrValue;\n      /* Did the hooks approve of the attribute? */\n      if (hookEvent.forceKeepAttr) {\n        continue;\n      }\n\n      /* Remove attribute */\n      _removeAttribute(name, currentNode);\n\n      /* Did the hooks approve of the attribute? */\n      if (!hookEvent.keepAttr) {\n        continue;\n      }\n\n      /* Work around a security issue in jQuery 3.0 */\n      if (regExpTest(/\\/>/i, value)) {\n        _removeAttribute(name, currentNode);\n        continue;\n      }\n\n      /* Sanitize attribute content to be template-safe */\n      if (SAFE_FOR_TEMPLATES) {\n        value = stringReplace(value, MUSTACHE_EXPR, ' ');\n        value = stringReplace(value, ERB_EXPR, ' ');\n      }\n\n      /* Is `value` valid for this attribute? */\n      const lcTag = transformCaseFunc(currentNode.nodeName);\n      if (!_isValidAttribute(lcTag, lcName, value)) {\n        continue;\n      }\n\n      /* Full DOM Clobbering protection via namespace isolation,\n       * Prefix id and name attributes with `user-content-`\n       */\n      if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n        // Remove the attribute with this value\n        _removeAttribute(name, currentNode);\n\n        // Prefix the value and later re-create the attribute with the sanitized value\n        value = SANITIZE_NAMED_PROPS_PREFIX + value;\n      }\n\n      /* Handle attributes that require Trusted Types */\n      if (\n        trustedTypesPolicy &&\n        typeof trustedTypes === 'object' &&\n        typeof trustedTypes.getAttributeType === 'function'\n      ) {\n        if (namespaceURI) {\n          /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n        } else {\n          switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n            case 'TrustedHTML':\n              value = trustedTypesPolicy.createHTML(value);\n              break;\n            case 'TrustedScriptURL':\n              value = trustedTypesPolicy.createScriptURL(value);\n              break;\n            default:\n              break;\n          }\n        }\n      }\n\n      /* Handle invalid data-* attribute set by try-catching it */\n      try {\n        if (namespaceURI) {\n          currentNode.setAttributeNS(namespaceURI, name, value);\n        } else {\n          /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n          currentNode.setAttribute(name, value);\n        }\n\n        arrayPop(DOMPurify.removed);\n      } catch (_) {}\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeAttributes', currentNode, null);\n  };\n\n  /**\n   * _sanitizeShadowDOM\n   *\n   * @param  {DocumentFragment} fragment to iterate over recursively\n   */\n  const _sanitizeShadowDOM = function (fragment) {\n    let shadowNode;\n    const shadowIterator = _createIterator(fragment);\n\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n    while ((shadowNode = shadowIterator.nextNode())) {\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n      /* Sanitize tags and elements */\n      if (_sanitizeElements(shadowNode)) {\n        continue;\n      }\n\n      /* Deep shadow DOM detected */\n      if (shadowNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(shadowNode.content);\n      }\n\n      /* Check attributes, sanitize if necessary */\n      _sanitizeAttributes(shadowNode);\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeShadowDOM', fragment, null);\n  };\n\n  /**\n   * Sanitize\n   * Public method providing core sanitation functionality\n   *\n   * @param {String|Node} dirty string or DOM node\n   * @param {Object} configuration object\n   */\n  // eslint-disable-next-line complexity\n  DOMPurify.sanitize = function (dirty, cfg = {}) {\n    let body;\n    let importedNode;\n    let currentNode;\n    let oldNode;\n    let returnNode;\n    /* Make sure we have a string to sanitize.\n      DO NOT return early, as this will return the wrong type if\n      the user has requested a DOM object rather than a string */\n    IS_EMPTY_INPUT = !dirty;\n    if (IS_EMPTY_INPUT) {\n      dirty = '<!-->';\n    }\n\n    /* Stringify, in case dirty is an object */\n    if (typeof dirty !== 'string' && !_isNode(dirty)) {\n      // eslint-disable-next-line no-negated-condition\n      if (typeof dirty.toString !== 'function') {\n        throw typeErrorCreate('toString is not a function');\n      } else {\n        dirty = dirty.toString();\n        if (typeof dirty !== 'string') {\n          throw typeErrorCreate('dirty is not a string, aborting');\n        }\n      }\n    }\n\n    /* Check we can run. Otherwise fall back or ignore */\n    if (!DOMPurify.isSupported) {\n      if (\n        typeof window.toStaticHTML === 'object' ||\n        typeof window.toStaticHTML === 'function'\n      ) {\n        if (typeof dirty === 'string') {\n          return window.toStaticHTML(dirty);\n        }\n\n        if (_isNode(dirty)) {\n          return window.toStaticHTML(dirty.outerHTML);\n        }\n      }\n\n      return dirty;\n    }\n\n    /* Assign config vars */\n    if (!SET_CONFIG) {\n      _parseConfig(cfg);\n    }\n\n    /* Clean up removed elements */\n    DOMPurify.removed = [];\n\n    /* Check if dirty is correctly typed for IN_PLACE */\n    if (typeof dirty === 'string') {\n      IN_PLACE = false;\n    }\n\n    if (IN_PLACE) {\n      /* Do some early pre-sanitization to avoid unsafe root nodes */\n      if (dirty.nodeName) {\n        const tagName = transformCaseFunc(dirty.nodeName);\n        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n          throw typeErrorCreate(\n            'root node is forbidden and cannot be sanitized in-place'\n          );\n        }\n      }\n    } else if (dirty instanceof Node) {\n      /* If dirty is a DOM element, append to an empty document to avoid\n         elements being stripped by the parser */\n      body = _initDocument('<!---->');\n      importedNode = body.ownerDocument.importNode(dirty, true);\n      if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n        /* Node is already a body, use as is */\n        body = importedNode;\n      } else if (importedNode.nodeName === 'HTML') {\n        body = importedNode;\n      } else {\n        // eslint-disable-next-line unicorn/prefer-dom-node-append\n        body.appendChild(importedNode);\n      }\n    } else {\n      /* Exit directly if we have nothing to do */\n      if (\n        !RETURN_DOM &&\n        !SAFE_FOR_TEMPLATES &&\n        !WHOLE_DOCUMENT &&\n        // eslint-disable-next-line unicorn/prefer-includes\n        dirty.indexOf('<') === -1\n      ) {\n        return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n          ? trustedTypesPolicy.createHTML(dirty)\n          : dirty;\n      }\n\n      /* Initialize the document to work on */\n      body = _initDocument(dirty);\n\n      /* Check we have a DOM node from the data */\n      if (!body) {\n        return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n      }\n    }\n\n    /* Remove first element node (ours) if FORCE_BODY is set */\n    if (body && FORCE_BODY) {\n      _forceRemove(body.firstChild);\n    }\n\n    /* Get node iterator */\n    const nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n    /* Now start iterating over the created document */\n    while ((currentNode = nodeIterator.nextNode())) {\n      /* Fix IE's strange behavior with manipulated textNodes #89 */\n      if (currentNode.nodeType === 3 && currentNode === oldNode) {\n        continue;\n      }\n\n      /* Sanitize tags and elements */\n      if (_sanitizeElements(currentNode)) {\n        continue;\n      }\n\n      /* Shadow DOM detected, sanitize it */\n      if (currentNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(currentNode.content);\n      }\n\n      /* Check attributes, sanitize if necessary */\n      _sanitizeAttributes(currentNode);\n\n      oldNode = currentNode;\n    }\n\n    oldNode = null;\n\n    /* If we sanitized `dirty` in-place, return it. */\n    if (IN_PLACE) {\n      return dirty;\n    }\n\n    /* Return sanitized string or DOM */\n    if (RETURN_DOM) {\n      if (RETURN_DOM_FRAGMENT) {\n        returnNode = createDocumentFragment.call(body.ownerDocument);\n\n        while (body.firstChild) {\n          // eslint-disable-next-line unicorn/prefer-dom-node-append\n          returnNode.appendChild(body.firstChild);\n        }\n      } else {\n        returnNode = body;\n      }\n\n      if (ALLOWED_ATTR.shadowroot) {\n        /*\n          AdoptNode() is not used because internal state is not reset\n          (e.g. the past names map of a HTMLFormElement), this is safe\n          in theory but we would rather not risk another attack vector.\n          The state that is cloned by importNode() is explicitly defined\n          by the specs.\n        */\n        returnNode = importNode.call(originalDocument, returnNode, true);\n      }\n\n      return returnNode;\n    }\n\n    let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n    /* Serialize doctype if allowed */\n    if (\n      WHOLE_DOCUMENT &&\n      ALLOWED_TAGS['!doctype'] &&\n      body.ownerDocument &&\n      body.ownerDocument.doctype &&\n      body.ownerDocument.doctype.name &&\n      regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n    ) {\n      serializedHTML =\n        '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n    }\n\n    /* Sanitize final string template-safe */\n    if (SAFE_FOR_TEMPLATES) {\n      serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');\n      serializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');\n    }\n\n    return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n      ? trustedTypesPolicy.createHTML(serializedHTML)\n      : serializedHTML;\n  };\n\n  /**\n   * Public method to set the configuration once\n   * setConfig\n   *\n   * @param {Object} cfg configuration object\n   */\n  DOMPurify.setConfig = function (cfg) {\n    _parseConfig(cfg);\n    SET_CONFIG = true;\n  };\n\n  /**\n   * Public method to remove the configuration\n   * clearConfig\n   *\n   */\n  DOMPurify.clearConfig = function () {\n    CONFIG = null;\n    SET_CONFIG = false;\n  };\n\n  /**\n   * Public method to check if an attribute value is valid.\n   * Uses last set config, if any. Otherwise, uses config defaults.\n   * isValidAttribute\n   *\n   * @param  {string} tag Tag name of containing element.\n   * @param  {string} attr Attribute name.\n   * @param  {string} value Attribute value.\n   * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n   */\n  DOMPurify.isValidAttribute = function (tag, attr, value) {\n    /* Initialize shared config vars if necessary. */\n    if (!CONFIG) {\n      _parseConfig({});\n    }\n\n    const lcTag = transformCaseFunc(tag);\n    const lcName = transformCaseFunc(attr);\n    return _isValidAttribute(lcTag, lcName, value);\n  };\n\n  /**\n   * AddHook\n   * Public method to add DOMPurify hooks\n   *\n   * @param {String} entryPoint entry point for the hook to add\n   * @param {Function} hookFunction function to execute\n   */\n  DOMPurify.addHook = function (entryPoint, hookFunction) {\n    if (typeof hookFunction !== 'function') {\n      return;\n    }\n\n    hooks[entryPoint] = hooks[entryPoint] || [];\n    arrayPush(hooks[entryPoint], hookFunction);\n  };\n\n  /**\n   * RemoveHook\n   * Public method to remove a DOMPurify hook at a given entryPoint\n   * (pops it from the stack of hooks if more are present)\n   *\n   * @param {String} entryPoint entry point for the hook to remove\n   * @return {Function} removed(popped) hook\n   */\n  DOMPurify.removeHook = function (entryPoint) {\n    if (hooks[entryPoint]) {\n      return arrayPop(hooks[entryPoint]);\n    }\n  };\n\n  /**\n   * RemoveHooks\n   * Public method to remove all DOMPurify hooks at a given entryPoint\n   *\n   * @param  {String} entryPoint entry point for the hooks to remove\n   */\n  DOMPurify.removeHooks = function (entryPoint) {\n    if (hooks[entryPoint]) {\n      hooks[entryPoint] = [];\n    }\n  };\n\n  /**\n   * RemoveAllHooks\n   * Public method to remove all DOMPurify hooks\n   *\n   */\n  DOMPurify.removeAllHooks = function () {\n    hooks = {};\n  };\n\n  return DOMPurify;\n}\n\nexport default createDOMPurify();\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n  // fast-deep-equal index.js 2.0.1\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    var arrA = isArray(a)\n      , arrB = isArray(b)\n      , i\n      , length\n      , key;\n\n    if (arrA && arrB) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n    if (arrA != arrB) return false;\n\n    var dateA = a instanceof Date\n      , dateB = b instanceof Date;\n    if (dateA != dateB) return false;\n    if (dateA && dateB) return a.getTime() == b.getTime();\n\n    var regexpA = a instanceof RegExp\n      , regexpB = b instanceof RegExp;\n    if (regexpA != regexpB) return false;\n    if (regexpA && regexpB) return a.toString() == b.toString();\n\n    var keys = keyList(a);\n    length = keys.length;\n\n    if (length !== keyList(b).length)\n      return false;\n\n    for (i = length; i-- !== 0;)\n      if (!hasProp.call(b, keys[i])) return false;\n    // end fast-deep-equal\n\n    // start react-fast-compare\n    // custom handling for DOM elements\n    if (hasElementType && a instanceof Element && b instanceof Element)\n      return a === b;\n\n    // custom handling for React\n    for (i = length; i-- !== 0;) {\n      key = keys[i];\n      if (key === '_owner' && a.$$typeof) {\n        // React-specific: avoid traversing React elements' _owner.\n        //  _owner contains circular references\n        // and is not needed when comparing the actual elements (and not their owners)\n        // .$$typeof and ._store on just reasonable markers of a react element\n        continue;\n      } else {\n        // all other properties should be traversed as usual\n        if (!equal(a[key], b[key])) return false;\n      }\n    }\n    // end react-fast-compare\n\n    // fast-deep-equal index.js 2.0.1\n    return true;\n  }\n\n  return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n  try {\n    return equal(a, b);\n  } catch (error) {\n    if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n      // warn on circular references, don't crash\n      // browsers give this different errors name and messages:\n      // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n      // firefox: \"InternalError\", too much recursion\"\n      // edge: \"Error\", \"Out of stack space\"\n      console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n      return false;\n    }\n    // some other error. we should definitely know about these\n    throw error;\n  }\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n","module.exports = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","\nmodule.exports = function load (src, opts, cb) {\n  var head = document.head || document.getElementsByTagName('head')[0]\n  var script = document.createElement('script')\n\n  if (typeof opts === 'function') {\n    cb = opts\n    opts = {}\n  }\n\n  opts = opts || {}\n  cb = cb || function() {}\n\n  script.type = opts.type || 'text/javascript'\n  script.charset = opts.charset || 'utf8';\n  script.async = 'async' in opts ? !!opts.async : true\n  script.src = src\n\n  if (opts.attrs) {\n    setAttributes(script, opts.attrs)\n  }\n\n  if (opts.text) {\n    script.text = '' + opts.text\n  }\n\n  var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n  onend(script, cb)\n\n  // some good legacy browsers (firefox) fail the 'in' detection above\n  // so as a fallback we always set onload\n  // old IE will ignore this and new IE will set onload\n  if (!script.onload) {\n    stdOnEnd(script, cb);\n  }\n\n  head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n  for (var attr in attrs) {\n    script.setAttribute(attr, attrs[attr]);\n  }\n}\n\nfunction stdOnEnd (script, cb) {\n  script.onload = function () {\n    this.onerror = this.onload = null\n    cb(null, script)\n  }\n  script.onerror = function () {\n    // this.onload = null here is necessary\n    // because even IE9 works not like others\n    this.onerror = this.onload = null\n    cb(new Error('Failed to load ' + this.src), script)\n  }\n}\n\nfunction ieOnEnd (script, cb) {\n  script.onreadystatechange = function () {\n    if (this.readyState != 'complete' && this.readyState != 'loaded') return\n    this.onreadystatechange = null\n    cb(null, script) // there is no way to catch loading errors in IE8\n  }\n}\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n    hashDelete = require('./_hashDelete'),\n    hashGet = require('./_hashGet'),\n    hashHas = require('./_hashHas'),\n    hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n    listCacheDelete = require('./_listCacheDelete'),\n    listCacheGet = require('./_listCacheGet'),\n    listCacheHas = require('./_listCacheHas'),\n    listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n    mapCacheDelete = require('./_mapCacheDelete'),\n    mapCacheGet = require('./_mapCacheGet'),\n    mapCacheHas = require('./_mapCacheHas'),\n    mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n    setCacheAdd = require('./_setCacheAdd'),\n    setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n    stackClear = require('./_stackClear'),\n    stackDelete = require('./_stackDelete'),\n    stackGet = require('./_stackGet'),\n    stackHas = require('./_stackHas'),\n    stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isIndex = require('./_isIndex'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n  return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n    keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n  return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n    toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n    isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n  return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n    isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n    equalArrays = require('./_equalArrays'),\n    equalByTag = require('./_equalByTag'),\n    equalObjects = require('./_equalObjects'),\n    getTag = require('./_getTag'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n    baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n    isMasked = require('./_isMasked'),\n    isObject = require('./isObject'),\n    toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n    isLength = require('./isLength'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n    baseMatchesProperty = require('./_baseMatchesProperty'),\n    identity = require('./identity'),\n    isArray = require('./isArray'),\n    property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n    nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n    getMatchData = require('./_getMatchData'),\n    matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n    get = require('./get'),\n    hasIn = require('./hasIn'),\n    isKey = require('./_isKey'),\n    isStrictComparable = require('./_isStrictComparable'),\n    matchesStrictComparable = require('./_matchesStrictComparable'),\n    toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n  return function(key) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n    arrayMap = require('./_arrayMap'),\n    isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n    isKey = require('./_isKey'),\n    stringToPath = require('./_stringToPath'),\n    toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n    hasUnicode = require('./_hasUnicode'),\n    stringToArray = require('./_stringToArray'),\n    toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n  return function(string) {\n    string = toString(string);\n\n    var strSymbols = hasUnicode(string)\n      ? stringToArray(string)\n      : undefined;\n\n    var chr = strSymbols\n      ? strSymbols[0]\n      : string.charAt(0);\n\n    var trailing = strSymbols\n      ? castSlice(strSymbols, 1).join('')\n      : string.slice(1);\n\n    return chr[methodName]() + trailing;\n  };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n    deburr = require('./deburr'),\n    words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n  return function(string) {\n    return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n  };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n  // Latin-1 Supplement block.\n  '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n  '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n  '\\xc7': 'C',  '\\xe7': 'c',\n  '\\xd0': 'D',  '\\xf0': 'd',\n  '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n  '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n  '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n  '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n  '\\xd1': 'N',  '\\xf1': 'n',\n  '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n  '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n  '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n  '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n  '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n  '\\xc6': 'Ae', '\\xe6': 'ae',\n  '\\xde': 'Th', '\\xfe': 'th',\n  '\\xdf': 'ss',\n  // Latin Extended-A block.\n  '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n  '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n  '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n  '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n  '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n  '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n  '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n  '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n  '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n  '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n  '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n  '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n  '\\u0134': 'J',  '\\u0135': 'j',\n  '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n  '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n  '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n  '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n  '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n  '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n  '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n  '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n  '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n  '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n  '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n  '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n  '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n  '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n  '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n  '\\u0174': 'W',  '\\u0175': 'w',\n  '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n  '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n  '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n  '\\u0132': 'IJ', '\\u0133': 'ij',\n  '\\u0152': 'Oe', '\\u0153': 'oe',\n  '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n    arraySome = require('./_arraySome'),\n    cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n    Uint8Array = require('./_Uint8Array'),\n    eq = require('./eq'),\n    equalArrays = require('./_equalArrays'),\n    mapToArray = require('./_mapToArray'),\n    setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n    getSymbols = require('./_getSymbols'),\n    keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n    keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n    getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n    stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n    Map = require('./_Map'),\n    Promise = require('./_Promise'),\n    Set = require('./_Set'),\n    WeakMap = require('./_WeakMap'),\n    baseGetTag = require('./_baseGetTag'),\n    toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isIndex = require('./_isIndex'),\n    isLength = require('./isLength'),\n    toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n  return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n    ListCache = require('./_ListCache'),\n    Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n    Map = require('./_Map'),\n    MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n    hasUnicode = require('./_hasUnicode'),\n    unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsDingbatRange = '\\\\u2700-\\\\u27bf',\n    rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n    rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n    rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n    rsPunctuationRange = '\\\\u2000-\\\\u206f',\n    rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n    rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n    rsVarRange = '\\\\ufe0e\\\\ufe0f',\n    rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n    rsBreak = '[' + rsBreakRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsDigits = '\\\\d+',\n    rsDingbat = '[' + rsDingbatRange + ']',\n    rsLower = '[' + rsLowerRange + ']',\n    rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsUpper = '[' + rsUpperRange + ']',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n    rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n    rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n    rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n    reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n    rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n  rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n  rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n  rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n  rsUpper + '+' + rsOptContrUpper,\n  rsOrdUpper,\n  rsOrdLower,\n  rsDigits,\n  rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n  return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n    createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n  word = word.toLowerCase();\n  return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n    upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n  return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var deburrLetter = require('./_deburrLetter'),\n    toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n  string = toString(string);\n  return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n    hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n  return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n    hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n    isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n    isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n    stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n    isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n    baseUnary = require('./_baseUnary'),\n    nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n    baseKeys = require('./_baseKeys'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseAssignValue = require('./_baseAssignValue'),\n    baseForOwn = require('./_baseForOwn'),\n    baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n *   return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n  var result = {};\n  iteratee = baseIteratee(iteratee, 3);\n\n  baseForOwn(object, function(value, key, object) {\n    baseAssignValue(result, iteratee(value, key, object), value);\n  });\n  return result;\n}\n\nmodule.exports = mapKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n    baseForOwn = require('./_baseForOwn'),\n    baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n *   'fred':    { 'user': 'fred',    'age': 40 },\n *   'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n  var result = {};\n  iteratee = baseIteratee(iteratee, 3);\n\n  baseForOwn(object, function(value, key, object) {\n    baseAssignValue(result, key, iteratee(value, key, object));\n  });\n  return result;\n}\n\nmodule.exports = mapValues;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n    basePropertyDeep = require('./_basePropertyDeep'),\n    isKey = require('./_isKey'),\n    toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n  return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n    hasUnicodeWord = require('./_hasUnicodeWord'),\n    toString = require('./toString'),\n    unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n  string = toString(string);\n  pattern = guard ? undefined : pattern;\n\n  if (pattern === undefined) {\n    return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n  }\n  return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","var safeIsNaN = Number.isNaN ||\n    function ponyfill(value) {\n        return typeof value === 'number' && value !== value;\n    };\nfunction isEqual(first, second) {\n    if (first === second) {\n        return true;\n    }\n    if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n    }\n    return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n    if (newInputs.length !== lastInputs.length) {\n        return false;\n    }\n    for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n    if (isEqual === void 0) { isEqual = areInputsEqual; }\n    var lastThis;\n    var lastArgs = [];\n    var lastResult;\n    var calledOnce = false;\n    function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newArgs[_i] = arguments[_i];\n        }\n        if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n            return lastResult;\n        }\n        lastResult = resultFn.apply(this, newArgs);\n        calledOnce = true;\n        lastThis = this;\n        lastArgs = newArgs;\n        return lastResult;\n    }\n    return memoized;\n}\n\nexport default memoizeOne;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = options && options.delimiter || '/'\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    var next = str[index]\n    var prefix = res[2]\n    var name = res[3]\n    var capture = res[4]\n    var group = res[5]\n    var modifier = res[6]\n    var asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    var partial = prefix != null && next != null && next !== prefix\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = res[2] || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n    }\n  }\n\n  return function (obj, opts) {\n    var path = ''\n    var data = obj || {}\n    var options = opts || {}\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      var value = data[token.name]\n      var segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      })\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  var strict = options.strict\n  var end = options.end !== false\n  var route = ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var prefix = escapeString(token.prefix)\n      var capture = '(?:' + token.pattern + ')'\n\n      keys.push(token)\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*'\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?'\n        } else {\n          capture = prefix + '(' + capture + ')?'\n        }\n      } else {\n        capture = prefix + '(' + capture + ')'\n      }\n\n      route += capture\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/')\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n  }\n\n  if (end) {\n    route += '$'\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn ","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  BaseException,\n  isString,\n  removeNullCharacters,\n  shadow,\n  stringToBytes,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseStandardFontDataFactory,\n  BaseSVGFactory,\n} from \"./base_factory.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nconst PixelsPerInch = {\n  CSS: 96.0,\n  PDF: 72.0,\n\n  /** @type {number} */\n  get PDF_TO_CSS_UNITS() {\n    return shadow(this, \"PDF_TO_CSS_UNITS\", this.CSS / this.PDF);\n  },\n};\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n  constructor({ ownerDocument = globalThis.document } = {}) {\n    super();\n    this._document = ownerDocument;\n  }\n\n  _createCanvas(width, height) {\n    const canvas = this._document.createElement(\"canvas\");\n    canvas.width = width;\n    canvas.height = height;\n    return canvas;\n  }\n}\n\nasync function fetchData(url, asTypedArray = false) {\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    isValidFetchUrl(url, document.baseURI)\n  ) {\n    const response = await fetch(url);\n    if (!response.ok) {\n      throw new Error(response.statusText);\n    }\n    return asTypedArray\n      ? new Uint8Array(await response.arrayBuffer())\n      : stringToBytes(await response.text());\n  }\n\n  // The Fetch API is not supported.\n  return new Promise((resolve, reject) => {\n    const request = new XMLHttpRequest();\n    request.open(\"GET\", url, /* asTypedArray = */ true);\n\n    if (asTypedArray) {\n      request.responseType = \"arraybuffer\";\n    }\n    request.onreadystatechange = () => {\n      if (request.readyState !== XMLHttpRequest.DONE) {\n        return;\n      }\n      if (request.status === 200 || request.status === 0) {\n        let data;\n        if (asTypedArray && request.response) {\n          data = new Uint8Array(request.response);\n        } else if (!asTypedArray && request.responseText) {\n          data = stringToBytes(request.responseText);\n        }\n        if (data) {\n          resolve(data);\n          return;\n        }\n      }\n      reject(new Error(request.statusText));\n    };\n\n    request.send(null);\n  });\n}\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n  _fetchData(url, compressionType) {\n    return fetchData(url, /* asTypedArray = */ this.isCompressed).then(data => {\n      return { cMapData: data, compressionType };\n    });\n  }\n}\n\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n  _fetchData(url) {\n    return fetchData(url, /* asTypedArray = */ true);\n  }\n}\n\nclass DOMSVGFactory extends BaseSVGFactory {\n  _createSVG(type) {\n    return document.createElementNS(SVG_NS, type);\n  }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array<number>} viewBox - The xMin, yMin, xMax and\n *   yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset. The\n *   default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset. The\n *   default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be flipped.\n *   The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} [scale] - The scale, overriding the one in the cloned\n *   viewport. The default value is `this.scale`.\n * @property {number} [rotation] - The rotation, in degrees, overriding the one\n *   in the cloned viewport. The default value is `this.rotation`.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n *   The default value is `this.offsetX`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n *   The default value is `this.offsetY`.\n * @property {boolean} [dontFlip] - If true, the x-axis will not be flipped.\n *   The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n  /**\n   * @param {PageViewportParameters}\n   */\n  constructor({\n    viewBox,\n    scale,\n    rotation,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false,\n  }) {\n    this.viewBox = viewBox;\n    this.scale = scale;\n    this.rotation = rotation;\n    this.offsetX = offsetX;\n    this.offsetY = offsetY;\n\n    // creating transform to convert pdf coordinate system to the normal\n    // canvas like coordinates taking in account scale and rotation\n    const centerX = (viewBox[2] + viewBox[0]) / 2;\n    const centerY = (viewBox[3] + viewBox[1]) / 2;\n    let rotateA, rotateB, rotateC, rotateD;\n    // Normalize the rotation, by clamping it to the [0, 360) range.\n    rotation %= 360;\n    if (rotation < 0) {\n      rotation += 360;\n    }\n    switch (rotation) {\n      case 180:\n        rotateA = -1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = 1;\n        break;\n      case 90:\n        rotateA = 0;\n        rotateB = 1;\n        rotateC = 1;\n        rotateD = 0;\n        break;\n      case 270:\n        rotateA = 0;\n        rotateB = -1;\n        rotateC = -1;\n        rotateD = 0;\n        break;\n      case 0:\n        rotateA = 1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = -1;\n        break;\n      default:\n        throw new Error(\n          \"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\"\n        );\n    }\n\n    if (dontFlip) {\n      rotateC = -rotateC;\n      rotateD = -rotateD;\n    }\n\n    let offsetCanvasX, offsetCanvasY;\n    let width, height;\n    if (rotateA === 0) {\n      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n      width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n      height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n    } else {\n      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n      width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n      height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n    }\n    // creating transform for the following operations:\n    // translate(-centerX, -centerY), rotate and flip vertically,\n    // scale, and translate(offsetCanvasX, offsetCanvasY)\n    this.transform = [\n      rotateA * scale,\n      rotateB * scale,\n      rotateC * scale,\n      rotateD * scale,\n      offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n      offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY,\n    ];\n\n    this.width = width;\n    this.height = height;\n  }\n\n  /**\n   * Clones viewport, with optional additional properties.\n   * @param {PageViewportCloneParameters} [params]\n   * @returns {PageViewport} Cloned viewport.\n   */\n  clone({\n    scale = this.scale,\n    rotation = this.rotation,\n    offsetX = this.offsetX,\n    offsetY = this.offsetY,\n    dontFlip = false,\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.viewBox.slice(),\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * Converts PDF point to the viewport coordinates. For examples, useful for\n   * converting PDF location into canvas pixel coordinates.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @returns {Object} Object containing `x` and `y` properties of the\n   *   point in the viewport coordinate space.\n   * @see {@link convertToPdfPoint}\n   * @see {@link convertToViewportRectangle}\n   */\n  convertToViewportPoint(x, y) {\n    return Util.applyTransform([x, y], this.transform);\n  }\n\n  /**\n   * Converts PDF rectangle to the viewport coordinates.\n   * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n   * @returns {Array} Array containing corresponding coordinates of the\n   *   rectangle in the viewport coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToViewportRectangle(rect) {\n    const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n    const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n    return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n  }\n\n  /**\n   * Converts viewport coordinates to the PDF location. For examples, useful\n   * for converting canvas pixel location into PDF one.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @returns {Object} Object containing `x` and `y` properties of the\n   *   point in the PDF coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToPdfPoint(x, y) {\n    return Util.applyInverseTransform([x, y], this.transform);\n  }\n}\n\nclass RenderingCancelledException extends BaseException {\n  constructor(msg, type) {\n    super(msg, \"RenderingCancelledException\");\n    this.type = type;\n  }\n}\n\nconst LinkTarget = {\n  NONE: 0, // Default value.\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4,\n};\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} [target] - The link target. The default value is\n *   `LinkTarget.NONE`.\n * @property {string} [rel] - The link relationship. The default value is\n *   `DEFAULT_LINK_REL`.\n * @property {boolean} [enabled] - Whether the link should be enabled. The\n *   default value is true.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLAnchorElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, enabled = true } = {}) {\n  assert(\n    url && typeof url === \"string\",\n    'addLinkAttributes: A valid \"url\" parameter must provided.'\n  );\n\n  const urlNullRemoved = removeNullCharacters(url);\n  if (enabled) {\n    link.href = link.title = urlNullRemoved;\n  } else {\n    link.href = \"\";\n    link.title = `Disabled: ${urlNullRemoved}`;\n    link.onclick = () => {\n      return false;\n    };\n  }\n\n  let targetStr = \"\"; // LinkTarget.NONE\n  switch (target) {\n    case LinkTarget.NONE:\n      break;\n    case LinkTarget.SELF:\n      targetStr = \"_self\";\n      break;\n    case LinkTarget.BLANK:\n      targetStr = \"_blank\";\n      break;\n    case LinkTarget.PARENT:\n      targetStr = \"_parent\";\n      break;\n    case LinkTarget.TOP:\n      targetStr = \"_top\";\n      break;\n  }\n  link.target = targetStr;\n\n  link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\nfunction isDataScheme(url) {\n  const ii = url.length;\n  let i = 0;\n  while (i < ii && url[i].trim() === \"\") {\n    i++;\n  }\n  return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n  return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\n/**\n * Gets the filename from a given URL.\n * @param {string} url\n * @returns {string}\n */\nfunction getFilenameFromUrl(url) {\n  const anchor = url.indexOf(\"#\");\n  const query = url.indexOf(\"?\");\n  const end = Math.min(\n    anchor > 0 ? anchor : url.length,\n    query > 0 ? query : url.length\n  );\n  return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\n/**\n * Returns the filename or guessed filename from the url (see issue 3455).\n * @param {string} url - The original PDF location.\n * @param {string} defaultFilename - The value returned if the filename is\n *   unknown, or the protocol is unsupported.\n * @returns {string} Guessed PDF filename.\n */\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n  if (typeof url !== \"string\") {\n    return defaultFilename;\n  }\n  if (isDataScheme(url)) {\n    warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n    return defaultFilename;\n  }\n  const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n  //              SCHEME        HOST        1.PATH  2.QUERY   3.REF\n  // Pattern to get last matching NAME.pdf\n  const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n  const splitURI = reURI.exec(url);\n  let suggestedFilename =\n    reFilename.exec(splitURI[1]) ||\n    reFilename.exec(splitURI[2]) ||\n    reFilename.exec(splitURI[3]);\n  if (suggestedFilename) {\n    suggestedFilename = suggestedFilename[0];\n    if (suggestedFilename.includes(\"%\")) {\n      // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf\n      try {\n        suggestedFilename = reFilename.exec(\n          decodeURIComponent(suggestedFilename)\n        )[0];\n      } catch (ex) {\n        // Possible (extremely rare) errors:\n        // URIError \"Malformed URI\", e.g. for \"%AA.pdf\"\n        // TypeError \"null has no properties\", e.g. for \"%2F.pdf\"\n      }\n    }\n  }\n  return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n  constructor() {\n    this.started = Object.create(null);\n    this.times = [];\n  }\n\n  time(name) {\n    if (name in this.started) {\n      warn(`Timer is already running for ${name}`);\n    }\n    this.started[name] = Date.now();\n  }\n\n  timeEnd(name) {\n    if (!(name in this.started)) {\n      warn(`Timer has not been started for ${name}`);\n    }\n    this.times.push({\n      name,\n      start: this.started[name],\n      end: Date.now(),\n    });\n    // Remove timer from started so it can be called again.\n    delete this.started[name];\n  }\n\n  toString() {\n    // Find the longest name for padding purposes.\n    const outBuf = [];\n    let longest = 0;\n    for (const time of this.times) {\n      const name = time.name;\n      if (name.length > longest) {\n        longest = name.length;\n      }\n    }\n    for (const time of this.times) {\n      const duration = time.end - time.start;\n      outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n    }\n    return outBuf.join(\"\");\n  }\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n  try {\n    const { protocol } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    // The Fetch API only supports the http/https protocols, and not file/ftp.\n    return protocol === \"http:\" || protocol === \"https:\";\n  } catch (ex) {\n    return false; // `new URL()` will throw on incorrect data.\n  }\n}\n\n/**\n * @param {string} src\n * @param {boolean} [removeScriptElement]\n * @returns {Promise<void>}\n */\nfunction loadScript(src, removeScriptElement = false) {\n  return new Promise((resolve, reject) => {\n    const script = document.createElement(\"script\");\n    script.src = src;\n\n    script.onload = function (evt) {\n      if (removeScriptElement) {\n        script.remove();\n      }\n      resolve(evt);\n    };\n    script.onerror = function () {\n      reject(new Error(`Cannot load script at: ${script.src}`));\n    };\n    (document.head || document.documentElement).appendChild(script);\n  });\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n  console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n  /**\n   * Convert a PDF date string to a JavaScript `Date` object.\n   *\n   * The PDF date string format is described in section 7.9.4 of the official\n   * PDF 32000-1:2008 specification. However, in the PDF 1.7 reference (sixth\n   * edition) Adobe describes the same format including a trailing apostrophe.\n   * This syntax in incorrect, but Adobe Acrobat creates PDF files that contain\n   * them. We ignore all apostrophes as they are not necessary for date parsing.\n   *\n   * Moreover, Adobe Acrobat doesn't handle changing the date to universal time\n   * and doesn't use the user's time zone (effectively ignoring the HH' and mm'\n   * parts of the date string).\n   *\n   * @param {string} input\n   * @returns {Date|null}\n   */\n  static toDateObject(input) {\n    if (!input || !isString(input)) {\n      return null;\n    }\n\n    // Lazily initialize the regular expression.\n    if (!pdfDateStringRegex) {\n      pdfDateStringRegex = new RegExp(\n        \"^D:\" + // Prefix (required)\n          \"(\\\\d{4})\" + // Year (required)\n          \"(\\\\d{2})?\" + // Month (optional)\n          \"(\\\\d{2})?\" + // Day (optional)\n          \"(\\\\d{2})?\" + // Hour (optional)\n          \"(\\\\d{2})?\" + // Minute (optional)\n          \"(\\\\d{2})?\" + // Second (optional)\n          \"([Z|+|-])?\" + // Universal time relation (optional)\n          \"(\\\\d{2})?\" + // Offset hour (optional)\n          \"'?\" + // Splitting apostrophe (optional)\n          \"(\\\\d{2})?\" + // Offset minute (optional)\n          \"'?\" // Trailing apostrophe (optional)\n      );\n    }\n\n    // Optional fields that don't satisfy the requirements from the regular\n    // expression (such as incorrect digit counts or numbers that are out of\n    // range) will fall back the defaults from the specification.\n    const matches = pdfDateStringRegex.exec(input);\n    if (!matches) {\n      return null;\n    }\n\n    // JavaScript's `Date` object expects the month to be between 0 and 11\n    // instead of 1 and 12, so we have to correct for that.\n    const year = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || \"Z\";\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n    // Universal time relation 'Z' means that the local time is equal to the\n    // universal time, whereas the relations '+'/'-' indicate that the local\n    // time is later respectively earlier than the universal time. Every date\n    // is normalized to universal time.\n    if (universalTimeRelation === \"-\") {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === \"+\") {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n}\n\n/**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n */\nfunction getXfaPageViewport(xfaPage, { scale = 1, rotation = 0 }) {\n  const { width, height } = xfaPage.attributes.style;\n  const viewBox = [0, 0, parseInt(width), parseInt(height)];\n\n  return new PageViewport({\n    viewBox,\n    scale,\n    rotation,\n  });\n}\n\nexport {\n  addLinkAttributes,\n  deprecated,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMStandardFontDataFactory,\n  DOMSVGFactory,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getXfaPageViewport,\n  isDataScheme,\n  isPdfFile,\n  isValidFetchUrl,\n  LinkTarget,\n  loadScript,\n  PageViewport,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n  StatTimer,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = GeneratorFunctionPrototype;\n  define(Gp, \"constructor\", GeneratorFunctionPrototype);\n  define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  });\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  define(Gp, iteratorSymbol, function() {\n    return this;\n  });\n\n  define(Gp, \"toString\", function() {\n    return \"[object Generator]\";\n  });\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, in modern engines\n  // we can explicitly access globalThis. In older engines we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n *  - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n *    `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n *  - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n *    annotations are rendered onto the canvas (i.e. by being included in the\n *    operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n *    and their `annotationMode`-option.\n *  - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n *    `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\",\n};\n\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1STANDARD: \"TYPE1STANDARD\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  /** @deprecated unused */\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n  /** @deprecated unused */\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  signatures: \"signatures\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  /** @deprecated unused */\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontBuildPath: \"errorFontBuildPath\",\n  errorFontGetPath: \"errorFontGetPath\",\n  errorMarkedContent: \"errorMarkedContent\",\n  errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n  let base;\n  try {\n    base = new URL(baseUrl);\n    if (!base.origin || base.origin === \"null\") {\n      return false; // non-HTTP url\n    }\n  } catch (e) {\n    return false;\n  }\n\n  const other = new URL(otherUrl, base);\n  return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n  try {\n    if (options && typeof url === \"string\") {\n      // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n        // Avoid accidentally matching a *relative* URL pointing to a file named\n        // e.g. \"www.pdf\" or similar.\n        if (dots && dots.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n      // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch (ex) {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      prop in obj,\n      `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n    );\n  }\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n\n  return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n}\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n}\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n}\n\nconst NullCharactersRegExp = /\\x00+/g;\nconst InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\n\n/**\n * @param {string} str\n */\nfunction removeNullCharacters(str, replaceInvisible = false) {\n  if (typeof str !== \"string\") {\n    warn(\"The argument for removeNullCharacters must be a string.\");\n    return str;\n  }\n  if (replaceInvisible) {\n    str = str.replace(InvisibleCharactersRegExp, \" \");\n  }\n  return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n  assert(\n    bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined,\n    \"Invalid argument for bytesToString\"\n  );\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array<any>|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n  assert(arr.byteLength !== undefined, \"arrayByteLength - invalid argument.\");\n  return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array<Array<any>|Uint8Array|string>} arr - the array of the arrays\n *   (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n  // Shortcut: if first and only item is Uint8Array, return it.\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n  let resultLength = 0;\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n  return data;\n}\n\nfunction string32(value) {\n  if (\n    typeof PDFJSDev === \"undefined\" ||\n    PDFJSDev.test(\"!PRODUCTION || TESTING\")\n  ) {\n    assert(\n      typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n      `string32: Unexpected input \"${value}\".`\n    );\n  }\n  return String.fromCharCode(\n    (value >> 24) & 0xff,\n    (value >> 16) & 0xff,\n    (value >> 8) & 0xff,\n    value & 0xff\n  );\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n  return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\nconst IsLittleEndianCached = {\n  get value() {\n    return shadow(this, \"value\", isLittleEndian());\n  },\n};\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(\"\"); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nconst IsEvalSupportedCached = {\n  get value() {\n    return shadow(this, \"value\", isEvalSupported());\n  },\n};\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n  n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // For 2d affine transforms\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    return [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1]),\n    ];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // Apply a generic 3d matrix M on a 3-vector v:\n  //   | a b c |   | X |\n  //   | d e f | x | Y |\n  //   | g h i |   | Z |\n  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n  // with v as [X,Y,Z]\n  static apply3dTransform(m, v) {\n    return [\n      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n      m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n    // Solve the second degree polynomial to get roots.\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  static normalizeRect(rect) {\n    const r = rect.slice(0); // clone rect\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  }\n\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'false'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    function compare(a, b) {\n      return a - b;\n    }\n\n    // Order points along the axes\n    const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n    const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n    const result = [];\n\n    rect1 = Util.normalizeRect(rect1);\n    rect2 = Util.normalizeRect(rect2);\n\n    // X: first and second points belong to different rectangles?\n    if (\n      (orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n      (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])\n    ) {\n      // Intersection must be between second and third points\n      result[0] = orderedX[1];\n      result[2] = orderedX[2];\n    } else {\n      return null;\n    }\n\n    // Y: first and second points belong to different rectangles?\n    if (\n      (orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n      (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])\n    ) {\n      // Intersection must be between second and third points\n      result[1] = orderedY[1];\n      result[3] = orderedY[2];\n    } else {\n      return null;\n    }\n\n    return result;\n  }\n\n  // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n      bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n        t = -c / b;\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n        continue;\n      }\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n      if (b2ac < 0) {\n        continue;\n      }\n      t1 = (-b + sqrtb2ac) / (2 * a);\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n      t2 = (-b - sqrtb2ac) / (2 * a);\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n      mt;\n    const jlen = j;\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] =\n        mt * mt * mt * x0 +\n        3 * mt * mt * t * x1 +\n        3 * mt * t * t * x2 +\n        t * t * t * x3;\n      bounds[1][j] =\n        mt * mt * mt * y0 +\n        3 * mt * mt * t * y1 +\n        3 * mt * t * t * y2 +\n        t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n\n    return [\n      Math.min(...bounds[0]),\n      Math.min(...bounds[1]),\n      Math.max(...bounds[0]),\n      Math.max(...bounds[1]),\n    ];\n  }\n}\n\nconst PDFStringTranslateTable = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n  0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n  0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n  0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n  0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n  const length = str.length,\n    strBuf = [];\n  if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n    // UTF16BE BOM\n    for (let i = 2; i < length; i += 2) {\n      strBuf.push(\n        String.fromCharCode((str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))\n      );\n    }\n  } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n    // UTF16LE BOM\n    for (let i = 2; i < length; i += 2) {\n      strBuf.push(\n        String.fromCharCode((str.charCodeAt(i + 1) << 8) | str.charCodeAt(i))\n      );\n    }\n  } else {\n    for (let i = 0; i < length; ++i) {\n      const code = PDFStringTranslateTable[str.charCodeAt(i)];\n      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n    }\n  }\n  return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n  // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n  // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n  // in order to write it in a PDF file.\n  return str.replace(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n    return `\\\\${match}`;\n  });\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n  const buf = [\"\\xFE\\xFF\"];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(\n      String.fromCharCode((char >> 8) & 0xff),\n      String.fromCharCode(char & 0xff)\n    );\n  }\n  return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isBool(v) {\n  return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n  return typeof v === \"number\";\n}\n\nfunction isString(v) {\n  return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n  const buffer = [\n    date.getUTCFullYear().toString(),\n    (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n    date.getUTCDate().toString().padStart(2, \"0\"),\n    date.getUTCHours().toString().padStart(2, \"0\"),\n    date.getUTCMinutes().toString().padStart(2, \"0\"),\n    date.getUTCSeconds().toString().padStart(2, \"0\"),\n  ];\n\n  return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise<any>} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    },\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\nfunction createObjectURL(data, contentType = \"\", forceDataSchema = false) {\n  if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n    return URL.createObjectURL(new Blob([data], { type: contentType }));\n  }\n  // Blob/createObjectURL is not available, falling back to data schema.\n  const digits =\n    \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n  let buffer = `data:${contentType};base64,`;\n  for (let i = 0, ii = data.length; i < ii; i += 3) {\n    const b1 = data[i] & 0xff;\n    const b2 = data[i + 1] & 0xff;\n    const b3 = data[i + 2] & 0xff;\n    const d1 = b1 >> 2,\n      d2 = ((b1 & 3) << 4) | (b2 >> 4);\n    const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n    const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n    buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n  }\n  return buffer;\n}\n\nexport {\n  AbortException,\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMarkedState,\n  AnnotationMode,\n  AnnotationReplyType,\n  AnnotationReviewState,\n  AnnotationStateModelType,\n  AnnotationType,\n  arrayByteLength,\n  arraysToBytes,\n  assert,\n  BaseException,\n  bytesToString,\n  CMapCompressionType,\n  createObjectURL,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  escapeString,\n  FONT_IDENTITY_MATRIX,\n  FontType,\n  FormatError,\n  getModificationDate,\n  getVerbosityLevel,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isArrayEqual,\n  isAscii,\n  isBool,\n  IsEvalSupportedCached,\n  IsLittleEndianCached,\n  isNum,\n  isSameOrigin,\n  isString,\n  MissingPDFException,\n  objectFromMap,\n  objectSize,\n  OPS,\n  PageActionEventType,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  removeNullCharacters,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  StreamType,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF16BEString,\n  stringToUTF8String,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  UNSUPPORTED_FEATURES,\n  utf8StringToString,\n  Util,\n  VerbosityLevel,\n  warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n  (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n  (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked)\n) {\n  // Provides support for `globalThis` in legacy browsers.\n  // Support: Firefox<65, Chrome<71, Safari<12.1, Node.js<12.0.0\n  if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n    // eslint-disable-next-line no-global-assign\n    globalThis = require(\"core-js/es/global-this\");\n  }\n  globalThis._pdfjsCompatibilityChecked = true;\n\n  // Support: Node.js\n  (function checkNodeBtoa() {\n    if (globalThis.btoa || !isNodeJS) {\n      return;\n    }\n    globalThis.btoa = function (chars) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(chars, \"binary\").toString(\"base64\");\n    };\n  })();\n\n  // Support: Node.js\n  (function checkNodeAtob() {\n    if (globalThis.atob || !isNodeJS) {\n      return;\n    }\n    globalThis.atob = function (input) {\n      // eslint-disable-next-line no-undef\n      return Buffer.from(input, \"base64\").toString(\"binary\");\n    };\n  })();\n\n  // Support: Node.js\n  (function checkDOMMatrix() {\n    if (globalThis.DOMMatrix || !isNodeJS) {\n      return;\n    }\n    globalThis.DOMMatrix = require(\"dommatrix/dist/dommatrix.js\");\n  })();\n\n  // Provides support for Object.fromEntries in legacy browsers.\n  // Support: Firefox<63, Chrome<73, Safari<12.1, Node.js<12.0.0\n  (function checkObjectFromEntries() {\n    if (Object.fromEntries) {\n      return;\n    }\n    require(\"core-js/es/object/from-entries.js\");\n  })();\n\n  // Provides support for *recent* additions to the Promise specification,\n  // however basic Promise support is assumed to be available natively.\n  // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n  (function checkPromise() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `Promise` shouldn't\n      // need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    if (globalThis.Promise.allSettled) {\n      return;\n    }\n    globalThis.Promise = require(\"core-js/es/promise/index.js\");\n  })();\n\n  // Support: Node.js\n  (function checkReadableStream() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      // The current image decoders are synchronous, hence `ReadableStream`\n      // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n      return;\n    }\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")) {\n      // Slightly reduce the size of the Chromium-extension, given\n      // that `ReadableStream` has been supported since Chrome 43.\n      return;\n    }\n    if (globalThis.ReadableStream || !isNodeJS) {\n      return;\n    }\n    globalThis.ReadableStream =\n      require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n  })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../modules/es.global-this');\n\nmodule.exports = require('../internals/global');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n  globalThis: global\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n  options.name        - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n  return fn && callBind(call, fn);\n} : function (fn) {\n  return fn && function () {\n    return call.apply(fn, arguments);\n  };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n  return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n  try {\n    return String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n    var description = 'Symbol.' + name;\n    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n      WellKnownSymbolsStore[name] = Symbol[name];\n    } else if (USE_SYMBOL_AS_UID && symbolFor) {\n      WellKnownSymbolsStore[name] = symbolFor(description);\n    } else {\n      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n    }\n  } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.19.3',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var name = options && options.name !== undefined ? options.name : key;\n  var state;\n  if (isCallable(value)) {\n    if (String(name).slice(0, 7) === 'Symbol(') {\n      name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n    }\n    if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n      createNonEnumerableProperty(value, 'name', name);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = uncurryThis(store.get);\n  var wmhas = uncurryThis(store.has);\n  var wmset = uncurryThis(store.set);\n  set = function (it, metadata) {\n    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    wmset(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- safe\n  return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","/*!\n* DOMMatrix v0.0.24 (https://thednp.github.io/DOMMatrix/)\n* Copyright 2021 © thednp\n* Licensed under MIT (https://github.com/thednp/DOMMatrix/blob/master/LICENSE)\n*/\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CSSMatrix = factory());\n})(this, (function () { 'use strict';\n\n  // DOMMatrix Static methods\n  // * `fromFloat64Array` and `fromFloat32Array are not implemented;\n  // * `fromArray` is a more simple implementation, should also accept Float[32/64]Array;\n  // * `fromMatrix` load values from another CSSMatrix/DOMMatrix instance or JSON object;\n  // * `fromString` parses and loads values from any valid CSS transform string (TransformList).\n\n  /**\n   * Creates a new mutable `CSSMatrix` instance given an array of 16/6 floating point values.\n   * This static method invalidates arrays that contain non-number elements.\n   *\n   * If the array has six values, the result is a 2D matrix; if the array has 16 values,\n   * the result is a 3D matrix. Otherwise, a TypeError exception is thrown.\n   *\n   * @param {number[]} array an `Array` to feed values from.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function fromArray(array) {\n    var m = new CSSMatrix();\n    var a = Array.from(array);\n\n    if (!a.every(function (n) { return !Number.isNaN(n); })) {\n      throw TypeError((\"CSSMatrix: \\\"\" + array + \"\\\" must only have numbers.\"));\n    }\n    if (a.length === 16) {\n      var m11 = a[0];\n      var m12 = a[1];\n      var m13 = a[2];\n      var m14 = a[3];\n      var m21 = a[4];\n      var m22 = a[5];\n      var m23 = a[6];\n      var m24 = a[7];\n      var m31 = a[8];\n      var m32 = a[9];\n      var m33 = a[10];\n      var m34 = a[11];\n      var m41 = a[12];\n      var m42 = a[13];\n      var m43 = a[14];\n      var m44 = a[15];\n\n      m.m11 = m11;\n      m.a = m11;\n\n      m.m21 = m21;\n      m.c = m21;\n\n      m.m31 = m31;\n\n      m.m41 = m41;\n      m.e = m41;\n\n      m.m12 = m12;\n      m.b = m12;\n\n      m.m22 = m22;\n      m.d = m22;\n\n      m.m32 = m32;\n\n      m.m42 = m42;\n      m.f = m42;\n\n      m.m13 = m13;\n      m.m23 = m23;\n      m.m33 = m33;\n      m.m43 = m43;\n      m.m14 = m14;\n      m.m24 = m24;\n      m.m34 = m34;\n      m.m44 = m44;\n    } else if (a.length === 6) {\n      var M11 = a[0];\n      var M12 = a[1];\n      var M21 = a[2];\n      var M22 = a[3];\n      var M41 = a[4];\n      var M42 = a[5];\n\n      m.m11 = M11;\n      m.a = M11;\n\n      m.m12 = M12;\n      m.b = M12;\n\n      m.m21 = M21;\n      m.c = M21;\n\n      m.m22 = M22;\n      m.d = M22;\n\n      m.m41 = M41;\n      m.e = M41;\n\n      m.m42 = M42;\n      m.f = M42;\n    } else {\n      throw new TypeError('CSSMatrix: expecting an Array of 6/16 values.');\n    }\n    return m;\n  }\n\n  /**\n   * Creates a new mutable `CSSMatrix` instance given an existing matrix or a\n   * `DOMMatrix` instance which provides the values for its properties.\n   *\n   * @param {CSSMatrix | DOMMatrix | CSSMatrix.JSONMatrix} m the source matrix to feed values from.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function fromMatrix(m) {\n    var keys = Object.keys(new CSSMatrix());\n    if (typeof m === 'object' && keys.every(function (k) { return k in m; })) {\n      return fromArray(\n        [m.m11, m.m12, m.m13, m.m14,\n          m.m21, m.m22, m.m23, m.m24,\n          m.m31, m.m32, m.m33, m.m34,\n          m.m41, m.m42, m.m43, m.m44]\n      );\n    }\n    throw TypeError((\"CSSMatrix: \\\"\" + m + \"\\\" is not a DOMMatrix / CSSMatrix / JSON compatible object.\"));\n  }\n\n  /**\n   * Creates a new mutable `CSSMatrix` given any valid CSS transform string,\n   * or what we call `TransformList`:\n   *\n   * * `matrix(a, b, c, d, e, f)` - valid matrix() transform function\n   * * `matrix3d(m11, m12, m13, ...m44)` - valid matrix3d() transform function\n   * * `translate(tx, ty) rotateX(alpha)` - any valid transform function(s)\n   *\n   * @copyright thednp © 2021\n   *\n   * @param {string} source valid CSS transform string syntax.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function fromString(source) {\n    if (typeof source !== 'string') {\n      throw TypeError((\"CSSMatrix: \\\"\" + source + \"\\\" is not a string.\"));\n    }\n    var str = String(source).replace(/\\s/g, '');\n    var m = new CSSMatrix();\n    var invalidStringError = \"CSSMatrix: invalid transform string \\\"\" + source + \"\\\"\";\n\n    // const px = ['perspective'];\n    // const length = ['translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\n    // const deg = ['rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'skew', 'skewX', 'skewY'];\n    // const abs = ['scale', 'scale3d', 'matrix', 'matrix3d'];\n    // const transformFunctions = px.concat(length, deg, abs);\n\n    str.split(')').filter(function (f) { return f; }).forEach(function (tf) {\n      var ref = tf.split('(');\n      var prop = ref[0];\n      var value = ref[1];\n\n      // invalidate empty string\n      if (!value) { throw TypeError(invalidStringError); }\n\n      var components = value.split(',')\n        .map(function (n) { return (n.includes('rad') ? parseFloat(n) * (180 / Math.PI) : parseFloat(n)); });\n\n      var x = components[0];\n      var y = components[1];\n      var z = components[2];\n      var a = components[3];\n      var xyz = [x, y, z];\n      var xyza = [x, y, z, a];\n\n      // single number value expected\n      if (prop === 'perspective' && x && [y, z].every(function (n) { return n === undefined; })) {\n        m.m34 = -1 / x;\n      // 6/16 number values expected\n      } else if (prop.includes('matrix') && [6, 16].includes(components.length)\n        && components.every(function (n) { return !Number.isNaN(+n); })) {\n        var values = components.map(function (n) { return (Math.abs(n) < 1e-6 ? 0 : n); });\n        m = m.multiply(fromArray(values));\n      // 3 values expected\n      } else if (prop === 'translate3d' && xyz.every(function (n) { return !Number.isNaN(+n); })) {\n        m = m.translate(x, y, z);\n      // single/double number value(s) expected\n      } else if (prop === 'translate' && x && z === undefined) {\n        m = m.translate(x, y || 0, 0);\n      // all 4 values expected\n      } else if (prop === 'rotate3d' && xyza.every(function (n) { return !Number.isNaN(+n); }) && a) {\n        m = m.rotateAxisAngle(x, y, z, a);\n      // single value expected\n      } else if (prop === 'rotate' && x && [y, z].every(function (n) { return n === undefined; })) {\n        m = m.rotate(0, 0, x);\n      // 4 values expected\n      } else if (prop === 'scale3d' && xyz.every(function (n) { return !Number.isNaN(+n); }) && xyz.some(function (n) { return n !== 1; })) {\n        m = m.scale(x, y, z);\n      // single value expected\n      } else if (prop === 'scale' && !Number.isNaN(x) && x !== 1 && z === undefined) {\n        var nosy = Number.isNaN(+y);\n        var sy = nosy ? x : y;\n        m = m.scale(x, sy, 1);\n      // single/double value expected\n      } else if (prop === 'skew' && x && z === undefined) {\n        m = m.skewX(x);\n        m = y ? m.skewY(y) : m;\n      } else if (/[XYZ]/.test(prop) && x && [y, z].every(function (n) { return n === undefined; }) // a single value expected\n        && ['translate', 'rotate', 'scale', 'skew'].some(function (p) { return prop.includes(p); })) {\n        if (['skewX', 'skewY'].includes(prop)) {\n          // @ts-ignore unfortunately\n          m = m[prop](x);\n        } else {\n          var fn = prop.replace(/[XYZ]/, '');\n          var axis = prop.replace(fn, '');\n          var idx = ['X', 'Y', 'Z'].indexOf(axis);\n          var axeValues = [\n            idx === 0 ? x : 0,\n            idx === 1 ? x : 0,\n            idx === 2 ? x : 0];\n          // @ts-ignore unfortunately\n          m = m[fn].apply(m, axeValues);\n        }\n      } else {\n        throw TypeError(invalidStringError);\n      }\n    });\n\n    return m;\n  }\n\n  // Transform Functions\n  // https://www.w3.org/TR/css-transforms-1/#transform-functions\n\n  /**\n   * Creates a new `CSSMatrix` for the translation matrix and returns it.\n   * This method is equivalent to the CSS `translate3d()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate3d\n   *\n   * @param {number} x the `x-axis` position.\n   * @param {number} y the `y-axis` position.\n   * @param {number} z the `z-axis` position.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Translate(x, y, z) {\n    var m = new CSSMatrix();\n    m.m41 = x;\n    m.e = x;\n    m.m42 = y;\n    m.f = y;\n    m.m43 = z;\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n   *\n   * http://en.wikipedia.org/wiki/Rotation_matrix\n   *\n   * @param {number} rx the `x-axis` rotation.\n   * @param {number} ry the `y-axis` rotation.\n   * @param {number} rz the `z-axis` rotation.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Rotate(rx, ry, rz) {\n    var m = new CSSMatrix();\n    var degToRad = Math.PI / 180;\n    var radX = rx * degToRad;\n    var radY = ry * degToRad;\n    var radZ = rz * degToRad;\n\n    // minus sin() because of right-handed system\n    var cosx = Math.cos(radX);\n    var sinx = -Math.sin(radX);\n    var cosy = Math.cos(radY);\n    var siny = -Math.sin(radY);\n    var cosz = Math.cos(radZ);\n    var sinz = -Math.sin(radZ);\n\n    var m11 = cosy * cosz;\n    var m12 = -cosy * sinz;\n\n    m.m11 = m11;\n    m.a = m11;\n\n    m.m12 = m12;\n    m.b = m12;\n\n    m.m13 = siny;\n\n    var m21 = sinx * siny * cosz + cosx * sinz;\n    m.m21 = m21;\n    m.c = m21;\n\n    var m22 = cosx * cosz - sinx * siny * sinz;\n    m.m22 = m22;\n    m.d = m22;\n\n    m.m23 = -sinx * cosy;\n\n    m.m31 = sinx * sinz - cosx * siny * cosz;\n    m.m32 = sinx * cosz + cosx * siny * sinz;\n    m.m33 = cosx * cosy;\n\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the rotation matrix and returns it.\n   * This method is equivalent to the CSS `rotate3d()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d\n   *\n   * @param {number} x the `x-axis` vector length.\n   * @param {number} y the `y-axis` vector length.\n   * @param {number} z the `z-axis` vector length.\n   * @param {number} alpha the value in degrees of the rotation.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function RotateAxisAngle(x, y, z, alpha) {\n    var m = new CSSMatrix();\n    var angle = alpha * (Math.PI / 360);\n    var sinA = Math.sin(angle);\n    var cosA = Math.cos(angle);\n    var sinA2 = sinA * sinA;\n    var length = Math.sqrt(x * x + y * y + z * z);\n    var X = x;\n    var Y = y;\n    var Z = z;\n\n    if (length === 0) {\n      // bad vector length, use something reasonable\n      X = 0;\n      Y = 0;\n      Z = 1;\n    } else {\n      X /= length;\n      Y /= length;\n      Z /= length;\n    }\n\n    var x2 = X * X;\n    var y2 = Y * Y;\n    var z2 = Z * Z;\n\n    var m11 = 1 - 2 * (y2 + z2) * sinA2;\n    m.m11 = m11;\n    m.a = m11;\n\n    var m12 = 2 * (X * Y * sinA2 + Z * sinA * cosA);\n    m.m12 = m12;\n    m.b = m12;\n\n    m.m13 = 2 * (X * Z * sinA2 - Y * sinA * cosA);\n\n    var m21 = 2 * (Y * X * sinA2 - Z * sinA * cosA);\n    m.m21 = m21;\n    m.c = m21;\n\n    var m22 = 1 - 2 * (z2 + x2) * sinA2;\n    m.m22 = m22;\n    m.d = m22;\n\n    m.m23 = 2 * (Y * Z * sinA2 + X * sinA * cosA);\n    m.m31 = 2 * (Z * X * sinA2 + Y * sinA * cosA);\n    m.m32 = 2 * (Z * Y * sinA2 - X * sinA * cosA);\n    m.m33 = 1 - 2 * (x2 + y2) * sinA2;\n\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the scale matrix and returns it.\n   * This method is equivalent to the CSS `scale3d()` function, except it doesn't\n   * accept {x, y, z} transform origin parameters.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale3d\n   *\n   * @param {number} x the `x-axis` scale.\n   * @param {number} y the `y-axis` scale.\n   * @param {number} z the `z-axis` scale.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Scale(x, y, z) {\n    var m = new CSSMatrix();\n    m.m11 = x;\n    m.a = x;\n\n    m.m22 = y;\n    m.d = y;\n\n    m.m33 = z;\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the shear of the `x-axis` rotation matrix and\n   * returns it. This method is equivalent to the CSS `skewX()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewX\n   *\n   * @param {number} angle the angle in degrees.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function SkewX(angle) {\n    var m = new CSSMatrix();\n    var radA = (angle * Math.PI) / 180;\n    var t = Math.tan(radA);\n    m.m21 = t;\n    m.c = t;\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` for the shear of the `y-axis` rotation matrix and\n   * returns it. This method is equivalent to the CSS `skewY()` function.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewY\n   *\n   * @param {number} angle the angle in degrees.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function SkewY(angle) {\n    var m = new CSSMatrix();\n    var radA = (angle * Math.PI) / 180;\n    var t = Math.tan(radA);\n    m.m12 = t;\n    m.b = t;\n    return m;\n  }\n\n  /**\n   * Creates a new `CSSMatrix` resulted from the multiplication of two matrixes\n   * and returns it. Both matrixes are not changed.\n   *\n   * @param {CSSMatrix} m1 the first matrix.\n   * @param {CSSMatrix} m2 the second matrix.\n   * @return {CSSMatrix} the resulted matrix.\n   */\n  function Multiply(m1, m2) {\n    var m11 = m2.m11 * m1.m11 + m2.m12 * m1.m21 + m2.m13 * m1.m31 + m2.m14 * m1.m41;\n    var m12 = m2.m11 * m1.m12 + m2.m12 * m1.m22 + m2.m13 * m1.m32 + m2.m14 * m1.m42;\n    var m13 = m2.m11 * m1.m13 + m2.m12 * m1.m23 + m2.m13 * m1.m33 + m2.m14 * m1.m43;\n    var m14 = m2.m11 * m1.m14 + m2.m12 * m1.m24 + m2.m13 * m1.m34 + m2.m14 * m1.m44;\n\n    var m21 = m2.m21 * m1.m11 + m2.m22 * m1.m21 + m2.m23 * m1.m31 + m2.m24 * m1.m41;\n    var m22 = m2.m21 * m1.m12 + m2.m22 * m1.m22 + m2.m23 * m1.m32 + m2.m24 * m1.m42;\n    var m23 = m2.m21 * m1.m13 + m2.m22 * m1.m23 + m2.m23 * m1.m33 + m2.m24 * m1.m43;\n    var m24 = m2.m21 * m1.m14 + m2.m22 * m1.m24 + m2.m23 * m1.m34 + m2.m24 * m1.m44;\n\n    var m31 = m2.m31 * m1.m11 + m2.m32 * m1.m21 + m2.m33 * m1.m31 + m2.m34 * m1.m41;\n    var m32 = m2.m31 * m1.m12 + m2.m32 * m1.m22 + m2.m33 * m1.m32 + m2.m34 * m1.m42;\n    var m33 = m2.m31 * m1.m13 + m2.m32 * m1.m23 + m2.m33 * m1.m33 + m2.m34 * m1.m43;\n    var m34 = m2.m31 * m1.m14 + m2.m32 * m1.m24 + m2.m33 * m1.m34 + m2.m34 * m1.m44;\n\n    var m41 = m2.m41 * m1.m11 + m2.m42 * m1.m21 + m2.m43 * m1.m31 + m2.m44 * m1.m41;\n    var m42 = m2.m41 * m1.m12 + m2.m42 * m1.m22 + m2.m43 * m1.m32 + m2.m44 * m1.m42;\n    var m43 = m2.m41 * m1.m13 + m2.m42 * m1.m23 + m2.m43 * m1.m33 + m2.m44 * m1.m43;\n    var m44 = m2.m41 * m1.m14 + m2.m42 * m1.m24 + m2.m43 * m1.m34 + m2.m44 * m1.m44;\n\n    return fromArray(\n      [m11, m12, m13, m14,\n        m21, m22, m23, m24,\n        m31, m32, m33, m34,\n        m41, m42, m43, m44]\n    );\n  }\n\n  /**\n   * Creates and returns a new `DOMMatrix` compatible instance\n   * with equivalent instance.\n   * @class CSSMatrix\n   *\n   * @author thednp <https://github.com/thednp/DOMMatrix/>\n   * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix\n   */\n\n  var CSSMatrix = function CSSMatrix() {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var m = this;\n    // array 6\n    m.a = 1; m.b = 0;\n    m.c = 0; m.d = 1;\n    m.e = 0; m.f = 0;\n    // array 16\n    m.m11 = 1; m.m12 = 0; m.m13 = 0; m.m14 = 0;\n    m.m21 = 0; m.m22 = 1; m.m23 = 0; m.m24 = 0;\n    m.m31 = 0; m.m32 = 0; m.m33 = 1; m.m34 = 0;\n    m.m41 = 0; m.m42 = 0; m.m43 = 0; m.m44 = 1;\n\n    if (args && args.length) {\n      var ARGS = [16, 6].some(function (l) { return l === args.length; }) ? args : args[0];\n\n      return m.setMatrixValue(ARGS);\n    }\n    return m;\n  };\n\n  var prototypeAccessors = { isIdentity: { configurable: true },is2D: { configurable: true } };\n\n  /**\n   * Sets a new `Boolean` flag value for `this.isIdentity` matrix property.\n   *\n   * @param {boolean} value sets a new flag for this property\n   */\n  prototypeAccessors.isIdentity.set = function (value) {\n    this.isIdentity = value;\n  };\n\n  /**\n   * A `Boolean` whose value is `true` if the matrix is the identity matrix. The identity\n   * matrix is one in which every value is 0 except those on the main diagonal from top-left\n   * to bottom-right corner (in other words, where the offsets in each direction are equal).\n   *\n   * @return {boolean} the current property value\n   */\n  prototypeAccessors.isIdentity.get = function () {\n    var m = this;\n    return (m.m11 === 1 && m.m12 === 0 && m.m13 === 0 && m.m14 === 0\n            && m.m21 === 0 && m.m22 === 1 && m.m23 === 0 && m.m24 === 0\n            && m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0\n            && m.m41 === 0 && m.m42 === 0 && m.m43 === 0 && m.m44 === 1);\n  };\n\n  /**\n   * A `Boolean` flag whose value is `true` if the matrix was initialized as a 2D matrix\n   * and `false` if the matrix is 3D.\n   *\n   * @return {boolean} the current property value\n   */\n  prototypeAccessors.is2D.get = function () {\n    var m = this;\n    return (m.m31 === 0 && m.m32 === 0 && m.m33 === 1 && m.m34 === 0 && m.m43 === 0 && m.m44 === 1);\n  };\n\n  /**\n   * Sets a new `Boolean` flag value for `this.is2D` matrix property.\n   *\n   * @param {boolean} value sets a new flag for this property\n   */\n  prototypeAccessors.is2D.set = function (value) {\n    this.is2D = value;\n  };\n\n  /**\n   * The `setMatrixValue` method replaces the existing matrix with one computed\n   * in the browser. EG: `matrix(1,0.25,-0.25,1,0,0)`\n   *\n   * The method accepts any *Array* values, the result of\n   * `DOMMatrix` instance method `toFloat64Array()` / `toFloat32Array()` calls\n   *or `CSSMatrix` instance method `toArray()`.\n   *\n   * This method expects valid *matrix()* / *matrix3d()* string values, as well\n   * as other transform functions like *translateX(10px)*.\n   *\n   * @param {string | number[] | CSSMatrix | DOMMatrix} source\n   * @return {CSSMatrix} the matrix instance\n   */\n  CSSMatrix.prototype.setMatrixValue = function setMatrixValue (source) {\n    var m = this;\n\n    // [Arguments list | Array] come here\n    if ([Array, Float64Array, Float32Array].some(function (a) { return source instanceof a; })) {\n      return fromArray(source);\n    }\n    // CSS transform string source - TransformList\n    if (typeof source === 'string' && source.length && source !== 'none') {\n      return fromString(source);\n    }\n    // new CSSMatrix(CSSMatrix | DOMMatrix | JSON)\n    if (typeof source === 'object') {\n      return fromMatrix(source);\n    }\n    return m;\n  };\n\n  /**\n   * Returns an *Array* containing elements which comprise the matrix.\n   * The method can return either the 16 elements or the 6 elements\n   * depending on the value of the `is2D` property.\n   *\n   * @return {number[]} an *Array* representation of the matrix\n   */\n  CSSMatrix.prototype.toArray = function toArray () {\n    var m = this;\n    var pow = (Math.pow( 10, 6 ));\n    var result;\n\n    if (m.is2D) {\n      result = [m.a, m.b, m.c, m.d, m.e, m.f];\n    } else {\n      result = [m.m11, m.m12, m.m13, m.m14,\n        m.m21, m.m22, m.m23, m.m24,\n        m.m31, m.m32, m.m33, m.m34,\n        m.m41, m.m42, m.m43, m.m44];\n    }\n    // clean up the numbers\n    // eslint-disable-next-line -- no-bitwise\n    return result.map(function (n) { return (Math.abs(n) < 1e-6 ? 0 : ((n * pow) >> 0) / pow); });\n  };\n\n  /**\n   * Creates and returns a string representation of the matrix in `CSS` matrix syntax,\n   * using the appropriate `CSS` matrix notation.\n   *\n   * matrix3d *matrix3d(m11, m12, m13, m14, m21, ...)*\n   * matrix *matrix(a, b, c, d, e, f)*\n   *\n   * @return {string} a string representation of the matrix\n   */\n  CSSMatrix.prototype.toString = function toString () {\n    var m = this;\n    var values = m.toArray();\n    var type = m.is2D ? 'matrix' : 'matrix3d';\n    return (type + \"(\" + values + \")\");\n  };\n\n  /**\n   * Returns a JSON representation of the `CSSMatrix` instance, a standard *Object*\n   * that includes `{a,b,c,d,e,f}` and `{m11,m12,m13,..m44}` properties as well\n   * as the `is2D` & `isIdentity` properties.\n   *\n   * The result can also be used as a second parameter for the `fromMatrix` static method\n   * to load values into another matrix instance.\n   *\n   * @return {CSSMatrix.JSONMatrix} an *Object* with all matrix values.\n   */\n  CSSMatrix.prototype.toJSON = function toJSON () {\n    var m = this;\n    var is2D = m.is2D;\n      var isIdentity = m.isIdentity;\n    return Object.assign({}, m, {is2D: is2D, isIdentity: isIdentity});\n  };\n\n  /**\n   * The Multiply method returns a new CSSMatrix which is the result of this\n   * matrix multiplied by the passed matrix, with the passed matrix to the right.\n   * This matrix is not modified.\n   *\n   * @param {CSSMatrix | DOMMatrix | CSSMatrix.JSONMatrix} m2 CSSMatrix\n   * @return {CSSMatrix} The resulted matrix.\n   */\n  CSSMatrix.prototype.multiply = function multiply (m2) {\n    return Multiply(this, m2);\n  };\n\n  /**\n   * The translate method returns a new matrix which is this matrix post\n   * multiplied by a translation matrix containing the passed values. If the z\n   * component is undefined, a 0 value is used in its place. This matrix is not\n   * modified.\n   *\n   * @param {number} x X component of the translation value.\n   * @param {number=} y Y component of the translation value.\n   * @param {number=} z Z component of the translation value.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.translate = function translate (x, y, z) {\n    var X = x;\n    var Y = y;\n    var Z = z;\n    if (Z === undefined) { Z = 0; }\n    if (Y === undefined) { Y = 0; }\n    return Multiply(this, Translate(X, Y, Z));\n  };\n\n  /**\n   * The scale method returns a new matrix which is this matrix post multiplied by\n   * a scale matrix containing the passed values. If the z component is undefined,\n   * a 1 value is used in its place. If the y component is undefined, the x\n   * component value is used in its place. This matrix is not modified.\n   *\n   * @param {number} x The X component of the scale value.\n   * @param {number=} y The Y component of the scale value.\n   * @param {number=} z The Z component of the scale value.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.scale = function scale (x, y, z) {\n    var X = x;\n    var Y = y;\n    var Z = z;\n    if (Y === undefined) { Y = x; }\n    if (Z === undefined) { Z = 1; } // Z must be 1 if undefined\n\n    return Multiply(this, Scale(X, Y, Z));\n  };\n\n  /**\n   * The rotate method returns a new matrix which is this matrix post multiplied\n   * by each of 3 rotation matrices about the major axes, first X, then Y, then Z.\n   * If the y and z components are undefined, the x value is used to rotate the\n   * object about the z axis, as though the vector (0,0,x) were passed. All\n   * rotation values are in degrees. This matrix is not modified.\n   *\n   * @param {number} rx The X component of the rotation, or Z if Y and Z are null.\n   * @param {number=} ry The (optional) Y component of the rotation value.\n   * @param {number=} rz The (optional) Z component of the rotation value.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.rotate = function rotate (rx, ry, rz) {\n    var RX = rx;\n    var RY = ry;\n    var RZ = rz;\n    if (RY === undefined) { RY = 0; }\n    if (RZ === undefined) { RZ = RX; RX = 0; }\n    return Multiply(this, Rotate(RX, RY, RZ));\n  };\n\n  /**\n   * The rotateAxisAngle method returns a new matrix which is this matrix post\n   * multiplied by a rotation matrix with the given axis and `angle`. The right-hand\n   * rule is used to determine the direction of rotation. All rotation values are\n   * in degrees. This matrix is not modified.\n   *\n   * @param {number} x The X component of the axis vector.\n   * @param {number} y The Y component of the axis vector.\n   * @param {number} z The Z component of the axis vector.\n   * @param {number} angle The angle of rotation about the axis vector, in degrees.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.rotateAxisAngle = function rotateAxisAngle (x, y, z, angle) {\n    if ([x, y, z, angle].some(function (n) { return Number.isNaN(n); })) {\n      throw new TypeError('CSSMatrix: expecting 4 values');\n    }\n    return Multiply(this, RotateAxisAngle(x, y, z, angle));\n  };\n\n  /**\n   * Specifies a skew transformation along the `x-axis` by the given angle.\n   * This matrix is not modified.\n   *\n   * @param {number} angle The angle amount in degrees to skew.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.skewX = function skewX (angle) {\n    return Multiply(this, SkewX(angle));\n  };\n\n  /**\n   * Specifies a skew transformation along the `y-axis` by the given angle.\n   * This matrix is not modified.\n   *\n   * @param {number} angle The angle amount in degrees to skew.\n   * @return {CSSMatrix} The resulted matrix\n   */\n  CSSMatrix.prototype.skewY = function skewY (angle) {\n    return Multiply(this, SkewY(angle));\n  };\n\n  /**\n   * Transforms a specified point using the matrix, returning a new\n   * Tuple *Object* comprising of the transformed point.\n   * Neither the matrix nor the original point are altered.\n   *\n   * The method is equivalent with `transformPoint()` method\n   * of the `DOMMatrix` constructor.\n   *\n   * @copyright thednp © 2021\n   *\n   * @param {CSSMatrix.PointTuple | DOMPoint} v Tuple or DOMPoint\n   * @return {CSSMatrix.PointTuple} the resulting Tuple\n   */\n  CSSMatrix.prototype.transformPoint = function transformPoint (v) {\n    var M = this;\n    var m = Translate(v.x, v.y, v.z);\n\n    m.m44 = v.w || 1;\n    m = M.multiply(m);\n\n    return {\n      x: m.m41,\n      y: m.m42,\n      z: m.m43,\n      w: m.m44,\n    };\n  };\n\n  /**\n   * Transforms a specified vector using the matrix, returning a new\n   * {x,y,z,w} Tuple *Object* comprising the transformed vector.\n   * Neither the matrix nor the original vector are altered.\n   *\n   * @param {CSSMatrix.PointTuple} t Tuple with `{x,y,z,w}` components\n   * @return {CSSMatrix.PointTuple} the resulting Tuple\n   */\n  CSSMatrix.prototype.transform = function transform (t) {\n    var m = this;\n    var x = m.m11 * t.x + m.m12 * t.y + m.m13 * t.z + m.m14 * t.w;\n    var y = m.m21 * t.x + m.m22 * t.y + m.m23 * t.z + m.m24 * t.w;\n    var z = m.m31 * t.x + m.m32 * t.y + m.m33 * t.z + m.m34 * t.w;\n    var w = m.m41 * t.x + m.m42 * t.y + m.m43 * t.z + m.m44 * t.w;\n\n    return {\n      x: x / w,\n      y: y / w,\n      z: z / w,\n      w: w,\n    };\n  };\n\n  Object.defineProperties( CSSMatrix.prototype, prototypeAccessors );\n\n  // Add Transform Functions to CSSMatrix object\n  // without creating a TypeScript namespace.\n  Object.assign(CSSMatrix, {\n    Translate: Translate,\n    Rotate: Rotate,\n    RotateAxisAngle: RotateAxisAngle,\n    Scale: Scale,\n    SkewX: SkewX,\n    SkewY: SkewY,\n    Multiply: Multiply,\n    fromArray: fromArray,\n    fromMatrix: fromMatrix,\n    fromString: fromString,\n  });\n\n  var version = \"0.0.24\";\n\n  // @ts-ignore\n\n  /**\n   * A global namespace for library version.\n   * @type {string}\n   */\n  var Version = version;\n\n  Object.assign(CSSMatrix, { Version: Version });\n\n  return CSSMatrix;\n\n}));\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.from-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.fromEntries;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n          redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n    } else {\n      INCORRECT_VALUES_NAME = true;\n      defaultIterator = function values() { return call(nativeIterator, this); };\n    }\n  }\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n  }\n  Iterators[NAME] = defaultIterator;\n\n  return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  redefine(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'object' || isCallable(argument)) return argument;\n  throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, { AS_ENTRIES: true });\n    return obj;\n  }\n});\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator, 'normal', condition);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator, 'throw', error);\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPropertyKey(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n  var options = arguments.length > 2 ? arguments[2] : undefined;\n  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = setPrototypeOf(new Error(undefined), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n  } else {\n    that = isInstance ? this : create(AggregateErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  createNonEnumerableProperty(that, 'message', normalizeStringArgument(message, ''));\n  if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n  installErrorCause(that, options);\n  var errorsArray = [];\n  iterate(errors, push, { that: errorsArray });\n  createNonEnumerableProperty(that, 'errors', errorsArray);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error);\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n  constructor: createPropertyDescriptor(1, $AggregateError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n  AggregateError: $AggregateError\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar join = uncurryThis([].join);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\nvar IS_FIREFOX_OR_SAFARI_STACK = /@[^\\n]*\\n/.test(TEST) && !/zxcasd/.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (typeof stack != 'string') return stack;\n  if (IS_V8_OR_CHAKRA_STACK) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } else if (IS_FIREFOX_OR_SAFARI_STACK) {\n    return join(arraySlice(split(stack, '\\n'), dropEntries), '\\n');\n  } return stack;\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n  var length = lengthOfArrayLike(O);\n  var k = toAbsoluteIndex(start, length);\n  var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n  var result = Array(max(fin - k, 0));\n  for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n  result.length = n;\n  return result;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n  return String(argument);\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n  var error = Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n  // We can't detect it synchronously, so just check versions\n  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromisePrototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n  if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            call(then, result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  call(task, global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  call(task, global, function () {\n    var promise = state.facade;\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          call(then, value,\n            bind(internalResolve, wrapper, state),\n            bind(internalReject, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({ done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromisePrototype);\n    aCallable(executor);\n    call(Internal, this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n  PromisePrototype = PromiseConstructor.prototype;\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromisePrototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reactions = state.reactions;\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n      reaction.fail = isCallable(onRejected) && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      reactions[reactions.length] = reaction;\n      if (state.state != PENDING) notify(state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n    nativeThen = NativePromisePrototype.then;\n\n    if (!SUBCLASSING) {\n      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n        var that = this;\n        return new PromiseConstructor(function (resolve, reject) {\n          call(nativeThen, that, resolve, reject);\n        }).then(onFulfilled, onRejected);\n      // https://github.com/zloirock/core-js/issues/640\n      }, { unsafe: true });\n\n      // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n      redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n    }\n\n    // make `.constructor === Promise` work for native promise-based APIs\n    try {\n      delete NativePromisePrototype.constructor;\n    } catch (error) { /* empty */ }\n\n    // make `instanceof Promise` work for native promise-based APIs\n    if (setPrototypeOf) {\n      setPrototypeOf(NativePromisePrototype, PromisePrototype);\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.es/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    call(capability.reject, undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.es/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.es/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call($promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.es/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      iterate(iterable, function (promise) {\n        call($promiseResolve, C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n  if (isConstructor(argument)) return argument;\n  throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, empty, argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function (argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n    // we can't check .prototype since constructors produced by .bind haven't it\n  } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(isCallable(fn) ? fn : Function(fn), undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    isCallable(global.postMessage) &&\n    !global.importScripts &&\n    location && location.protocol !== 'file:' &&\n    !fails(post)\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    // workaround of WebKit ~ iOS Safari 10.1 bug\n    promise.constructor = Promise;\n    then = bind(promise.then, promise);\n    notify = function () {\n      then(flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    // strange IE + webpack dev server bug - use .bind(global)\n    macrotask = bind(macrotask, global);\n    notify = function () {\n      macrotask(flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aCallable(resolve);\n  this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length == 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n  any: function any(iterable) {\n    var C = this;\n    var AggregateError = getBuiltIn('AggregateError');\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var errors = [];\n      var counter = 0;\n      var remaining = 1;\n      var alreadyResolved = false;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyRejected = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyResolved = true;\n          resolve(value);\n        }, function (error) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyRejected = true;\n          errors[index] = error;\n          --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n        });\n      });\n      --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = isCallable(onFinally);\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromise.prototype['finally'] !== method) {\n    redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n  }\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: toString(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","/**\n * web-streams-polyfill v3.2.0\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    typeof define === 'function' && define.amd ? define(['exports'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n    /// <reference lib=\"es2015.symbol\" />\n    var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n        Symbol :\n        function (description) { return \"Symbol(\" + description + \")\"; };\n\n    /// <reference lib=\"dom\" />\n    function noop() {\n        return undefined;\n    }\n    function getGlobals() {\n        if (typeof self !== 'undefined') {\n            return self;\n        }\n        else if (typeof window !== 'undefined') {\n            return window;\n        }\n        else if (typeof global !== 'undefined') {\n            return global;\n        }\n        return undefined;\n    }\n    var globals = getGlobals();\n\n    function typeIsObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    var rethrowAssertionErrorRejection = noop;\n\n    var originalPromise = Promise;\n    var originalPromiseThen = Promise.prototype.then;\n    var originalPromiseResolve = Promise.resolve.bind(originalPromise);\n    var originalPromiseReject = Promise.reject.bind(originalPromise);\n    function newPromise(executor) {\n        return new originalPromise(executor);\n    }\n    function promiseResolvedWith(value) {\n        return originalPromiseResolve(value);\n    }\n    function promiseRejectedWith(reason) {\n        return originalPromiseReject(reason);\n    }\n    function PerformPromiseThen(promise, onFulfilled, onRejected) {\n        // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n        // approximation.\n        return originalPromiseThen.call(promise, onFulfilled, onRejected);\n    }\n    function uponPromise(promise, onFulfilled, onRejected) {\n        PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n    }\n    function uponFulfillment(promise, onFulfilled) {\n        uponPromise(promise, onFulfilled);\n    }\n    function uponRejection(promise, onRejected) {\n        uponPromise(promise, undefined, onRejected);\n    }\n    function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n        return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n    }\n    function setPromiseIsHandledToTrue(promise) {\n        PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n    }\n    var queueMicrotask = (function () {\n        var globalQueueMicrotask = globals && globals.queueMicrotask;\n        if (typeof globalQueueMicrotask === 'function') {\n            return globalQueueMicrotask;\n        }\n        var resolvedPromise = promiseResolvedWith(undefined);\n        return function (fn) { return PerformPromiseThen(resolvedPromise, fn); };\n    })();\n    function reflectCall(F, V, args) {\n        if (typeof F !== 'function') {\n            throw new TypeError('Argument is not a function');\n        }\n        return Function.prototype.apply.call(F, V, args);\n    }\n    function promiseCall(F, V, args) {\n        try {\n            return promiseResolvedWith(reflectCall(F, V, args));\n        }\n        catch (value) {\n            return promiseRejectedWith(value);\n        }\n    }\n\n    // Original from Chromium\n    // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n    var QUEUE_MAX_ARRAY_SIZE = 16384;\n    /**\n     * Simple queue structure.\n     *\n     * Avoids scalability issues with using a packed array directly by using\n     * multiple arrays in a linked list and keeping the array size bounded.\n     */\n    var SimpleQueue = /** @class */ (function () {\n        function SimpleQueue() {\n            this._cursor = 0;\n            this._size = 0;\n            // _front and _back are always defined.\n            this._front = {\n                _elements: [],\n                _next: undefined\n            };\n            this._back = this._front;\n            // The cursor is used to avoid calling Array.shift().\n            // It contains the index of the front element of the array inside the\n            // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n            this._cursor = 0;\n            // When there is only one node, size === elements.length - cursor.\n            this._size = 0;\n        }\n        Object.defineProperty(SimpleQueue.prototype, \"length\", {\n            get: function () {\n                return this._size;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        // For exception safety, this method is structured in order:\n        // 1. Read state\n        // 2. Calculate required state mutations\n        // 3. Perform state mutations\n        SimpleQueue.prototype.push = function (element) {\n            var oldBack = this._back;\n            var newBack = oldBack;\n            if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n                newBack = {\n                    _elements: [],\n                    _next: undefined\n                };\n            }\n            // push() is the mutation most likely to throw an exception, so it\n            // goes first.\n            oldBack._elements.push(element);\n            if (newBack !== oldBack) {\n                this._back = newBack;\n                oldBack._next = newBack;\n            }\n            ++this._size;\n        };\n        // Like push(), shift() follows the read -> calculate -> mutate pattern for\n        // exception safety.\n        SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\n            var oldFront = this._front;\n            var newFront = oldFront;\n            var oldCursor = this._cursor;\n            var newCursor = oldCursor + 1;\n            var elements = oldFront._elements;\n            var element = elements[oldCursor];\n            if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n                newFront = oldFront._next;\n                newCursor = 0;\n            }\n            // No mutations before this point.\n            --this._size;\n            this._cursor = newCursor;\n            if (oldFront !== newFront) {\n                this._front = newFront;\n            }\n            // Permit shifted element to be garbage collected.\n            elements[oldCursor] = undefined;\n            return element;\n        };\n        // The tricky thing about forEach() is that it can be called\n        // re-entrantly. The queue may be mutated inside the callback. It is easy to\n        // see that push() within the callback has no negative effects since the end\n        // of the queue is checked for on every iteration. If shift() is called\n        // repeatedly within the callback then the next iteration may return an\n        // element that has been removed. In this case the callback will be called\n        // with undefined values until we either \"catch up\" with elements that still\n        // exist or reach the back of the queue.\n        SimpleQueue.prototype.forEach = function (callback) {\n            var i = this._cursor;\n            var node = this._front;\n            var elements = node._elements;\n            while (i !== elements.length || node._next !== undefined) {\n                if (i === elements.length) {\n                    node = node._next;\n                    elements = node._elements;\n                    i = 0;\n                    if (elements.length === 0) {\n                        break;\n                    }\n                }\n                callback(elements[i]);\n                ++i;\n            }\n        };\n        // Return the element that would be returned if shift() was called now,\n        // without modifying the queue.\n        SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\n            var front = this._front;\n            var cursor = this._cursor;\n            return front._elements[cursor];\n        };\n        return SimpleQueue;\n    }());\n\n    function ReadableStreamReaderGenericInitialize(reader, stream) {\n        reader._ownerReadableStream = stream;\n        stream._reader = reader;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseInitialize(reader);\n        }\n        else if (stream._state === 'closed') {\n            defaultReaderClosedPromiseInitializeAsResolved(reader);\n        }\n        else {\n            defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n        }\n    }\n    // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n    // check.\n    function ReadableStreamReaderGenericCancel(reader, reason) {\n        var stream = reader._ownerReadableStream;\n        return ReadableStreamCancel(stream, reason);\n    }\n    function ReadableStreamReaderGenericRelease(reader) {\n        if (reader._ownerReadableStream._state === 'readable') {\n            defaultReaderClosedPromiseReject(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n        }\n        else {\n            defaultReaderClosedPromiseResetToRejected(reader, new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\"));\n        }\n        reader._ownerReadableStream._reader = undefined;\n        reader._ownerReadableStream = undefined;\n    }\n    // Helper functions for the readers.\n    function readerLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released reader');\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderClosedPromiseInitialize(reader) {\n        reader._closedPromise = newPromise(function (resolve, reject) {\n            reader._closedPromise_resolve = resolve;\n            reader._closedPromise_reject = reject;\n        });\n    }\n    function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseReject(reader, reason);\n    }\n    function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function defaultReaderClosedPromiseReject(reader, reason) {\n        if (reader._closedPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(reader._closedPromise);\n        reader._closedPromise_reject(reason);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n    function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n        defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n    }\n    function defaultReaderClosedPromiseResolve(reader) {\n        if (reader._closedPromise_resolve === undefined) {\n            return;\n        }\n        reader._closedPromise_resolve(undefined);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n\n    var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n    var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n    var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n    var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n    var NumberIsFinite = Number.isFinite || function (x) {\n        return typeof x === 'number' && isFinite(x);\n    };\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n    var MathTrunc = Math.trunc || function (v) {\n        return v < 0 ? Math.ceil(v) : Math.floor(v);\n    };\n\n    // https://heycam.github.io/webidl/#idl-dictionaries\n    function isDictionary(x) {\n        return typeof x === 'object' || typeof x === 'function';\n    }\n    function assertDictionary(obj, context) {\n        if (obj !== undefined && !isDictionary(obj)) {\n            throw new TypeError(context + \" is not an object.\");\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-callback-functions\n    function assertFunction(x, context) {\n        if (typeof x !== 'function') {\n            throw new TypeError(context + \" is not a function.\");\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-object\n    function isObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    function assertObject(x, context) {\n        if (!isObject(x)) {\n            throw new TypeError(context + \" is not an object.\");\n        }\n    }\n    function assertRequiredArgument(x, position, context) {\n        if (x === undefined) {\n            throw new TypeError(\"Parameter \" + position + \" is required in '\" + context + \"'.\");\n        }\n    }\n    function assertRequiredField(x, field, context) {\n        if (x === undefined) {\n            throw new TypeError(field + \" is required in '\" + context + \"'.\");\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-unrestricted-double\n    function convertUnrestrictedDouble(value) {\n        return Number(value);\n    }\n    function censorNegativeZero(x) {\n        return x === 0 ? 0 : x;\n    }\n    function integerPart(x) {\n        return censorNegativeZero(MathTrunc(x));\n    }\n    // https://heycam.github.io/webidl/#idl-unsigned-long-long\n    function convertUnsignedLongLongWithEnforceRange(value, context) {\n        var lowerBound = 0;\n        var upperBound = Number.MAX_SAFE_INTEGER;\n        var x = Number(value);\n        x = censorNegativeZero(x);\n        if (!NumberIsFinite(x)) {\n            throw new TypeError(context + \" is not a finite number\");\n        }\n        x = integerPart(x);\n        if (x < lowerBound || x > upperBound) {\n            throw new TypeError(context + \" is outside the accepted range of \" + lowerBound + \" to \" + upperBound + \", inclusive\");\n        }\n        if (!NumberIsFinite(x) || x === 0) {\n            return 0;\n        }\n        // TODO Use BigInt if supported?\n        // let xBigInt = BigInt(integerPart(x));\n        // xBigInt = BigInt.asUintN(64, xBigInt);\n        // return Number(xBigInt);\n        return x;\n    }\n\n    function assertReadableStream(x, context) {\n        if (!IsReadableStream(x)) {\n            throw new TypeError(context + \" is not a ReadableStream.\");\n        }\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamDefaultReader(stream) {\n        return new ReadableStreamDefaultReader(stream);\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadRequest(stream, readRequest) {\n        stream._reader._readRequests.push(readRequest);\n    }\n    function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readRequest = reader._readRequests.shift();\n        if (done) {\n            readRequest._closeSteps();\n        }\n        else {\n            readRequest._chunkSteps(chunk);\n        }\n    }\n    function ReadableStreamGetNumReadRequests(stream) {\n        return stream._reader._readRequests.length;\n    }\n    function ReadableStreamHasDefaultReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamDefaultReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A default reader vended by a {@link ReadableStream}.\n     *\n     * @public\n     */\n    var ReadableStreamDefaultReader = /** @class */ (function () {\n        function ReadableStreamDefaultReader(stream) {\n            assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n            assertReadableStream(stream, 'First parameter');\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\n            /**\n             * Returns a promise that will be fulfilled when the stream becomes closed,\n             * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n             */\n            get: function () {\n                if (!IsReadableStreamDefaultReader(this)) {\n                    return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n         */\n        ReadableStreamDefaultReader.prototype.cancel = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        /**\n         * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n         *\n         * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n         */\n        ReadableStreamDefaultReader.prototype.read = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            var resolvePromise;\n            var rejectPromise;\n            var promise = newPromise(function (resolve, reject) {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            var readRequest = {\n                _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n                _closeSteps: function () { return resolvePromise({ value: undefined, done: true }); },\n                _errorSteps: function (e) { return rejectPromise(e); }\n            };\n            ReadableStreamDefaultReaderRead(this, readRequest);\n            return promise;\n        };\n        /**\n         * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n         * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n         * from now on; otherwise, the reader will appear closed.\n         *\n         * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n         * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n         * do so will throw a `TypeError` and leave the reader locked to the stream.\n         */\n        ReadableStreamDefaultReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamDefaultReader(this)) {\n                throw defaultReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            if (this._readRequests.length > 0) {\n                throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n            }\n            ReadableStreamReaderGenericRelease(this);\n        };\n        return ReadableStreamDefaultReader;\n    }());\n    Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n        cancel: { enumerable: true },\n        read: { enumerable: true },\n        releaseLock: { enumerable: true },\n        closed: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamDefaultReader',\n            configurable: true\n        });\n    }\n    // Abstract operations for the readers.\n    function IsReadableStreamDefaultReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n            return false;\n        }\n        return x instanceof ReadableStreamDefaultReader;\n    }\n    function ReadableStreamDefaultReaderRead(reader, readRequest) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            readRequest._closeSteps();\n        }\n        else if (stream._state === 'errored') {\n            readRequest._errorSteps(stream._storedError);\n        }\n        else {\n            stream._readableStreamController[PullSteps](readRequest);\n        }\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var _a;\n    var AsyncIteratorPrototype;\n    if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n        // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\n        // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\n        AsyncIteratorPrototype = (_a = {},\n            // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\n            // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\n            _a[SymbolPolyfill.asyncIterator] = function () {\n                return this;\n            },\n            _a);\n        Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    var ReadableStreamAsyncIteratorImpl = /** @class */ (function () {\n        function ReadableStreamAsyncIteratorImpl(reader, preventCancel) {\n            this._ongoingPromise = undefined;\n            this._isFinished = false;\n            this._reader = reader;\n            this._preventCancel = preventCancel;\n        }\n        ReadableStreamAsyncIteratorImpl.prototype.next = function () {\n            var _this = this;\n            var nextSteps = function () { return _this._nextSteps(); };\n            this._ongoingPromise = this._ongoingPromise ?\n                transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n                nextSteps();\n            return this._ongoingPromise;\n        };\n        ReadableStreamAsyncIteratorImpl.prototype.return = function (value) {\n            var _this = this;\n            var returnSteps = function () { return _this._returnSteps(value); };\n            return this._ongoingPromise ?\n                transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n                returnSteps();\n        };\n        ReadableStreamAsyncIteratorImpl.prototype._nextSteps = function () {\n            var _this = this;\n            if (this._isFinished) {\n                return Promise.resolve({ value: undefined, done: true });\n            }\n            var reader = this._reader;\n            if (reader._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('iterate'));\n            }\n            var resolvePromise;\n            var rejectPromise;\n            var promise = newPromise(function (resolve, reject) {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            var readRequest = {\n                _chunkSteps: function (chunk) {\n                    _this._ongoingPromise = undefined;\n                    // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n                    // FIXME Is this a bug in the specification, or in the test?\n                    queueMicrotask(function () { return resolvePromise({ value: chunk, done: false }); });\n                },\n                _closeSteps: function () {\n                    _this._ongoingPromise = undefined;\n                    _this._isFinished = true;\n                    ReadableStreamReaderGenericRelease(reader);\n                    resolvePromise({ value: undefined, done: true });\n                },\n                _errorSteps: function (reason) {\n                    _this._ongoingPromise = undefined;\n                    _this._isFinished = true;\n                    ReadableStreamReaderGenericRelease(reader);\n                    rejectPromise(reason);\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n            return promise;\n        };\n        ReadableStreamAsyncIteratorImpl.prototype._returnSteps = function (value) {\n            if (this._isFinished) {\n                return Promise.resolve({ value: value, done: true });\n            }\n            this._isFinished = true;\n            var reader = this._reader;\n            if (reader._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('finish iterating'));\n            }\n            if (!this._preventCancel) {\n                var result = ReadableStreamReaderGenericCancel(reader, value);\n                ReadableStreamReaderGenericRelease(reader);\n                return transformPromiseWith(result, function () { return ({ value: value, done: true }); });\n            }\n            ReadableStreamReaderGenericRelease(reader);\n            return promiseResolvedWith({ value: value, done: true });\n        };\n        return ReadableStreamAsyncIteratorImpl;\n    }());\n    var ReadableStreamAsyncIteratorPrototype = {\n        next: function () {\n            if (!IsReadableStreamAsyncIterator(this)) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            return this._asyncIteratorImpl.next();\n        },\n        return: function (value) {\n            if (!IsReadableStreamAsyncIterator(this)) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n            }\n            return this._asyncIteratorImpl.return(value);\n        }\n    };\n    if (AsyncIteratorPrototype !== undefined) {\n        Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n    }\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n        var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n        iterator._asyncIteratorImpl = impl;\n        return iterator;\n    }\n    function IsReadableStreamAsyncIterator(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n            return false;\n        }\n        try {\n            // noinspection SuspiciousTypeOfGuard\n            return x._asyncIteratorImpl instanceof\n                ReadableStreamAsyncIteratorImpl;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    // Helper functions for the ReadableStream.\n    function streamAsyncIteratorBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n    var NumberIsNaN = Number.isNaN || function (x) {\n        // eslint-disable-next-line no-self-compare\n        return x !== x;\n    };\n\n    function CreateArrayFromList(elements) {\n        // We use arrays to represent lists, so this is basically a no-op.\n        // Do a slice though just in case we happen to depend on the unique-ness.\n        return elements.slice();\n    }\n    function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n        new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n    }\n    // Not implemented correctly\n    function TransferArrayBuffer(O) {\n        return O;\n    }\n    // Not implemented correctly\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    function IsDetachedBuffer(O) {\n        return false;\n    }\n    function ArrayBufferSlice(buffer, begin, end) {\n        // ArrayBuffer.prototype.slice is not available on IE10\n        // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n        if (buffer.slice) {\n            return buffer.slice(begin, end);\n        }\n        var length = end - begin;\n        var slice = new ArrayBuffer(length);\n        CopyDataBlockBytes(slice, 0, buffer, begin, length);\n        return slice;\n    }\n\n    function IsNonNegativeNumber(v) {\n        if (typeof v !== 'number') {\n            return false;\n        }\n        if (NumberIsNaN(v)) {\n            return false;\n        }\n        if (v < 0) {\n            return false;\n        }\n        return true;\n    }\n    function CloneAsUint8Array(O) {\n        var buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n        return new Uint8Array(buffer);\n    }\n\n    function DequeueValue(container) {\n        var pair = container._queue.shift();\n        container._queueTotalSize -= pair.size;\n        if (container._queueTotalSize < 0) {\n            container._queueTotalSize = 0;\n        }\n        return pair.value;\n    }\n    function EnqueueValueWithSize(container, value, size) {\n        if (!IsNonNegativeNumber(size) || size === Infinity) {\n            throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n        }\n        container._queue.push({ value: value, size: size });\n        container._queueTotalSize += size;\n    }\n    function PeekQueueValue(container) {\n        var pair = container._queue.peek();\n        return pair.value;\n    }\n    function ResetQueue(container) {\n        container._queue = new SimpleQueue();\n        container._queueTotalSize = 0;\n    }\n\n    /**\n     * A pull-into request in a {@link ReadableByteStreamController}.\n     *\n     * @public\n     */\n    var ReadableStreamBYOBRequest = /** @class */ (function () {\n        function ReadableStreamBYOBRequest() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\n            /**\n             * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n             */\n            get: function () {\n                if (!IsReadableStreamBYOBRequest(this)) {\n                    throw byobRequestBrandCheckException('view');\n                }\n                return this._view;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            assertRequiredArgument(bytesWritten, 1, 'respond');\n            bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(this._view.buffer)) ;\n            ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n        };\n        ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('respondWithNewView');\n            }\n            assertRequiredArgument(view, 1, 'respondWithNewView');\n            if (!ArrayBuffer.isView(view)) {\n                throw new TypeError('You can only respond with array buffer views');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(view.buffer)) ;\n            ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n        };\n        return ReadableStreamBYOBRequest;\n    }());\n    Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n        respond: { enumerable: true },\n        respondWithNewView: { enumerable: true },\n        view: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamBYOBRequest',\n            configurable: true\n        });\n    }\n    /**\n     * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n     *\n     * @public\n     */\n    var ReadableByteStreamController = /** @class */ (function () {\n        function ReadableByteStreamController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\n            /**\n             * Returns the current BYOB pull request, or `null` if there isn't one.\n             */\n            get: function () {\n                if (!IsReadableByteStreamController(this)) {\n                    throw byteStreamControllerBrandCheckException('byobRequest');\n                }\n                return ReadableByteStreamControllerGetBYOBRequest(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n             * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n             */\n            get: function () {\n                if (!IsReadableByteStreamController(this)) {\n                    throw byteStreamControllerBrandCheckException('desiredSize');\n                }\n                return ReadableByteStreamControllerGetDesiredSize(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n         * the stream, but once those are read, the stream will become closed.\n         */\n        ReadableByteStreamController.prototype.close = function () {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('close');\n            }\n            if (this._closeRequested) {\n                throw new TypeError('The stream has already been closed; do not close it again!');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\n            }\n            ReadableByteStreamControllerClose(this);\n        };\n        ReadableByteStreamController.prototype.enqueue = function (chunk) {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('enqueue');\n            }\n            assertRequiredArgument(chunk, 1, 'enqueue');\n            if (!ArrayBuffer.isView(chunk)) {\n                throw new TypeError('chunk must be an array buffer view');\n            }\n            if (chunk.byteLength === 0) {\n                throw new TypeError('chunk must have non-zero byteLength');\n            }\n            if (chunk.buffer.byteLength === 0) {\n                throw new TypeError(\"chunk's buffer must have non-zero byteLength\");\n            }\n            if (this._closeRequested) {\n                throw new TypeError('stream is closed or draining');\n            }\n            var state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\n            }\n            ReadableByteStreamControllerEnqueue(this, chunk);\n        };\n        /**\n         * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n         */\n        ReadableByteStreamController.prototype.error = function (e) {\n            if (e === void 0) { e = undefined; }\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('error');\n            }\n            ReadableByteStreamControllerError(this, e);\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\n            ReadableByteStreamControllerClearPendingPullIntos(this);\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableByteStreamControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableByteStreamController.prototype[PullSteps] = function (readRequest) {\n            var stream = this._controlledReadableByteStream;\n            if (this._queueTotalSize > 0) {\n                var entry = this._queue.shift();\n                this._queueTotalSize -= entry.byteLength;\n                ReadableByteStreamControllerHandleQueueDrain(this);\n                var view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n                readRequest._chunkSteps(view);\n                return;\n            }\n            var autoAllocateChunkSize = this._autoAllocateChunkSize;\n            if (autoAllocateChunkSize !== undefined) {\n                var buffer = void 0;\n                try {\n                    buffer = new ArrayBuffer(autoAllocateChunkSize);\n                }\n                catch (bufferE) {\n                    readRequest._errorSteps(bufferE);\n                    return;\n                }\n                var pullIntoDescriptor = {\n                    buffer: buffer,\n                    bufferByteLength: autoAllocateChunkSize,\n                    byteOffset: 0,\n                    byteLength: autoAllocateChunkSize,\n                    bytesFilled: 0,\n                    elementSize: 1,\n                    viewConstructor: Uint8Array,\n                    readerType: 'default'\n                };\n                this._pendingPullIntos.push(pullIntoDescriptor);\n            }\n            ReadableStreamAddReadRequest(stream, readRequest);\n            ReadableByteStreamControllerCallPullIfNeeded(this);\n        };\n        return ReadableByteStreamController;\n    }());\n    Object.defineProperties(ReadableByteStreamController.prototype, {\n        close: { enumerable: true },\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        byobRequest: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableByteStreamController',\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableByteStreamController.\n    function IsReadableByteStreamController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n            return false;\n        }\n        return x instanceof ReadableByteStreamController;\n    }\n    function IsReadableStreamBYOBRequest(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n            return false;\n        }\n        return x instanceof ReadableStreamBYOBRequest;\n    }\n    function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n        if (!shouldPull) {\n            return;\n        }\n        if (controller._pulling) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        // TODO: Test controller argument\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain) {\n                controller._pullAgain = false;\n                ReadableByteStreamControllerCallPullIfNeeded(controller);\n            }\n        }, function (e) {\n            ReadableByteStreamControllerError(controller, e);\n        });\n    }\n    function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        controller._pendingPullIntos = new SimpleQueue();\n    }\n    function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n        var done = false;\n        if (stream._state === 'closed') {\n            done = true;\n        }\n        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'default') {\n            ReadableStreamFulfillReadRequest(stream, filledView, done);\n        }\n        else {\n            ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n        }\n    }\n    function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n        var bytesFilled = pullIntoDescriptor.bytesFilled;\n        var elementSize = pullIntoDescriptor.elementSize;\n        return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n    }\n    function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n        controller._queueTotalSize += byteLength;\n    }\n    function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n        var elementSize = pullIntoDescriptor.elementSize;\n        var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n        var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n        var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n        var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n        var totalBytesToCopyRemaining = maxBytesToCopy;\n        var ready = false;\n        if (maxAlignedBytes > currentAlignedBytes) {\n            totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n            ready = true;\n        }\n        var queue = controller._queue;\n        while (totalBytesToCopyRemaining > 0) {\n            var headOfQueue = queue.peek();\n            var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n            var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n            if (headOfQueue.byteLength === bytesToCopy) {\n                queue.shift();\n            }\n            else {\n                headOfQueue.byteOffset += bytesToCopy;\n                headOfQueue.byteLength -= bytesToCopy;\n            }\n            controller._queueTotalSize -= bytesToCopy;\n            ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n            totalBytesToCopyRemaining -= bytesToCopy;\n        }\n        return ready;\n    }\n    function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n        pullIntoDescriptor.bytesFilled += size;\n    }\n    function ReadableByteStreamControllerHandleQueueDrain(controller) {\n        if (controller._queueTotalSize === 0 && controller._closeRequested) {\n            ReadableByteStreamControllerClearAlgorithms(controller);\n            ReadableStreamClose(controller._controlledReadableByteStream);\n        }\n        else {\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }\n    }\n    function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n        if (controller._byobRequest === null) {\n            return;\n        }\n        controller._byobRequest._associatedReadableByteStreamController = undefined;\n        controller._byobRequest._view = null;\n        controller._byobRequest = null;\n    }\n    function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n        while (controller._pendingPullIntos.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            var pullIntoDescriptor = controller._pendingPullIntos.peek();\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n                ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n        var stream = controller._controlledReadableByteStream;\n        var elementSize = 1;\n        if (view.constructor !== DataView) {\n            elementSize = view.constructor.BYTES_PER_ELEMENT;\n        }\n        var ctor = view.constructor;\n        // try {\n        var buffer = TransferArrayBuffer(view.buffer);\n        // } catch (e) {\n        //   readIntoRequest._errorSteps(e);\n        //   return;\n        // }\n        var pullIntoDescriptor = {\n            buffer: buffer,\n            bufferByteLength: buffer.byteLength,\n            byteOffset: view.byteOffset,\n            byteLength: view.byteLength,\n            bytesFilled: 0,\n            elementSize: elementSize,\n            viewConstructor: ctor,\n            readerType: 'byob'\n        };\n        if (controller._pendingPullIntos.length > 0) {\n            controller._pendingPullIntos.push(pullIntoDescriptor);\n            // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n            // - No change happens on desiredSize\n            // - The source has already been notified of that there's at least 1 pending read(view)\n            ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n            return;\n        }\n        if (stream._state === 'closed') {\n            var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n            readIntoRequest._closeSteps(emptyView);\n            return;\n        }\n        if (controller._queueTotalSize > 0) {\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n                var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n                ReadableByteStreamControllerHandleQueueDrain(controller);\n                readIntoRequest._chunkSteps(filledView);\n                return;\n            }\n            if (controller._closeRequested) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                readIntoRequest._errorSteps(e);\n                return;\n            }\n        }\n        controller._pendingPullIntos.push(pullIntoDescriptor);\n        ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n        var stream = controller._controlledReadableByteStream;\n        if (ReadableStreamHasBYOBReader(stream)) {\n            while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n                var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n        ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n        if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n            return;\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n        if (remainderSize > 0) {\n            var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            var remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n        }\n        pullIntoDescriptor.bytesFilled -= remainderSize;\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n        ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    }\n    function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            ReadableByteStreamControllerRespondInClosedState(controller);\n        }\n        else {\n            ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n        var descriptor = controller._pendingPullIntos.shift();\n        return descriptor;\n    }\n    function ReadableByteStreamControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return false;\n        }\n        if (controller._closeRequested) {\n            return false;\n        }\n        if (!controller._started) {\n            return false;\n        }\n        if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableByteStreamControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n    function ReadableByteStreamControllerClose(controller) {\n        var stream = controller._controlledReadableByteStream;\n        if (controller._closeRequested || stream._state !== 'readable') {\n            return;\n        }\n        if (controller._queueTotalSize > 0) {\n            controller._closeRequested = true;\n            return;\n        }\n        if (controller._pendingPullIntos.length > 0) {\n            var firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (firstPendingPullInto.bytesFilled > 0) {\n                var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                throw e;\n            }\n        }\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamClose(stream);\n    }\n    function ReadableByteStreamControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledReadableByteStream;\n        if (controller._closeRequested || stream._state !== 'readable') {\n            return;\n        }\n        var buffer = chunk.buffer;\n        var byteOffset = chunk.byteOffset;\n        var byteLength = chunk.byteLength;\n        var transferredBuffer = TransferArrayBuffer(buffer);\n        if (controller._pendingPullIntos.length > 0) {\n            var firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n            firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n        }\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        if (ReadableStreamHasDefaultReader(stream)) {\n            if (ReadableStreamGetNumReadRequests(stream) === 0) {\n                ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            }\n            else {\n                if (controller._pendingPullIntos.length > 0) {\n                    ReadableByteStreamControllerShiftPendingPullInto(controller);\n                }\n                var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n                ReadableStreamFulfillReadRequest(stream, transferredView, false);\n            }\n        }\n        else if (ReadableStreamHasBYOBReader(stream)) {\n            // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n        }\n        else {\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerError(controller, e) {\n        var stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ReadableByteStreamControllerClearPendingPullIntos(controller);\n        ResetQueue(controller);\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableByteStreamControllerGetBYOBRequest(controller) {\n        if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n            var firstDescriptor = controller._pendingPullIntos.peek();\n            var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n            var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n            SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n            controller._byobRequest = byobRequest;\n        }\n        return controller._byobRequest;\n    }\n    function ReadableByteStreamControllerGetDesiredSize(controller) {\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            if (bytesWritten !== 0) {\n                throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n            }\n        }\n        else {\n            if (bytesWritten === 0) {\n                throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n            }\n            if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n                throw new RangeError('bytesWritten out of range');\n            }\n        }\n        firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n        ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n    }\n    function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n        var firstDescriptor = controller._pendingPullIntos.peek();\n        var state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            if (view.byteLength !== 0) {\n                throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n            }\n        }\n        else {\n            if (view.byteLength === 0) {\n                throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n            }\n        }\n        if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n            throw new RangeError('The region specified by view does not match byobRequest');\n        }\n        if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n            throw new RangeError('The buffer of view has different capacity than byobRequest');\n        }\n        if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n            throw new RangeError('The region specified by view is larger than byobRequest');\n        }\n        var viewByteLength = view.byteLength;\n        firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n        ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n    }\n    function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n        controller._controlledReadableByteStream = stream;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._byobRequest = null;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._closeRequested = false;\n        controller._started = false;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._autoAllocateChunkSize = autoAllocateChunkSize;\n        controller._pendingPullIntos = new SimpleQueue();\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }, function (r) {\n            ReadableByteStreamControllerError(controller, r);\n        });\n    }\n    function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n        var controller = Object.create(ReadableByteStreamController.prototype);\n        var startAlgorithm = function () { return undefined; };\n        var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n        var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n        if (underlyingByteSource.start !== undefined) {\n            startAlgorithm = function () { return underlyingByteSource.start(controller); };\n        }\n        if (underlyingByteSource.pull !== undefined) {\n            pullAlgorithm = function () { return underlyingByteSource.pull(controller); };\n        }\n        if (underlyingByteSource.cancel !== undefined) {\n            cancelAlgorithm = function (reason) { return underlyingByteSource.cancel(reason); };\n        }\n        var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n        if (autoAllocateChunkSize === 0) {\n            throw new TypeError('autoAllocateChunkSize must be greater than 0');\n        }\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n    }\n    function SetUpReadableStreamBYOBRequest(request, controller, view) {\n        request._associatedReadableByteStreamController = controller;\n        request._view = view;\n    }\n    // Helper functions for the ReadableStreamBYOBRequest.\n    function byobRequestBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\n    }\n    // Helper functions for the ReadableByteStreamController.\n    function byteStreamControllerBrandCheckException(name) {\n        return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamBYOBReader(stream) {\n        return new ReadableStreamBYOBReader(stream);\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n        stream._reader._readIntoRequests.push(readIntoRequest);\n    }\n    function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n        var reader = stream._reader;\n        var readIntoRequest = reader._readIntoRequests.shift();\n        if (done) {\n            readIntoRequest._closeSteps(chunk);\n        }\n        else {\n            readIntoRequest._chunkSteps(chunk);\n        }\n    }\n    function ReadableStreamGetNumReadIntoRequests(stream) {\n        return stream._reader._readIntoRequests.length;\n    }\n    function ReadableStreamHasBYOBReader(stream) {\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamBYOBReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A BYOB reader vended by a {@link ReadableStream}.\n     *\n     * @public\n     */\n    var ReadableStreamBYOBReader = /** @class */ (function () {\n        function ReadableStreamBYOBReader(stream) {\n            assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n            assertReadableStream(stream, 'First parameter');\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            if (!IsReadableByteStreamController(stream._readableStreamController)) {\n                throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n                    'source');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readIntoRequests = new SimpleQueue();\n        }\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\n            /**\n             * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n             * the reader's lock is released before the stream finishes closing.\n             */\n            get: function () {\n                if (!IsReadableStreamBYOBReader(this)) {\n                    return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n         */\n        ReadableStreamBYOBReader.prototype.cancel = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        };\n        /**\n         * Attempts to reads bytes into view, and returns a promise resolved with the result.\n         *\n         * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n         */\n        ReadableStreamBYOBReader.prototype.read = function (view) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('read'));\n            }\n            if (!ArrayBuffer.isView(view)) {\n                return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n            }\n            if (view.byteLength === 0) {\n                return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n            }\n            if (view.buffer.byteLength === 0) {\n                return promiseRejectedWith(new TypeError(\"view's buffer must have non-zero byteLength\"));\n            }\n            if (IsDetachedBuffer(view.buffer)) ;\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            var resolvePromise;\n            var rejectPromise;\n            var promise = newPromise(function (resolve, reject) {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            var readIntoRequest = {\n                _chunkSteps: function (chunk) { return resolvePromise({ value: chunk, done: false }); },\n                _closeSteps: function (chunk) { return resolvePromise({ value: chunk, done: true }); },\n                _errorSteps: function (e) { return rejectPromise(e); }\n            };\n            ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n            return promise;\n        };\n        /**\n         * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n         * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n         * from now on; otherwise, the reader will appear closed.\n         *\n         * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n         * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n         * do so will throw a `TypeError` and leave the reader locked to the stream.\n         */\n        ReadableStreamBYOBReader.prototype.releaseLock = function () {\n            if (!IsReadableStreamBYOBReader(this)) {\n                throw byobReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            if (this._readIntoRequests.length > 0) {\n                throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n            }\n            ReadableStreamReaderGenericRelease(this);\n        };\n        return ReadableStreamBYOBReader;\n    }());\n    Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n        cancel: { enumerable: true },\n        read: { enumerable: true },\n        releaseLock: { enumerable: true },\n        closed: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamBYOBReader',\n            configurable: true\n        });\n    }\n    // Abstract operations for the readers.\n    function IsReadableStreamBYOBReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n            return false;\n        }\n        return x instanceof ReadableStreamBYOBReader;\n    }\n    function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n        var stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'errored') {\n            readIntoRequest._errorSteps(stream._storedError);\n        }\n        else {\n            ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n        }\n    }\n    // Helper functions for the ReadableStreamBYOBReader.\n    function byobReaderBrandCheckException(name) {\n        return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\n    }\n\n    function ExtractHighWaterMark(strategy, defaultHWM) {\n        var highWaterMark = strategy.highWaterMark;\n        if (highWaterMark === undefined) {\n            return defaultHWM;\n        }\n        if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n            throw new RangeError('Invalid highWaterMark');\n        }\n        return highWaterMark;\n    }\n    function ExtractSizeAlgorithm(strategy) {\n        var size = strategy.size;\n        if (!size) {\n            return function () { return 1; };\n        }\n        return size;\n    }\n\n    function convertQueuingStrategy(init, context) {\n        assertDictionary(init, context);\n        var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n        var size = init === null || init === void 0 ? void 0 : init.size;\n        return {\n            highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n            size: size === undefined ? undefined : convertQueuingStrategySize(size, context + \" has member 'size' that\")\n        };\n    }\n    function convertQueuingStrategySize(fn, context) {\n        assertFunction(fn, context);\n        return function (chunk) { return convertUnrestrictedDouble(fn(chunk)); };\n    }\n\n    function convertUnderlyingSink(original, context) {\n        assertDictionary(original, context);\n        var abort = original === null || original === void 0 ? void 0 : original.abort;\n        var close = original === null || original === void 0 ? void 0 : original.close;\n        var start = original === null || original === void 0 ? void 0 : original.start;\n        var type = original === null || original === void 0 ? void 0 : original.type;\n        var write = original === null || original === void 0 ? void 0 : original.write;\n        return {\n            abort: abort === undefined ?\n                undefined :\n                convertUnderlyingSinkAbortCallback(abort, original, context + \" has member 'abort' that\"),\n            close: close === undefined ?\n                undefined :\n                convertUnderlyingSinkCloseCallback(close, original, context + \" has member 'close' that\"),\n            start: start === undefined ?\n                undefined :\n                convertUnderlyingSinkStartCallback(start, original, context + \" has member 'start' that\"),\n            write: write === undefined ?\n                undefined :\n                convertUnderlyingSinkWriteCallback(write, original, context + \" has member 'write' that\"),\n            type: type\n        };\n    }\n    function convertUnderlyingSinkAbortCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (reason) { return promiseCall(fn, original, [reason]); };\n    }\n    function convertUnderlyingSinkCloseCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function () { return promiseCall(fn, original, []); };\n    }\n    function convertUnderlyingSinkStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return reflectCall(fn, original, [controller]); };\n    }\n    function convertUnderlyingSinkWriteCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n    }\n\n    function assertWritableStream(x, context) {\n        if (!IsWritableStream(x)) {\n            throw new TypeError(context + \" is not a WritableStream.\");\n        }\n    }\n\n    function isAbortSignal(value) {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n        try {\n            return typeof value.aborted === 'boolean';\n        }\n        catch (_a) {\n            // AbortSignal.prototype.aborted throws if its brand check fails\n            return false;\n        }\n    }\n    var supportsAbortController = typeof AbortController === 'function';\n    /**\n     * Construct a new AbortController, if supported by the platform.\n     *\n     * @internal\n     */\n    function createAbortController() {\n        if (supportsAbortController) {\n            return new AbortController();\n        }\n        return undefined;\n    }\n\n    /**\n     * A writable stream represents a destination for data, into which you can write.\n     *\n     * @public\n     */\n    var WritableStream = /** @class */ (function () {\n        function WritableStream(rawUnderlyingSink, rawStrategy) {\n            if (rawUnderlyingSink === void 0) { rawUnderlyingSink = {}; }\n            if (rawStrategy === void 0) { rawStrategy = {}; }\n            if (rawUnderlyingSink === undefined) {\n                rawUnderlyingSink = null;\n            }\n            else {\n                assertObject(rawUnderlyingSink, 'First parameter');\n            }\n            var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n            var underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n            InitializeWritableStream(this);\n            var type = underlyingSink.type;\n            if (type !== undefined) {\n                throw new RangeError('Invalid type is specified');\n            }\n            var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n            var highWaterMark = ExtractHighWaterMark(strategy, 1);\n            SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n        }\n        Object.defineProperty(WritableStream.prototype, \"locked\", {\n            /**\n             * Returns whether or not the writable stream is locked to a writer.\n             */\n            get: function () {\n                if (!IsWritableStream(this)) {\n                    throw streamBrandCheckException$2('locked');\n                }\n                return IsWritableStreamLocked(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n         * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n         * mechanism of the underlying sink.\n         *\n         * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n         * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n         * the stream) if the stream is currently locked.\n         */\n        WritableStream.prototype.abort = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsWritableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$2('abort'));\n            }\n            if (IsWritableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n            }\n            return WritableStreamAbort(this, reason);\n        };\n        /**\n         * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n         * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n         *\n         * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n         * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n         * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n         */\n        WritableStream.prototype.close = function () {\n            if (!IsWritableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$2('close'));\n            }\n            if (IsWritableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(this)) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamClose(this);\n        };\n        /**\n         * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n         * is locked, no other writer can be acquired until this one is released.\n         *\n         * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n         * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n         * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n         */\n        WritableStream.prototype.getWriter = function () {\n            if (!IsWritableStream(this)) {\n                throw streamBrandCheckException$2('getWriter');\n            }\n            return AcquireWritableStreamDefaultWriter(this);\n        };\n        return WritableStream;\n    }());\n    Object.defineProperties(WritableStream.prototype, {\n        abort: { enumerable: true },\n        close: { enumerable: true },\n        getWriter: { enumerable: true },\n        locked: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n            value: 'WritableStream',\n            configurable: true\n        });\n    }\n    // Abstract operations for the WritableStream.\n    function AcquireWritableStreamDefaultWriter(stream) {\n        return new WritableStreamDefaultWriter(stream);\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(WritableStream.prototype);\n        InitializeWritableStream(stream);\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeWritableStream(stream) {\n        stream._state = 'writable';\n        // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n        // 'erroring' or 'errored'. May be set to an undefined value.\n        stream._storedError = undefined;\n        stream._writer = undefined;\n        // Initialize to undefined first because the constructor of the controller checks this\n        // variable to validate the caller.\n        stream._writableStreamController = undefined;\n        // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n        // producer without waiting for the queued writes to finish.\n        stream._writeRequests = new SimpleQueue();\n        // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n        // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n        stream._inFlightWriteRequest = undefined;\n        // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n        // has been detached.\n        stream._closeRequest = undefined;\n        // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n        // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n        stream._inFlightCloseRequest = undefined;\n        // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n        stream._pendingAbortRequest = undefined;\n        // The backpressure signal set by the controller.\n        stream._backpressure = false;\n    }\n    function IsWritableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n            return false;\n        }\n        return x instanceof WritableStream;\n    }\n    function IsWritableStreamLocked(stream) {\n        if (stream._writer === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamAbort(stream, reason) {\n        var _a;\n        if (stream._state === 'closed' || stream._state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        stream._writableStreamController._abortReason = reason;\n        (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n        // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n        // but it doesn't know that signaling abort runs author code that might have changed the state.\n        // Widen the type again by casting to WritableStreamState.\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._pendingAbortRequest !== undefined) {\n            return stream._pendingAbortRequest._promise;\n        }\n        var wasAlreadyErroring = false;\n        if (state === 'erroring') {\n            wasAlreadyErroring = true;\n            // reason will not be used, so don't keep a reference to it.\n            reason = undefined;\n        }\n        var promise = newPromise(function (resolve, reject) {\n            stream._pendingAbortRequest = {\n                _promise: undefined,\n                _resolve: resolve,\n                _reject: reject,\n                _reason: reason,\n                _wasAlreadyErroring: wasAlreadyErroring\n            };\n        });\n        stream._pendingAbortRequest._promise = promise;\n        if (!wasAlreadyErroring) {\n            WritableStreamStartErroring(stream, reason);\n        }\n        return promise;\n    }\n    function WritableStreamClose(stream) {\n        var state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\n        }\n        var promise = newPromise(function (resolve, reject) {\n            var closeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._closeRequest = closeRequest;\n        });\n        var writer = stream._writer;\n        if (writer !== undefined && stream._backpressure && state === 'writable') {\n            defaultWriterReadyPromiseResolve(writer);\n        }\n        WritableStreamDefaultControllerClose(stream._writableStreamController);\n        return promise;\n    }\n    // WritableStream API exposed for controllers.\n    function WritableStreamAddWriteRequest(stream) {\n        var promise = newPromise(function (resolve, reject) {\n            var writeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._writeRequests.push(writeRequest);\n        });\n        return promise;\n    }\n    function WritableStreamDealWithRejection(stream, error) {\n        var state = stream._state;\n        if (state === 'writable') {\n            WritableStreamStartErroring(stream, error);\n            return;\n        }\n        WritableStreamFinishErroring(stream);\n    }\n    function WritableStreamStartErroring(stream, reason) {\n        var controller = stream._writableStreamController;\n        stream._state = 'erroring';\n        stream._storedError = reason;\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n        }\n        if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n            WritableStreamFinishErroring(stream);\n        }\n    }\n    function WritableStreamFinishErroring(stream) {\n        stream._state = 'errored';\n        stream._writableStreamController[ErrorSteps]();\n        var storedError = stream._storedError;\n        stream._writeRequests.forEach(function (writeRequest) {\n            writeRequest._reject(storedError);\n        });\n        stream._writeRequests = new SimpleQueue();\n        if (stream._pendingAbortRequest === undefined) {\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var abortRequest = stream._pendingAbortRequest;\n        stream._pendingAbortRequest = undefined;\n        if (abortRequest._wasAlreadyErroring) {\n            abortRequest._reject(storedError);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n        uponPromise(promise, function () {\n            abortRequest._resolve();\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n        }, function (reason) {\n            abortRequest._reject(reason);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n        });\n    }\n    function WritableStreamFinishInFlightWrite(stream) {\n        stream._inFlightWriteRequest._resolve(undefined);\n        stream._inFlightWriteRequest = undefined;\n    }\n    function WritableStreamFinishInFlightWriteWithError(stream, error) {\n        stream._inFlightWriteRequest._reject(error);\n        stream._inFlightWriteRequest = undefined;\n        WritableStreamDealWithRejection(stream, error);\n    }\n    function WritableStreamFinishInFlightClose(stream) {\n        stream._inFlightCloseRequest._resolve(undefined);\n        stream._inFlightCloseRequest = undefined;\n        var state = stream._state;\n        if (state === 'erroring') {\n            // The error was too late to do anything, so it is ignored.\n            stream._storedError = undefined;\n            if (stream._pendingAbortRequest !== undefined) {\n                stream._pendingAbortRequest._resolve();\n                stream._pendingAbortRequest = undefined;\n            }\n        }\n        stream._state = 'closed';\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseResolve(writer);\n        }\n    }\n    function WritableStreamFinishInFlightCloseWithError(stream, error) {\n        stream._inFlightCloseRequest._reject(error);\n        stream._inFlightCloseRequest = undefined;\n        // Never execute sink abort() after sink close().\n        if (stream._pendingAbortRequest !== undefined) {\n            stream._pendingAbortRequest._reject(error);\n            stream._pendingAbortRequest = undefined;\n        }\n        WritableStreamDealWithRejection(stream, error);\n    }\n    // TODO(ricea): Fix alphabetical order.\n    function WritableStreamCloseQueuedOrInFlight(stream) {\n        if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamHasOperationMarkedInFlight(stream) {\n        if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamMarkCloseRequestInFlight(stream) {\n        stream._inFlightCloseRequest = stream._closeRequest;\n        stream._closeRequest = undefined;\n    }\n    function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n        stream._inFlightWriteRequest = stream._writeRequests.shift();\n    }\n    function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n        if (stream._closeRequest !== undefined) {\n            stream._closeRequest._reject(stream._storedError);\n            stream._closeRequest = undefined;\n        }\n        var writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseReject(writer, stream._storedError);\n        }\n    }\n    function WritableStreamUpdateBackpressure(stream, backpressure) {\n        var writer = stream._writer;\n        if (writer !== undefined && backpressure !== stream._backpressure) {\n            if (backpressure) {\n                defaultWriterReadyPromiseReset(writer);\n            }\n            else {\n                defaultWriterReadyPromiseResolve(writer);\n            }\n        }\n        stream._backpressure = backpressure;\n    }\n    /**\n     * A default writer vended by a {@link WritableStream}.\n     *\n     * @public\n     */\n    var WritableStreamDefaultWriter = /** @class */ (function () {\n        function WritableStreamDefaultWriter(stream) {\n            assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n            assertWritableStream(stream, 'First parameter');\n            if (IsWritableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n            }\n            this._ownerWritableStream = stream;\n            stream._writer = this;\n            var state = stream._state;\n            if (state === 'writable') {\n                if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n                    defaultWriterReadyPromiseInitialize(this);\n                }\n                else {\n                    defaultWriterReadyPromiseInitializeAsResolved(this);\n                }\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'erroring') {\n                defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'closed') {\n                defaultWriterReadyPromiseInitializeAsResolved(this);\n                defaultWriterClosedPromiseInitializeAsResolved(this);\n            }\n            else {\n                var storedError = stream._storedError;\n                defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n                defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n            }\n        }\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\n            /**\n             * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n             * the writer’s lock is released before the stream finishes closing.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultWriter(this)) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n                }\n                return this._closedPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n             * A producer can use this information to determine the right amount of data to write.\n             *\n             * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n             * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n             * the writer’s lock is released.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultWriter(this)) {\n                    throw defaultWriterBrandCheckException('desiredSize');\n                }\n                if (this._ownerWritableStream === undefined) {\n                    throw defaultWriterLockException('desiredSize');\n                }\n                return WritableStreamDefaultWriterGetDesiredSize(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\n            /**\n             * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n             * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n             * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n             *\n             * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n             * rejected.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultWriter(this)) {\n                    return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n                }\n                return this._readyPromise;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n         */\n        WritableStreamDefaultWriter.prototype.abort = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('abort'));\n            }\n            return WritableStreamDefaultWriterAbort(this, reason);\n        };\n        /**\n         * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n         */\n        WritableStreamDefaultWriter.prototype.close = function () {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('close'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(stream)) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamDefaultWriterClose(this);\n        };\n        /**\n         * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n         * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n         * now on; otherwise, the writer will appear closed.\n         *\n         * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n         * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n         * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n         * other producers from writing in an interleaved manner.\n         */\n        WritableStreamDefaultWriter.prototype.releaseLock = function () {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                throw defaultWriterBrandCheckException('releaseLock');\n            }\n            var stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return;\n            }\n            WritableStreamDefaultWriterRelease(this);\n        };\n        WritableStreamDefaultWriter.prototype.write = function (chunk) {\n            if (chunk === void 0) { chunk = undefined; }\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('write to'));\n            }\n            return WritableStreamDefaultWriterWrite(this, chunk);\n        };\n        return WritableStreamDefaultWriter;\n    }());\n    Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n        abort: { enumerable: true },\n        close: { enumerable: true },\n        releaseLock: { enumerable: true },\n        write: { enumerable: true },\n        closed: { enumerable: true },\n        desiredSize: { enumerable: true },\n        ready: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n            value: 'WritableStreamDefaultWriter',\n            configurable: true\n        });\n    }\n    // Abstract operations for the WritableStreamDefaultWriter.\n    function IsWritableStreamDefaultWriter(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n            return false;\n        }\n        return x instanceof WritableStreamDefaultWriter;\n    }\n    // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n    function WritableStreamDefaultWriterAbort(writer, reason) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamAbort(stream, reason);\n    }\n    function WritableStreamDefaultWriterClose(writer) {\n        var stream = writer._ownerWritableStream;\n        return WritableStreamClose(stream);\n    }\n    function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return WritableStreamDefaultWriterClose(writer);\n    }\n    function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n        if (writer._closedPromiseState === 'pending') {\n            defaultWriterClosedPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterClosedPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n        if (writer._readyPromiseState === 'pending') {\n            defaultWriterReadyPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterReadyPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterGetDesiredSize(writer) {\n        var stream = writer._ownerWritableStream;\n        var state = stream._state;\n        if (state === 'errored' || state === 'erroring') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n    }\n    function WritableStreamDefaultWriterRelease(writer) {\n        var stream = writer._ownerWritableStream;\n        var releasedError = new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");\n        WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n        // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n        // rejected until afterwards. This means that simply testing state will not work.\n        WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n        stream._writer = undefined;\n        writer._ownerWritableStream = undefined;\n    }\n    function WritableStreamDefaultWriterWrite(writer, chunk) {\n        var stream = writer._ownerWritableStream;\n        var controller = stream._writableStreamController;\n        var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n        if (stream !== writer._ownerWritableStream) {\n            return promiseRejectedWith(defaultWriterLockException('write to'));\n        }\n        var state = stream._state;\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n            return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n        }\n        if (state === 'erroring') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        var promise = WritableStreamAddWriteRequest(stream);\n        WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n        return promise;\n    }\n    var closeSentinel = {};\n    /**\n     * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n     *\n     * @public\n     */\n    var WritableStreamDefaultController = /** @class */ (function () {\n        function WritableStreamDefaultController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(WritableStreamDefaultController.prototype, \"abortReason\", {\n            /**\n             * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n             *\n             * @deprecated\n             *  This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n             *  Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException$2('abortReason');\n                }\n                return this._abortReason;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(WritableStreamDefaultController.prototype, \"signal\", {\n            /**\n             * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n             */\n            get: function () {\n                if (!IsWritableStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException$2('signal');\n                }\n                if (this._abortController === undefined) {\n                    // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n                    // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n                    // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n                    throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n                }\n                return this._abortController.signal;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n         *\n         * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n         * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n         * normal lifecycle of interactions with the underlying sink.\n         */\n        WritableStreamDefaultController.prototype.error = function (e) {\n            if (e === void 0) { e = undefined; }\n            if (!IsWritableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$2('error');\n            }\n            var state = this._controlledWritableStream._state;\n            if (state !== 'writable') {\n                // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n                // just treat it as a no-op.\n                return;\n            }\n            WritableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\n            var result = this._abortAlgorithm(reason);\n            WritableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        WritableStreamDefaultController.prototype[ErrorSteps] = function () {\n            ResetQueue(this);\n        };\n        return WritableStreamDefaultController;\n    }());\n    Object.defineProperties(WritableStreamDefaultController.prototype, {\n        abortReason: { enumerable: true },\n        signal: { enumerable: true },\n        error: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'WritableStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Abstract operations implementing interface required by the WritableStream.\n    function IsWritableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n            return false;\n        }\n        return x instanceof WritableStreamDefaultController;\n    }\n    function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledWritableStream = stream;\n        stream._writableStreamController = controller;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._abortReason = undefined;\n        controller._abortController = createAbortController();\n        controller._started = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._writeAlgorithm = writeAlgorithm;\n        controller._closeAlgorithm = closeAlgorithm;\n        controller._abortAlgorithm = abortAlgorithm;\n        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n        var startResult = startAlgorithm();\n        var startPromise = promiseResolvedWith(startResult);\n        uponPromise(startPromise, function () {\n            controller._started = true;\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n        }, function (r) {\n            controller._started = true;\n            WritableStreamDealWithRejection(stream, r);\n        });\n    }\n    function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(WritableStreamDefaultController.prototype);\n        var startAlgorithm = function () { return undefined; };\n        var writeAlgorithm = function () { return promiseResolvedWith(undefined); };\n        var closeAlgorithm = function () { return promiseResolvedWith(undefined); };\n        var abortAlgorithm = function () { return promiseResolvedWith(undefined); };\n        if (underlyingSink.start !== undefined) {\n            startAlgorithm = function () { return underlyingSink.start(controller); };\n        }\n        if (underlyingSink.write !== undefined) {\n            writeAlgorithm = function (chunk) { return underlyingSink.write(chunk, controller); };\n        }\n        if (underlyingSink.close !== undefined) {\n            closeAlgorithm = function () { return underlyingSink.close(); };\n        }\n        if (underlyingSink.abort !== undefined) {\n            abortAlgorithm = function (reason) { return underlyingSink.abort(reason); };\n        }\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n    function WritableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._writeAlgorithm = undefined;\n        controller._closeAlgorithm = undefined;\n        controller._abortAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    function WritableStreamDefaultControllerClose(controller) {\n        EnqueueValueWithSize(controller, closeSentinel, 0);\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n        try {\n            return controller._strategySizeAlgorithm(chunk);\n        }\n        catch (chunkSizeE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n            return 1;\n        }\n    }\n    function WritableStreamDefaultControllerGetDesiredSize(controller) {\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n        try {\n            EnqueueValueWithSize(controller, chunk, chunkSize);\n        }\n        catch (enqueueE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n            return;\n        }\n        var stream = controller._controlledWritableStream;\n        if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n            var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n            WritableStreamUpdateBackpressure(stream, backpressure);\n        }\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    // Abstract operations for the WritableStreamDefaultController.\n    function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n        var stream = controller._controlledWritableStream;\n        if (!controller._started) {\n            return;\n        }\n        if (stream._inFlightWriteRequest !== undefined) {\n            return;\n        }\n        var state = stream._state;\n        if (state === 'erroring') {\n            WritableStreamFinishErroring(stream);\n            return;\n        }\n        if (controller._queue.length === 0) {\n            return;\n        }\n        var value = PeekQueueValue(controller);\n        if (value === closeSentinel) {\n            WritableStreamDefaultControllerProcessClose(controller);\n        }\n        else {\n            WritableStreamDefaultControllerProcessWrite(controller, value);\n        }\n    }\n    function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n        if (controller._controlledWritableStream._state === 'writable') {\n            WritableStreamDefaultControllerError(controller, error);\n        }\n    }\n    function WritableStreamDefaultControllerProcessClose(controller) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkCloseRequestInFlight(stream);\n        DequeueValue(controller);\n        var sinkClosePromise = controller._closeAlgorithm();\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(sinkClosePromise, function () {\n            WritableStreamFinishInFlightClose(stream);\n        }, function (reason) {\n            WritableStreamFinishInFlightCloseWithError(stream, reason);\n        });\n    }\n    function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamMarkFirstWriteRequestInFlight(stream);\n        var sinkWritePromise = controller._writeAlgorithm(chunk);\n        uponPromise(sinkWritePromise, function () {\n            WritableStreamFinishInFlightWrite(stream);\n            var state = stream._state;\n            DequeueValue(controller);\n            if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n                var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n                WritableStreamUpdateBackpressure(stream, backpressure);\n            }\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n        }, function (reason) {\n            if (stream._state === 'writable') {\n                WritableStreamDefaultControllerClearAlgorithms(controller);\n            }\n            WritableStreamFinishInFlightWriteWithError(stream, reason);\n        });\n    }\n    function WritableStreamDefaultControllerGetBackpressure(controller) {\n        var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n        return desiredSize <= 0;\n    }\n    // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n    function WritableStreamDefaultControllerError(controller, error) {\n        var stream = controller._controlledWritableStream;\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        WritableStreamStartErroring(stream, error);\n    }\n    // Helper functions for the WritableStream.\n    function streamBrandCheckException$2(name) {\n        return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\n    }\n    // Helper functions for the WritableStreamDefaultController.\n    function defaultControllerBrandCheckException$2(name) {\n        return new TypeError(\"WritableStreamDefaultController.prototype.\" + name + \" can only be used on a WritableStreamDefaultController\");\n    }\n    // Helper functions for the WritableStreamDefaultWriter.\n    function defaultWriterBrandCheckException(name) {\n        return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\n    }\n    function defaultWriterLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released writer');\n    }\n    function defaultWriterClosedPromiseInitialize(writer) {\n        writer._closedPromise = newPromise(function (resolve, reject) {\n            writer._closedPromise_resolve = resolve;\n            writer._closedPromise_reject = reject;\n            writer._closedPromiseState = 'pending';\n        });\n    }\n    function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseReject(writer, reason);\n    }\n    function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseResolve(writer);\n    }\n    function defaultWriterClosedPromiseReject(writer, reason) {\n        if (writer._closedPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(writer._closedPromise);\n        writer._closedPromise_reject(reason);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'rejected';\n    }\n    function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n        defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterClosedPromiseResolve(writer) {\n        if (writer._closedPromise_resolve === undefined) {\n            return;\n        }\n        writer._closedPromise_resolve(undefined);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'resolved';\n    }\n    function defaultWriterReadyPromiseInitialize(writer) {\n        writer._readyPromise = newPromise(function (resolve, reject) {\n            writer._readyPromise_resolve = resolve;\n            writer._readyPromise_reject = reject;\n        });\n        writer._readyPromiseState = 'pending';\n    }\n    function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseReject(writer, reason);\n    }\n    function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseResolve(writer);\n    }\n    function defaultWriterReadyPromiseReject(writer, reason) {\n        if (writer._readyPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(writer._readyPromise);\n        writer._readyPromise_reject(reason);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'rejected';\n    }\n    function defaultWriterReadyPromiseReset(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n    }\n    function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n        defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterReadyPromiseResolve(writer) {\n        if (writer._readyPromise_resolve === undefined) {\n            return;\n        }\n        writer._readyPromise_resolve(undefined);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'fulfilled';\n    }\n\n    /// <reference lib=\"dom\" />\n    var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n    /// <reference types=\"node\" />\n    function isDOMExceptionConstructor(ctor) {\n        if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n            return false;\n        }\n        try {\n            new ctor();\n            return true;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    function createDOMExceptionPolyfill() {\n        // eslint-disable-next-line no-shadow\n        var ctor = function DOMException(message, name) {\n            this.message = message || '';\n            this.name = name || 'Error';\n            if (Error.captureStackTrace) {\n                Error.captureStackTrace(this, this.constructor);\n            }\n        };\n        ctor.prototype = Object.create(Error.prototype);\n        Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n        return ctor;\n    }\n    // eslint-disable-next-line no-redeclare\n    var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n    function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n        var reader = AcquireReadableStreamDefaultReader(source);\n        var writer = AcquireWritableStreamDefaultWriter(dest);\n        source._disturbed = true;\n        var shuttingDown = false;\n        // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n        var currentWrite = promiseResolvedWith(undefined);\n        return newPromise(function (resolve, reject) {\n            var abortAlgorithm;\n            if (signal !== undefined) {\n                abortAlgorithm = function () {\n                    var error = new DOMException$1('Aborted', 'AbortError');\n                    var actions = [];\n                    if (!preventAbort) {\n                        actions.push(function () {\n                            if (dest._state === 'writable') {\n                                return WritableStreamAbort(dest, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    if (!preventCancel) {\n                        actions.push(function () {\n                            if (source._state === 'readable') {\n                                return ReadableStreamCancel(source, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\n                };\n                if (signal.aborted) {\n                    abortAlgorithm();\n                    return;\n                }\n                signal.addEventListener('abort', abortAlgorithm);\n            }\n            // Using reader and writer, read all chunks from this and write them to dest\n            // - Backpressure must be enforced\n            // - Shutdown must stop all activity\n            function pipeLoop() {\n                return newPromise(function (resolveLoop, rejectLoop) {\n                    function next(done) {\n                        if (done) {\n                            resolveLoop();\n                        }\n                        else {\n                            // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n                            // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n                            PerformPromiseThen(pipeStep(), next, rejectLoop);\n                        }\n                    }\n                    next(false);\n                });\n            }\n            function pipeStep() {\n                if (shuttingDown) {\n                    return promiseResolvedWith(true);\n                }\n                return PerformPromiseThen(writer._readyPromise, function () {\n                    return newPromise(function (resolveRead, rejectRead) {\n                        ReadableStreamDefaultReaderRead(reader, {\n                            _chunkSteps: function (chunk) {\n                                currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n                                resolveRead(false);\n                            },\n                            _closeSteps: function () { return resolveRead(true); },\n                            _errorSteps: rejectRead\n                        });\n                    });\n                });\n            }\n            // Errors must be propagated forward\n            isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\n                if (!preventAbort) {\n                    shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n            });\n            // Errors must be propagated backward\n            isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n                if (!preventCancel) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n            });\n            // Closing must be propagated forward\n            isOrBecomesClosed(source, reader._closedPromise, function () {\n                if (!preventClose) {\n                    shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\n                }\n                else {\n                    shutdown();\n                }\n            });\n            // Closing must be propagated backward\n            if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n                var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\n                if (!preventCancel) {\n                    shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\n                }\n                else {\n                    shutdown(true, destClosed_1);\n                }\n            }\n            setPromiseIsHandledToTrue(pipeLoop());\n            function waitForWritesToFinish() {\n                // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n                // for that too.\n                var oldCurrentWrite = currentWrite;\n                return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\n            }\n            function isOrBecomesErrored(stream, promise, action) {\n                if (stream._state === 'errored') {\n                    action(stream._storedError);\n                }\n                else {\n                    uponRejection(promise, action);\n                }\n            }\n            function isOrBecomesClosed(stream, promise, action) {\n                if (stream._state === 'closed') {\n                    action();\n                }\n                else {\n                    uponFulfillment(promise, action);\n                }\n            }\n            function shutdownWithAction(action, originalIsError, originalError) {\n                if (shuttingDown) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n                    uponFulfillment(waitForWritesToFinish(), doTheRest);\n                }\n                else {\n                    doTheRest();\n                }\n                function doTheRest() {\n                    uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\n                }\n            }\n            function shutdown(isError, error) {\n                if (shuttingDown) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n                    uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\n                }\n                else {\n                    finalize(isError, error);\n                }\n            }\n            function finalize(isError, error) {\n                WritableStreamDefaultWriterRelease(writer);\n                ReadableStreamReaderGenericRelease(reader);\n                if (signal !== undefined) {\n                    signal.removeEventListener('abort', abortAlgorithm);\n                }\n                if (isError) {\n                    reject(error);\n                }\n                else {\n                    resolve(undefined);\n                }\n            }\n        });\n    }\n\n    /**\n     * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n     *\n     * @public\n     */\n    var ReadableStreamDefaultController = /** @class */ (function () {\n        function ReadableStreamDefaultController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n             * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n             */\n            get: function () {\n                if (!IsReadableStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException$1('desiredSize');\n                }\n                return ReadableStreamDefaultControllerGetDesiredSize(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n         * the stream, but once those are read, the stream will become closed.\n         */\n        ReadableStreamDefaultController.prototype.close = function () {\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('close');\n            }\n            if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n                throw new TypeError('The stream is not in a state that permits close');\n            }\n            ReadableStreamDefaultControllerClose(this);\n        };\n        ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (chunk === void 0) { chunk = undefined; }\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('enqueue');\n            }\n            if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n                throw new TypeError('The stream is not in a state that permits enqueue');\n            }\n            return ReadableStreamDefaultControllerEnqueue(this, chunk);\n        };\n        /**\n         * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n         */\n        ReadableStreamDefaultController.prototype.error = function (e) {\n            if (e === void 0) { e = undefined; }\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('error');\n            }\n            ReadableStreamDefaultControllerError(this, e);\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\n            ResetQueue(this);\n            var result = this._cancelAlgorithm(reason);\n            ReadableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        };\n        /** @internal */\n        ReadableStreamDefaultController.prototype[PullSteps] = function (readRequest) {\n            var stream = this._controlledReadableStream;\n            if (this._queue.length > 0) {\n                var chunk = DequeueValue(this);\n                if (this._closeRequested && this._queue.length === 0) {\n                    ReadableStreamDefaultControllerClearAlgorithms(this);\n                    ReadableStreamClose(stream);\n                }\n                else {\n                    ReadableStreamDefaultControllerCallPullIfNeeded(this);\n                }\n                readRequest._chunkSteps(chunk);\n            }\n            else {\n                ReadableStreamAddReadRequest(stream, readRequest);\n                ReadableStreamDefaultControllerCallPullIfNeeded(this);\n            }\n        };\n        return ReadableStreamDefaultController;\n    }());\n    Object.defineProperties(ReadableStreamDefaultController.prototype, {\n        close: { enumerable: true },\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableStreamDefaultController.\n    function IsReadableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n            return false;\n        }\n        return x instanceof ReadableStreamDefaultController;\n    }\n    function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n        var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n        if (!shouldPull) {\n            return;\n        }\n        if (controller._pulling) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        var pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, function () {\n            controller._pulling = false;\n            if (controller._pullAgain) {\n                controller._pullAgain = false;\n                ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            }\n        }, function (e) {\n            ReadableStreamDefaultControllerError(controller, e);\n        });\n    }\n    function ReadableStreamDefaultControllerShouldCallPull(controller) {\n        var stream = controller._controlledReadableStream;\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return false;\n        }\n        if (!controller._started) {\n            return false;\n        }\n        if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n    function ReadableStreamDefaultControllerClose(controller) {\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return;\n        }\n        var stream = controller._controlledReadableStream;\n        controller._closeRequested = true;\n        if (controller._queue.length === 0) {\n            ReadableStreamDefaultControllerClearAlgorithms(controller);\n            ReadableStreamClose(stream);\n        }\n    }\n    function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return;\n        }\n        var stream = controller._controlledReadableStream;\n        if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            ReadableStreamFulfillReadRequest(stream, chunk, false);\n        }\n        else {\n            var chunkSize = void 0;\n            try {\n                chunkSize = controller._strategySizeAlgorithm(chunk);\n            }\n            catch (chunkSizeE) {\n                ReadableStreamDefaultControllerError(controller, chunkSizeE);\n                throw chunkSizeE;\n            }\n            try {\n                EnqueueValueWithSize(controller, chunk, chunkSize);\n            }\n            catch (enqueueE) {\n                ReadableStreamDefaultControllerError(controller, enqueueE);\n                throw enqueueE;\n            }\n        }\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\n    function ReadableStreamDefaultControllerError(controller, e) {\n        var stream = controller._controlledReadableStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ResetQueue(controller);\n        ReadableStreamDefaultControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n        var state = controller._controlledReadableStream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    // This is used in the implementation of TransformStream.\n    function ReadableStreamDefaultControllerHasBackpressure(controller) {\n        if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n        var state = controller._controlledReadableStream._state;\n        if (!controller._closeRequested && state === 'readable') {\n            return true;\n        }\n        return false;\n    }\n    function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledReadableStream = stream;\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._closeRequested = false;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        stream._readableStreamController = controller;\n        var startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), function () {\n            controller._started = true;\n            ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n        }, function (r) {\n            ReadableStreamDefaultControllerError(controller, r);\n        });\n    }\n    function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        var startAlgorithm = function () { return undefined; };\n        var pullAlgorithm = function () { return promiseResolvedWith(undefined); };\n        var cancelAlgorithm = function () { return promiseResolvedWith(undefined); };\n        if (underlyingSource.start !== undefined) {\n            startAlgorithm = function () { return underlyingSource.start(controller); };\n        }\n        if (underlyingSource.pull !== undefined) {\n            pullAlgorithm = function () { return underlyingSource.pull(controller); };\n        }\n        if (underlyingSource.cancel !== undefined) {\n            cancelAlgorithm = function (reason) { return underlyingSource.cancel(reason); };\n        }\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // Helper functions for the ReadableStreamDefaultController.\n    function defaultControllerBrandCheckException$1(name) {\n        return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\n    }\n\n    function ReadableStreamTee(stream, cloneForBranch2) {\n        if (IsReadableByteStreamController(stream._readableStreamController)) {\n            return ReadableByteStreamTee(stream);\n        }\n        return ReadableStreamDefaultTee(stream);\n    }\n    function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var reading = false;\n        var readAgain = false;\n        var canceled1 = false;\n        var canceled2 = false;\n        var reason1;\n        var reason2;\n        var branch1;\n        var branch2;\n        var resolveCancelPromise;\n        var cancelPromise = newPromise(function (resolve) {\n            resolveCancelPromise = resolve;\n        });\n        function pullAlgorithm() {\n            if (reading) {\n                readAgain = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var readRequest = {\n                _chunkSteps: function (chunk) {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    queueMicrotask(function () {\n                        readAgain = false;\n                        var chunk1 = chunk;\n                        var chunk2 = chunk;\n                        // There is no way to access the cloning code right now in the reference implementation.\n                        // If we add one then we'll need an implementation for serializable objects.\n                        // if (!canceled2 && cloneForBranch2) {\n                        //   chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n                        // }\n                        if (!canceled1) {\n                            ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n                        }\n                        if (!canceled2) {\n                            ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n                        }\n                        reading = false;\n                        if (readAgain) {\n                            pullAlgorithm();\n                        }\n                    });\n                },\n                _closeSteps: function () {\n                    reading = false;\n                    if (!canceled1) {\n                        ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n                    }\n                    if (!canceled2) {\n                        ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n                    }\n                    if (!canceled1 || !canceled2) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: function () {\n                    reading = false;\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() {\n            // do nothing\n        }\n        branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n        branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n        uponRejection(reader._closedPromise, function (r) {\n            ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n            ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n            if (!canceled1 || !canceled2) {\n                resolveCancelPromise(undefined);\n            }\n        });\n        return [branch1, branch2];\n    }\n    function ReadableByteStreamTee(stream) {\n        var reader = AcquireReadableStreamDefaultReader(stream);\n        var reading = false;\n        var readAgainForBranch1 = false;\n        var readAgainForBranch2 = false;\n        var canceled1 = false;\n        var canceled2 = false;\n        var reason1;\n        var reason2;\n        var branch1;\n        var branch2;\n        var resolveCancelPromise;\n        var cancelPromise = newPromise(function (resolve) {\n            resolveCancelPromise = resolve;\n        });\n        function forwardReaderError(thisReader) {\n            uponRejection(thisReader._closedPromise, function (r) {\n                if (thisReader !== reader) {\n                    return;\n                }\n                ReadableByteStreamControllerError(branch1._readableStreamController, r);\n                ReadableByteStreamControllerError(branch2._readableStreamController, r);\n                if (!canceled1 || !canceled2) {\n                    resolveCancelPromise(undefined);\n                }\n            });\n        }\n        function pullWithDefaultReader() {\n            if (IsReadableStreamBYOBReader(reader)) {\n                ReadableStreamReaderGenericRelease(reader);\n                reader = AcquireReadableStreamDefaultReader(stream);\n                forwardReaderError(reader);\n            }\n            var readRequest = {\n                _chunkSteps: function (chunk) {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    queueMicrotask(function () {\n                        readAgainForBranch1 = false;\n                        readAgainForBranch2 = false;\n                        var chunk1 = chunk;\n                        var chunk2 = chunk;\n                        if (!canceled1 && !canceled2) {\n                            try {\n                                chunk2 = CloneAsUint8Array(chunk);\n                            }\n                            catch (cloneE) {\n                                ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n                                ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n                                resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n                                return;\n                            }\n                        }\n                        if (!canceled1) {\n                            ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n                        }\n                        if (!canceled2) {\n                            ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n                        }\n                        reading = false;\n                        if (readAgainForBranch1) {\n                            pull1Algorithm();\n                        }\n                        else if (readAgainForBranch2) {\n                            pull2Algorithm();\n                        }\n                    });\n                },\n                _closeSteps: function () {\n                    reading = false;\n                    if (!canceled1) {\n                        ReadableByteStreamControllerClose(branch1._readableStreamController);\n                    }\n                    if (!canceled2) {\n                        ReadableByteStreamControllerClose(branch2._readableStreamController);\n                    }\n                    if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n                        ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n                    }\n                    if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n                        ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n                    }\n                    if (!canceled1 || !canceled2) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: function () {\n                    reading = false;\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n        }\n        function pullWithBYOBReader(view, forBranch2) {\n            if (IsReadableStreamDefaultReader(reader)) {\n                ReadableStreamReaderGenericRelease(reader);\n                reader = AcquireReadableStreamBYOBReader(stream);\n                forwardReaderError(reader);\n            }\n            var byobBranch = forBranch2 ? branch2 : branch1;\n            var otherBranch = forBranch2 ? branch1 : branch2;\n            var readIntoRequest = {\n                _chunkSteps: function (chunk) {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    queueMicrotask(function () {\n                        readAgainForBranch1 = false;\n                        readAgainForBranch2 = false;\n                        var byobCanceled = forBranch2 ? canceled2 : canceled1;\n                        var otherCanceled = forBranch2 ? canceled1 : canceled2;\n                        if (!otherCanceled) {\n                            var clonedChunk = void 0;\n                            try {\n                                clonedChunk = CloneAsUint8Array(chunk);\n                            }\n                            catch (cloneE) {\n                                ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n                                ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n                                resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n                                return;\n                            }\n                            if (!byobCanceled) {\n                                ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                            }\n                            ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n                        }\n                        else if (!byobCanceled) {\n                            ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                        }\n                        reading = false;\n                        if (readAgainForBranch1) {\n                            pull1Algorithm();\n                        }\n                        else if (readAgainForBranch2) {\n                            pull2Algorithm();\n                        }\n                    });\n                },\n                _closeSteps: function (chunk) {\n                    reading = false;\n                    var byobCanceled = forBranch2 ? canceled2 : canceled1;\n                    var otherCanceled = forBranch2 ? canceled1 : canceled2;\n                    if (!byobCanceled) {\n                        ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n                    }\n                    if (!otherCanceled) {\n                        ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n                    }\n                    if (chunk !== undefined) {\n                        if (!byobCanceled) {\n                            ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                        }\n                        if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n                            ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n                        }\n                    }\n                    if (!byobCanceled || !otherCanceled) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: function () {\n                    reading = false;\n                }\n            };\n            ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n        }\n        function pull1Algorithm() {\n            if (reading) {\n                readAgainForBranch1 = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n            if (byobRequest === null) {\n                pullWithDefaultReader();\n            }\n            else {\n                pullWithBYOBReader(byobRequest._view, false);\n            }\n            return promiseResolvedWith(undefined);\n        }\n        function pull2Algorithm() {\n            if (reading) {\n                readAgainForBranch2 = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            var byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n            if (byobRequest === null) {\n                pullWithDefaultReader();\n            }\n            else {\n                pullWithBYOBReader(byobRequest._view, true);\n            }\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1) {\n                var compositeReason = CreateArrayFromList([reason1, reason2]);\n                var cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() {\n            return;\n        }\n        branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n        branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n        forwardReaderError(reader);\n        return [branch1, branch2];\n    }\n\n    function convertUnderlyingDefaultOrByteSource(source, context) {\n        assertDictionary(source, context);\n        var original = source;\n        var autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n        var cancel = original === null || original === void 0 ? void 0 : original.cancel;\n        var pull = original === null || original === void 0 ? void 0 : original.pull;\n        var start = original === null || original === void 0 ? void 0 : original.start;\n        var type = original === null || original === void 0 ? void 0 : original.type;\n        return {\n            autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n                undefined :\n                convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, context + \" has member 'autoAllocateChunkSize' that\"),\n            cancel: cancel === undefined ?\n                undefined :\n                convertUnderlyingSourceCancelCallback(cancel, original, context + \" has member 'cancel' that\"),\n            pull: pull === undefined ?\n                undefined :\n                convertUnderlyingSourcePullCallback(pull, original, context + \" has member 'pull' that\"),\n            start: start === undefined ?\n                undefined :\n                convertUnderlyingSourceStartCallback(start, original, context + \" has member 'start' that\"),\n            type: type === undefined ? undefined : convertReadableStreamType(type, context + \" has member 'type' that\")\n        };\n    }\n    function convertUnderlyingSourceCancelCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (reason) { return promiseCall(fn, original, [reason]); };\n    }\n    function convertUnderlyingSourcePullCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return promiseCall(fn, original, [controller]); };\n    }\n    function convertUnderlyingSourceStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return reflectCall(fn, original, [controller]); };\n    }\n    function convertReadableStreamType(type, context) {\n        type = \"\" + type;\n        if (type !== 'bytes') {\n            throw new TypeError(context + \" '\" + type + \"' is not a valid enumeration value for ReadableStreamType\");\n        }\n        return type;\n    }\n\n    function convertReaderOptions(options, context) {\n        assertDictionary(options, context);\n        var mode = options === null || options === void 0 ? void 0 : options.mode;\n        return {\n            mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, context + \" has member 'mode' that\")\n        };\n    }\n    function convertReadableStreamReaderMode(mode, context) {\n        mode = \"\" + mode;\n        if (mode !== 'byob') {\n            throw new TypeError(context + \" '\" + mode + \"' is not a valid enumeration value for ReadableStreamReaderMode\");\n        }\n        return mode;\n    }\n\n    function convertIteratorOptions(options, context) {\n        assertDictionary(options, context);\n        var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n        return { preventCancel: Boolean(preventCancel) };\n    }\n\n    function convertPipeOptions(options, context) {\n        assertDictionary(options, context);\n        var preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n        var preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n        var preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n        var signal = options === null || options === void 0 ? void 0 : options.signal;\n        if (signal !== undefined) {\n            assertAbortSignal(signal, context + \" has member 'signal' that\");\n        }\n        return {\n            preventAbort: Boolean(preventAbort),\n            preventCancel: Boolean(preventCancel),\n            preventClose: Boolean(preventClose),\n            signal: signal\n        };\n    }\n    function assertAbortSignal(signal, context) {\n        if (!isAbortSignal(signal)) {\n            throw new TypeError(context + \" is not an AbortSignal.\");\n        }\n    }\n\n    function convertReadableWritablePair(pair, context) {\n        assertDictionary(pair, context);\n        var readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n        assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n        assertReadableStream(readable, context + \" has member 'readable' that\");\n        var writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n        assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n        assertWritableStream(writable, context + \" has member 'writable' that\");\n        return { readable: readable, writable: writable };\n    }\n\n    /**\n     * A readable stream represents a source of data, from which you can read.\n     *\n     * @public\n     */\n    var ReadableStream = /** @class */ (function () {\n        function ReadableStream(rawUnderlyingSource, rawStrategy) {\n            if (rawUnderlyingSource === void 0) { rawUnderlyingSource = {}; }\n            if (rawStrategy === void 0) { rawStrategy = {}; }\n            if (rawUnderlyingSource === undefined) {\n                rawUnderlyingSource = null;\n            }\n            else {\n                assertObject(rawUnderlyingSource, 'First parameter');\n            }\n            var strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n            var underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n            InitializeReadableStream(this);\n            if (underlyingSource.type === 'bytes') {\n                if (strategy.size !== undefined) {\n                    throw new RangeError('The strategy for a byte stream cannot have a size function');\n                }\n                var highWaterMark = ExtractHighWaterMark(strategy, 0);\n                SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n            }\n            else {\n                var sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n                var highWaterMark = ExtractHighWaterMark(strategy, 1);\n                SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n            }\n        }\n        Object.defineProperty(ReadableStream.prototype, \"locked\", {\n            /**\n             * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n             */\n            get: function () {\n                if (!IsReadableStream(this)) {\n                    throw streamBrandCheckException$1('locked');\n                }\n                return IsReadableStreamLocked(this);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n         *\n         * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n         * method, which might or might not use it.\n         */\n        ReadableStream.prototype.cancel = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsReadableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n            }\n            if (IsReadableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n            }\n            return ReadableStreamCancel(this, reason);\n        };\n        ReadableStream.prototype.getReader = function (rawOptions) {\n            if (rawOptions === void 0) { rawOptions = undefined; }\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('getReader');\n            }\n            var options = convertReaderOptions(rawOptions, 'First parameter');\n            if (options.mode === undefined) {\n                return AcquireReadableStreamDefaultReader(this);\n            }\n            return AcquireReadableStreamBYOBReader(this);\n        };\n        ReadableStream.prototype.pipeThrough = function (rawTransform, rawOptions) {\n            if (rawOptions === void 0) { rawOptions = {}; }\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('pipeThrough');\n            }\n            assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n            var transform = convertReadableWritablePair(rawTransform, 'First parameter');\n            var options = convertPipeOptions(rawOptions, 'Second parameter');\n            if (IsReadableStreamLocked(this)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n            }\n            if (IsWritableStreamLocked(transform.writable)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n            }\n            var promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n            setPromiseIsHandledToTrue(promise);\n            return transform.readable;\n        };\n        ReadableStream.prototype.pipeTo = function (destination, rawOptions) {\n            if (rawOptions === void 0) { rawOptions = {}; }\n            if (!IsReadableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n            }\n            if (destination === undefined) {\n                return promiseRejectedWith(\"Parameter 1 is required in 'pipeTo'.\");\n            }\n            if (!IsWritableStream(destination)) {\n                return promiseRejectedWith(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));\n            }\n            var options;\n            try {\n                options = convertPipeOptions(rawOptions, 'Second parameter');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            if (IsReadableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n            }\n            if (IsWritableStreamLocked(destination)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n            }\n            return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n        };\n        /**\n         * Tees this readable stream, returning a two-element array containing the two resulting branches as\n         * new {@link ReadableStream} instances.\n         *\n         * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n         * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n         * propagated to the stream's underlying source.\n         *\n         * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n         * this could allow interference between the two branches.\n         */\n        ReadableStream.prototype.tee = function () {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('tee');\n            }\n            var branches = ReadableStreamTee(this);\n            return CreateArrayFromList(branches);\n        };\n        ReadableStream.prototype.values = function (rawOptions) {\n            if (rawOptions === void 0) { rawOptions = undefined; }\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('values');\n            }\n            var options = convertIteratorOptions(rawOptions, 'First parameter');\n            return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n        };\n        return ReadableStream;\n    }());\n    Object.defineProperties(ReadableStream.prototype, {\n        cancel: { enumerable: true },\n        getReader: { enumerable: true },\n        pipeThrough: { enumerable: true },\n        pipeTo: { enumerable: true },\n        tee: { enumerable: true },\n        values: { enumerable: true },\n        locked: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ReadableStream',\n            configurable: true\n        });\n    }\n    if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n        Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n            value: ReadableStream.prototype.values,\n            writable: true,\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableStream.\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        if (highWaterMark === void 0) { highWaterMark = 1; }\n        if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\n        var stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        var controller = Object.create(ReadableStreamDefaultController.prototype);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n        var stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        var controller = Object.create(ReadableByteStreamController.prototype);\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n        return stream;\n    }\n    function InitializeReadableStream(stream) {\n        stream._state = 'readable';\n        stream._reader = undefined;\n        stream._storedError = undefined;\n        stream._disturbed = false;\n    }\n    function IsReadableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n            return false;\n        }\n        return x instanceof ReadableStream;\n    }\n    function IsReadableStreamLocked(stream) {\n        if (stream._reader === undefined) {\n            return false;\n        }\n        return true;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamCancel(stream, reason) {\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        ReadableStreamClose(stream);\n        var reader = stream._reader;\n        if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n            reader._readIntoRequests.forEach(function (readIntoRequest) {\n                readIntoRequest._closeSteps(undefined);\n            });\n            reader._readIntoRequests = new SimpleQueue();\n        }\n        var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n        return transformPromiseWith(sourceCancelPromise, noop);\n    }\n    function ReadableStreamClose(stream) {\n        stream._state = 'closed';\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        defaultReaderClosedPromiseResolve(reader);\n        if (IsReadableStreamDefaultReader(reader)) {\n            reader._readRequests.forEach(function (readRequest) {\n                readRequest._closeSteps();\n            });\n            reader._readRequests = new SimpleQueue();\n        }\n    }\n    function ReadableStreamError(stream, e) {\n        stream._state = 'errored';\n        stream._storedError = e;\n        var reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        defaultReaderClosedPromiseReject(reader, e);\n        if (IsReadableStreamDefaultReader(reader)) {\n            reader._readRequests.forEach(function (readRequest) {\n                readRequest._errorSteps(e);\n            });\n            reader._readRequests = new SimpleQueue();\n        }\n        else {\n            reader._readIntoRequests.forEach(function (readIntoRequest) {\n                readIntoRequest._errorSteps(e);\n            });\n            reader._readIntoRequests = new SimpleQueue();\n        }\n    }\n    // Helper functions for the ReadableStream.\n    function streamBrandCheckException$1(name) {\n        return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\n    }\n\n    function convertQueuingStrategyInit(init, context) {\n        assertDictionary(init, context);\n        var highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n        assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n        return {\n            highWaterMark: convertUnrestrictedDouble(highWaterMark)\n        };\n    }\n\n    // The size function must not have a prototype property nor be a constructor\n    var byteLengthSizeFunction = function (chunk) {\n        return chunk.byteLength;\n    };\n    Object.defineProperty(byteLengthSizeFunction, 'name', {\n        value: 'size',\n        configurable: true\n    });\n    /**\n     * A queuing strategy that counts the number of bytes in each chunk.\n     *\n     * @public\n     */\n    var ByteLengthQueuingStrategy = /** @class */ (function () {\n        function ByteLengthQueuingStrategy(options) {\n            assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n            options = convertQueuingStrategyInit(options, 'First parameter');\n            this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n        }\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"highWaterMark\", {\n            /**\n             * Returns the high water mark provided to the constructor.\n             */\n            get: function () {\n                if (!IsByteLengthQueuingStrategy(this)) {\n                    throw byteLengthBrandCheckException('highWaterMark');\n                }\n                return this._byteLengthQueuingStrategyHighWaterMark;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, \"size\", {\n            /**\n             * Measures the size of `chunk` by returning the value of its `byteLength` property.\n             */\n            get: function () {\n                if (!IsByteLengthQueuingStrategy(this)) {\n                    throw byteLengthBrandCheckException('size');\n                }\n                return byteLengthSizeFunction;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return ByteLengthQueuingStrategy;\n    }());\n    Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n        highWaterMark: { enumerable: true },\n        size: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n            value: 'ByteLengthQueuingStrategy',\n            configurable: true\n        });\n    }\n    // Helper functions for the ByteLengthQueuingStrategy.\n    function byteLengthBrandCheckException(name) {\n        return new TypeError(\"ByteLengthQueuingStrategy.prototype.\" + name + \" can only be used on a ByteLengthQueuingStrategy\");\n    }\n    function IsByteLengthQueuingStrategy(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n            return false;\n        }\n        return x instanceof ByteLengthQueuingStrategy;\n    }\n\n    // The size function must not have a prototype property nor be a constructor\n    var countSizeFunction = function () {\n        return 1;\n    };\n    Object.defineProperty(countSizeFunction, 'name', {\n        value: 'size',\n        configurable: true\n    });\n    /**\n     * A queuing strategy that counts the number of chunks.\n     *\n     * @public\n     */\n    var CountQueuingStrategy = /** @class */ (function () {\n        function CountQueuingStrategy(options) {\n            assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n            options = convertQueuingStrategyInit(options, 'First parameter');\n            this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n        }\n        Object.defineProperty(CountQueuingStrategy.prototype, \"highWaterMark\", {\n            /**\n             * Returns the high water mark provided to the constructor.\n             */\n            get: function () {\n                if (!IsCountQueuingStrategy(this)) {\n                    throw countBrandCheckException('highWaterMark');\n                }\n                return this._countQueuingStrategyHighWaterMark;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(CountQueuingStrategy.prototype, \"size\", {\n            /**\n             * Measures the size of `chunk` by always returning 1.\n             * This ensures that the total queue size is a count of the number of chunks in the queue.\n             */\n            get: function () {\n                if (!IsCountQueuingStrategy(this)) {\n                    throw countBrandCheckException('size');\n                }\n                return countSizeFunction;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return CountQueuingStrategy;\n    }());\n    Object.defineProperties(CountQueuingStrategy.prototype, {\n        highWaterMark: { enumerable: true },\n        size: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n            value: 'CountQueuingStrategy',\n            configurable: true\n        });\n    }\n    // Helper functions for the CountQueuingStrategy.\n    function countBrandCheckException(name) {\n        return new TypeError(\"CountQueuingStrategy.prototype.\" + name + \" can only be used on a CountQueuingStrategy\");\n    }\n    function IsCountQueuingStrategy(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n            return false;\n        }\n        return x instanceof CountQueuingStrategy;\n    }\n\n    function convertTransformer(original, context) {\n        assertDictionary(original, context);\n        var flush = original === null || original === void 0 ? void 0 : original.flush;\n        var readableType = original === null || original === void 0 ? void 0 : original.readableType;\n        var start = original === null || original === void 0 ? void 0 : original.start;\n        var transform = original === null || original === void 0 ? void 0 : original.transform;\n        var writableType = original === null || original === void 0 ? void 0 : original.writableType;\n        return {\n            flush: flush === undefined ?\n                undefined :\n                convertTransformerFlushCallback(flush, original, context + \" has member 'flush' that\"),\n            readableType: readableType,\n            start: start === undefined ?\n                undefined :\n                convertTransformerStartCallback(start, original, context + \" has member 'start' that\"),\n            transform: transform === undefined ?\n                undefined :\n                convertTransformerTransformCallback(transform, original, context + \" has member 'transform' that\"),\n            writableType: writableType\n        };\n    }\n    function convertTransformerFlushCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return promiseCall(fn, original, [controller]); };\n    }\n    function convertTransformerStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (controller) { return reflectCall(fn, original, [controller]); };\n    }\n    function convertTransformerTransformCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return function (chunk, controller) { return promiseCall(fn, original, [chunk, controller]); };\n    }\n\n    // Class TransformStream\n    /**\n     * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n     * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n     * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n     * made available for reading from the readable side.\n     *\n     * @public\n     */\n    var TransformStream = /** @class */ (function () {\n        function TransformStream(rawTransformer, rawWritableStrategy, rawReadableStrategy) {\n            if (rawTransformer === void 0) { rawTransformer = {}; }\n            if (rawWritableStrategy === void 0) { rawWritableStrategy = {}; }\n            if (rawReadableStrategy === void 0) { rawReadableStrategy = {}; }\n            if (rawTransformer === undefined) {\n                rawTransformer = null;\n            }\n            var writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n            var readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n            var transformer = convertTransformer(rawTransformer, 'First parameter');\n            if (transformer.readableType !== undefined) {\n                throw new RangeError('Invalid readableType specified');\n            }\n            if (transformer.writableType !== undefined) {\n                throw new RangeError('Invalid writableType specified');\n            }\n            var readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n            var readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n            var writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n            var writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n            var startPromise_resolve;\n            var startPromise = newPromise(function (resolve) {\n                startPromise_resolve = resolve;\n            });\n            InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n            SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n            if (transformer.start !== undefined) {\n                startPromise_resolve(transformer.start(this._transformStreamController));\n            }\n            else {\n                startPromise_resolve(undefined);\n            }\n        }\n        Object.defineProperty(TransformStream.prototype, \"readable\", {\n            /**\n             * The readable side of the transform stream.\n             */\n            get: function () {\n                if (!IsTransformStream(this)) {\n                    throw streamBrandCheckException('readable');\n                }\n                return this._readable;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(TransformStream.prototype, \"writable\", {\n            /**\n             * The writable side of the transform stream.\n             */\n            get: function () {\n                if (!IsTransformStream(this)) {\n                    throw streamBrandCheckException('writable');\n                }\n                return this._writable;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        return TransformStream;\n    }());\n    Object.defineProperties(TransformStream.prototype, {\n        readable: { enumerable: true },\n        writable: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n            value: 'TransformStream',\n            configurable: true\n        });\n    }\n    function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n        function startAlgorithm() {\n            return startPromise;\n        }\n        function writeAlgorithm(chunk) {\n            return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n        }\n        function abortAlgorithm(reason) {\n            return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n        }\n        function closeAlgorithm() {\n            return TransformStreamDefaultSinkCloseAlgorithm(stream);\n        }\n        stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n        function pullAlgorithm() {\n            return TransformStreamDefaultSourcePullAlgorithm(stream);\n        }\n        function cancelAlgorithm(reason) {\n            TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n            return promiseResolvedWith(undefined);\n        }\n        stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n        // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n        stream._backpressure = undefined;\n        stream._backpressureChangePromise = undefined;\n        stream._backpressureChangePromise_resolve = undefined;\n        TransformStreamSetBackpressure(stream, true);\n        stream._transformStreamController = undefined;\n    }\n    function IsTransformStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n            return false;\n        }\n        return x instanceof TransformStream;\n    }\n    // This is a no-op if both sides are already errored.\n    function TransformStreamError(stream, e) {\n        ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n        TransformStreamErrorWritableAndUnblockWrite(stream, e);\n    }\n    function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n        TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n        WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n        if (stream._backpressure) {\n            // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n            // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n            // _backpressure is set.\n            TransformStreamSetBackpressure(stream, false);\n        }\n    }\n    function TransformStreamSetBackpressure(stream, backpressure) {\n        // Passes also when called during construction.\n        if (stream._backpressureChangePromise !== undefined) {\n            stream._backpressureChangePromise_resolve();\n        }\n        stream._backpressureChangePromise = newPromise(function (resolve) {\n            stream._backpressureChangePromise_resolve = resolve;\n        });\n        stream._backpressure = backpressure;\n    }\n    // Class TransformStreamDefaultController\n    /**\n     * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n     *\n     * @public\n     */\n    var TransformStreamDefaultController = /** @class */ (function () {\n        function TransformStreamDefaultController() {\n            throw new TypeError('Illegal constructor');\n        }\n        Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\n            /**\n             * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n             */\n            get: function () {\n                if (!IsTransformStreamDefaultController(this)) {\n                    throw defaultControllerBrandCheckException('desiredSize');\n                }\n                var readableController = this._controlledTransformStream._readable._readableStreamController;\n                return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n            },\n            enumerable: false,\n            configurable: true\n        });\n        TransformStreamDefaultController.prototype.enqueue = function (chunk) {\n            if (chunk === void 0) { chunk = undefined; }\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('enqueue');\n            }\n            TransformStreamDefaultControllerEnqueue(this, chunk);\n        };\n        /**\n         * Errors both the readable side and the writable side of the controlled transform stream, making all future\n         * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n         */\n        TransformStreamDefaultController.prototype.error = function (reason) {\n            if (reason === void 0) { reason = undefined; }\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('error');\n            }\n            TransformStreamDefaultControllerError(this, reason);\n        };\n        /**\n         * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n         * transformer only needs to consume a portion of the chunks written to the writable side.\n         */\n        TransformStreamDefaultController.prototype.terminate = function () {\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('terminate');\n            }\n            TransformStreamDefaultControllerTerminate(this);\n        };\n        return TransformStreamDefaultController;\n    }());\n    Object.defineProperties(TransformStreamDefaultController.prototype, {\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        terminate: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n        Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n            value: 'TransformStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Transform Stream Default Controller Abstract Operations\n    function IsTransformStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n            return false;\n        }\n        return x instanceof TransformStreamDefaultController;\n    }\n    function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n        controller._controlledTransformStream = stream;\n        stream._transformStreamController = controller;\n        controller._transformAlgorithm = transformAlgorithm;\n        controller._flushAlgorithm = flushAlgorithm;\n    }\n    function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n        var controller = Object.create(TransformStreamDefaultController.prototype);\n        var transformAlgorithm = function (chunk) {\n            try {\n                TransformStreamDefaultControllerEnqueue(controller, chunk);\n                return promiseResolvedWith(undefined);\n            }\n            catch (transformResultE) {\n                return promiseRejectedWith(transformResultE);\n            }\n        };\n        var flushAlgorithm = function () { return promiseResolvedWith(undefined); };\n        if (transformer.transform !== undefined) {\n            transformAlgorithm = function (chunk) { return transformer.transform(chunk, controller); };\n        }\n        if (transformer.flush !== undefined) {\n            flushAlgorithm = function () { return transformer.flush(controller); };\n        }\n        SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n    }\n    function TransformStreamDefaultControllerClearAlgorithms(controller) {\n        controller._transformAlgorithm = undefined;\n        controller._flushAlgorithm = undefined;\n    }\n    function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n            throw new TypeError('Readable side is not in a state that permits enqueue');\n        }\n        // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n        // accept TransformStreamDefaultControllerEnqueue() calls.\n        try {\n            ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n        }\n        catch (e) {\n            // This happens when readableStrategy.size() throws.\n            TransformStreamErrorWritableAndUnblockWrite(stream, e);\n            throw stream._readable._storedError;\n        }\n        var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n        if (backpressure !== stream._backpressure) {\n            TransformStreamSetBackpressure(stream, true);\n        }\n    }\n    function TransformStreamDefaultControllerError(controller, e) {\n        TransformStreamError(controller._controlledTransformStream, e);\n    }\n    function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n        var transformPromise = controller._transformAlgorithm(chunk);\n        return transformPromiseWith(transformPromise, undefined, function (r) {\n            TransformStreamError(controller._controlledTransformStream, r);\n            throw r;\n        });\n    }\n    function TransformStreamDefaultControllerTerminate(controller) {\n        var stream = controller._controlledTransformStream;\n        var readableController = stream._readable._readableStreamController;\n        ReadableStreamDefaultControllerClose(readableController);\n        var error = new TypeError('TransformStream terminated');\n        TransformStreamErrorWritableAndUnblockWrite(stream, error);\n    }\n    // TransformStreamDefaultSink Algorithms\n    function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n        var controller = stream._transformStreamController;\n        if (stream._backpressure) {\n            var backpressureChangePromise = stream._backpressureChangePromise;\n            return transformPromiseWith(backpressureChangePromise, function () {\n                var writable = stream._writable;\n                var state = writable._state;\n                if (state === 'erroring') {\n                    throw writable._storedError;\n                }\n                return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n            });\n        }\n        return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n    }\n    function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n        // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n        // errored.\n        TransformStreamError(stream, reason);\n        return promiseResolvedWith(undefined);\n    }\n    function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        var readable = stream._readable;\n        var controller = stream._transformStreamController;\n        var flushPromise = controller._flushAlgorithm();\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        // Return a promise that is fulfilled with undefined on success.\n        return transformPromiseWith(flushPromise, function () {\n            if (readable._state === 'errored') {\n                throw readable._storedError;\n            }\n            ReadableStreamDefaultControllerClose(readable._readableStreamController);\n        }, function (r) {\n            TransformStreamError(stream, r);\n            throw readable._storedError;\n        });\n    }\n    // TransformStreamDefaultSource Algorithms\n    function TransformStreamDefaultSourcePullAlgorithm(stream) {\n        // Invariant. Enforced by the promises returned by start() and pull().\n        TransformStreamSetBackpressure(stream, false);\n        // Prevent the next pull() call until there is backpressure.\n        return stream._backpressureChangePromise;\n    }\n    // Helper functions for the TransformStreamDefaultController.\n    function defaultControllerBrandCheckException(name) {\n        return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\n    }\n    // Helper functions for the TransformStream.\n    function streamBrandCheckException(name) {\n        return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\n    }\n\n    exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n    exports.CountQueuingStrategy = CountQueuingStrategy;\n    exports.ReadableByteStreamController = ReadableByteStreamController;\n    exports.ReadableStream = ReadableStream;\n    exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n    exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n    exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n    exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n    exports.TransformStream = TransformStream;\n    exports.TransformStreamDefaultController = TransformStreamDefaultController;\n    exports.WritableStream = WritableStream;\n    exports.WritableStreamDefaultController = WritableStreamDefaultController;\n    exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CMapCompressionType, unreachable } from \"../shared/util.js\";\n\nclass BaseCanvasFactory {\n  constructor() {\n    if (this.constructor === BaseCanvasFactory) {\n      unreachable(\"Cannot initialize BaseCanvasFactory.\");\n    }\n  }\n\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    const canvas = this._createCanvas(width, height);\n    return {\n      canvas,\n      context: canvas.getContext(\"2d\"),\n    };\n  }\n\n  reset(canvasAndContext, width, height) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    canvasAndContext.canvas.width = width;\n    canvasAndContext.canvas.height = height;\n  }\n\n  destroy(canvasAndContext) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    // Zeroing the width and height cause Firefox to release graphics\n    // resources immediately, which can greatly reduce memory consumption.\n    canvasAndContext.canvas.width = 0;\n    canvasAndContext.canvas.height = 0;\n    canvasAndContext.canvas = null;\n    canvasAndContext.context = null;\n  }\n\n  /**\n   * @private\n   */\n  _createCanvas(width, height) {\n    unreachable(\"Abstract method `_createCanvas` called.\");\n  }\n}\n\nclass BaseCMapReaderFactory {\n  constructor({ baseUrl = null, isCompressed = false }) {\n    if (this.constructor === BaseCMapReaderFactory) {\n      unreachable(\"Cannot initialize BaseCMapReaderFactory.\");\n    }\n    this.baseUrl = baseUrl;\n    this.isCompressed = isCompressed;\n  }\n\n  async fetch({ name }) {\n    if (!this.baseUrl) {\n      throw new Error(\n        'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n          'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'\n      );\n    }\n    if (!name) {\n      throw new Error(\"CMap name must be specified.\");\n    }\n    const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n    const compressionType = this.isCompressed\n      ? CMapCompressionType.BINARY\n      : CMapCompressionType.NONE;\n\n    return this._fetchData(url, compressionType).catch(reason => {\n      throw new Error(\n        `Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`\n      );\n    });\n  }\n\n  /**\n   * @private\n   */\n  _fetchData(url, compressionType) {\n    unreachable(\"Abstract method `_fetchData` called.\");\n  }\n}\n\nclass BaseStandardFontDataFactory {\n  constructor({ baseUrl = null }) {\n    if (this.constructor === BaseStandardFontDataFactory) {\n      unreachable(\"Cannot initialize BaseStandardFontDataFactory.\");\n    }\n    this.baseUrl = baseUrl;\n  }\n\n  async fetch({ filename }) {\n    if (!this.baseUrl) {\n      throw new Error(\n        'The standard font \"baseUrl\" parameter must be specified, ensure that ' +\n          'the \"standardFontDataUrl\" API parameter is provided.'\n      );\n    }\n    if (!filename) {\n      throw new Error(\"Font filename must be specified.\");\n    }\n    const url = `${this.baseUrl}${filename}`;\n\n    return this._fetchData(url).catch(reason => {\n      throw new Error(`Unable to load font data at: ${url}`);\n    });\n  }\n\n  /**\n   * @private\n   */\n  _fetchData(url) {\n    unreachable(\"Abstract method `_fetchData` called.\");\n  }\n}\n\nclass BaseSVGFactory {\n  constructor() {\n    if (this.constructor === BaseSVGFactory) {\n      unreachable(\"Cannot initialize BaseSVGFactory.\");\n    }\n  }\n\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid SVG dimensions\");\n    }\n    const svg = this._createSVG(\"svg:svg\");\n    svg.setAttribute(\"version\", \"1.1\");\n    svg.setAttribute(\"width\", `${width}px`);\n    svg.setAttribute(\"height\", `${height}px`);\n    svg.setAttribute(\"preserveAspectRatio\", \"none\");\n    svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n\n    return svg;\n  }\n\n  createElement(type) {\n    if (typeof type !== \"string\") {\n      throw new Error(\"Invalid SVG element type\");\n    }\n    return this._createSVG(type);\n  }\n\n  /**\n   * @private\n   */\n  _createSVG(type) {\n    unreachable(\"Abstract method `_createSVG` called.\");\n  }\n}\n\nexport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseStandardFontDataFactory,\n  BaseSVGFactory,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n  AbortException,\n  AnnotationMode,\n  assert,\n  createPromiseCapability,\n  getVerbosityLevel,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isSameOrigin,\n  MissingPDFException,\n  PasswordException,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  stringToBytes,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  deprecated,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMStandardFontDataFactory,\n  isDataScheme,\n  loadScript,\n  PageViewport,\n  RenderingCancelledException,\n  StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport {\n  NodeCanvasFactory,\n  NodeCMapReaderFactory,\n  NodeStandardFontDataFactory,\n} from \"./node_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nconst DefaultCanvasFactory =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n    ? NodeCanvasFactory\n    : DOMCanvasFactory;\nconst DefaultCMapReaderFactory =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n    ? NodeCMapReaderFactory\n    : DOMCMapReaderFactory;\nconst DefaultStandardFontDataFactory =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS\n    ? NodeStandardFontDataFactory\n    : DOMStandardFontDataFactory;\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n *   parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n *   {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type IPDFStreamFactory\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n *   that takes document initialization parameters (including a \"url\") and\n *   returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n  createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n *            Int16Array | Uint16Array |\n *            Int32Array | Uint32Array | Float32Array |\n *            Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string|URL} [url] - The URL of the PDF.\n * @property {TypedArray|Array<number>|string} [data] - Binary PDF data. Use\n *    typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n *    BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n *   cross-site Access-Control requests should be made using credentials such\n *   as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n *   or all of the pdf data. Used by the extension since some data is already\n *   loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n *   reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n *   transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n *   per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n *   parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n *   from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n *   attempting to recover valid absolute URLs for annotations, and outline\n *   items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n *   located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n *   packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n *   reading built-in CMap files. Providing a custom factory is useful for\n *   environments without Fetch API or `XMLHttpRequest` support, such as\n *   Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n *   embedded in the PDF document will fallback to a system font.\n *   The default value is `true` in web environments and `false` in Node.js;\n *   unless `disableFontFace === true` in which case this defaults to `false`\n *   regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n *   files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n *   when reading the standard font files. Providing a custom factory is useful\n *   for environments without Fetch API or `XMLHttpRequest` support, such as\n *   Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n *   worker-thread when reading CMap and standard font files. When `true`,\n *   the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n *   The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n *   `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n *   PDF data cannot be successfully parsed, instead of attempting to recover\n *   whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n *   pixels, i.e. width * height. Images above this value will not be rendered.\n *   Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n *   as JavaScript. Primarily used to improve performance of font rendering, and\n *   when parsing PDF functions. The default value is `true`.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n *   OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n *   If disabled, fonts will be rendered using a built-in font renderer that\n *   constructs the glyphs with primitive path commands.\n *   The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n *   which are unused during rendering of PDF documents, when exporting the\n *   parsed font data from the worker-thread. This may be useful for debugging\n *   purposes (and backwards compatibility), but note that it will lead to\n *   increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n *   The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n *   context to create elements with and to load resources, such as fonts,\n *   into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n *   files. When enabled, and if the server supports partial content requests,\n *   then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n *   By default PDF.js attempts to load PDF files in chunks. The default value\n *   is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n *   data. When range requests are enabled PDF.js will automatically keep\n *   fetching more data even if it isn't needed to display the current page.\n *   The default value is `false`.\n *\n *   NOTE: It is also necessary to disable streaming, see above, in order for\n *   disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n *   (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string|URL|TypedArray|PDFDataRangeTransport|DocumentInitParameters}\n *   src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n *         already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n  const task = new PDFDocumentLoadingTask();\n\n  let source;\n  if (typeof src === \"string\" || src instanceof URL) {\n    source = { url: src };\n  } else if (isArrayBuffer(src)) {\n    source = { data: src };\n  } else if (src instanceof PDFDataRangeTransport) {\n    source = { range: src };\n  } else {\n    if (typeof src !== \"object\") {\n      throw new Error(\n        \"Invalid parameter in getDocument, \" +\n          \"need either string, URL, Uint8Array, or parameter object.\"\n      );\n    }\n    if (!src.url && !src.data && !src.range) {\n      throw new Error(\n        \"Invalid parameter object: need either .data, .range or .url\"\n      );\n    }\n    source = src;\n  }\n  const params = Object.create(null);\n  let rangeTransport = null,\n    worker = null;\n\n  for (const key in source) {\n    const value = source[key];\n\n    switch (key) {\n      case \"url\":\n        if (typeof window !== \"undefined\") {\n          try {\n            // The full path is required in the 'url' field.\n            params[key] = new URL(value, window.location).href;\n            continue;\n          } catch (ex) {\n            warn(`Cannot create valid URL: \"${ex}\".`);\n          }\n        } else if (typeof value === \"string\" || value instanceof URL) {\n          params[key] = value.toString(); // Support Node.js environments.\n          continue;\n        }\n        throw new Error(\n          \"Invalid PDF url data: \" +\n            \"either string or URL-object is expected in the url property.\"\n        );\n      case \"range\":\n        rangeTransport = value;\n        continue;\n      case \"worker\":\n        worker = value;\n        continue;\n      case \"data\":\n        // Converting string or array-like data to Uint8Array.\n        if (\n          typeof PDFJSDev !== \"undefined\" &&\n          PDFJSDev.test(\"GENERIC\") &&\n          isNodeJS &&\n          typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n          value instanceof Buffer // eslint-disable-line no-undef\n        ) {\n          params[key] = new Uint8Array(value);\n        } else if (value instanceof Uint8Array) {\n          break; // Use the data as-is when it's already a Uint8Array.\n        } else if (typeof value === \"string\") {\n          params[key] = stringToBytes(value);\n        } else if (\n          typeof value === \"object\" &&\n          value !== null &&\n          !isNaN(value.length)\n        ) {\n          params[key] = new Uint8Array(value);\n        } else if (isArrayBuffer(value)) {\n          params[key] = new Uint8Array(value);\n        } else {\n          throw new Error(\n            \"Invalid PDF binary data: either typed array, \" +\n              \"string, or array-like object is expected in the data property.\"\n          );\n        }\n        continue;\n    }\n    params[key] = value;\n  }\n\n  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n  params.CMapReaderFactory =\n    params.CMapReaderFactory || DefaultCMapReaderFactory;\n  params.StandardFontDataFactory =\n    params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n  params.ignoreErrors = params.stopAtErrors !== true;\n  params.fontExtraProperties = params.fontExtraProperties === true;\n  params.pdfBug = params.pdfBug === true;\n  params.enableXfa = params.enableXfa === true;\n\n  if (\n    typeof params.docBaseUrl !== \"string\" ||\n    isDataScheme(params.docBaseUrl)\n  ) {\n    // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n    // URLs anyway. We want to avoid sending them to the worker-thread, since\n    // they contain the *entire* PDF document and can thus be arbitrarily long.\n    params.docBaseUrl = null;\n  }\n  if (!Number.isInteger(params.maxImageSize)) {\n    params.maxImageSize = -1;\n  }\n  if (typeof params.useWorkerFetch !== \"boolean\") {\n    params.useWorkerFetch =\n      params.CMapReaderFactory === DOMCMapReaderFactory &&\n      params.StandardFontDataFactory === DOMStandardFontDataFactory;\n  }\n  if (typeof params.isEvalSupported !== \"boolean\") {\n    params.isEvalSupported = true;\n  }\n  if (typeof params.disableFontFace !== \"boolean\") {\n    params.disableFontFace =\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS;\n  }\n  if (typeof params.useSystemFonts !== \"boolean\") {\n    params.useSystemFonts =\n      !(\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n        isNodeJS\n      ) && !params.disableFontFace;\n  }\n  if (typeof params.ownerDocument === \"undefined\") {\n    params.ownerDocument = globalThis.document;\n  }\n\n  if (typeof params.disableRange !== \"boolean\") {\n    params.disableRange = false;\n  }\n  if (typeof params.disableStream !== \"boolean\") {\n    params.disableStream = false;\n  }\n  if (typeof params.disableAutoFetch !== \"boolean\") {\n    params.disableAutoFetch = false;\n  }\n\n  // Set the main-thread verbosity level.\n  setVerbosityLevel(params.verbosity);\n\n  if (!worker) {\n    const workerParams = {\n      verbosity: params.verbosity,\n      port: GlobalWorkerOptions.workerPort,\n    };\n    // Worker was not provided -- creating and owning our own. If message port\n    // is specified in global worker options, using it.\n    worker = workerParams.port\n      ? PDFWorker.fromPort(workerParams)\n      : new PDFWorker(workerParams);\n    task._worker = worker;\n  }\n  const docId = task.docId;\n  worker.promise\n    .then(function () {\n      if (task.destroyed) {\n        throw new Error(\"Loading aborted\");\n      }\n\n      const workerIdPromise = _fetchDocument(\n        worker,\n        params,\n        rangeTransport,\n        docId\n      );\n      const networkStreamPromise = new Promise(function (resolve) {\n        let networkStream;\n        if (rangeTransport) {\n          networkStream = new PDFDataTransportStream(\n            {\n              length: params.length,\n              initialData: params.initialData,\n              progressiveDone: params.progressiveDone,\n              contentDispositionFilename: params.contentDispositionFilename,\n              disableRange: params.disableRange,\n              disableStream: params.disableStream,\n            },\n            rangeTransport\n          );\n        } else if (!params.data) {\n          networkStream = createPDFNetworkStream({\n            url: params.url,\n            length: params.length,\n            httpHeaders: params.httpHeaders,\n            withCredentials: params.withCredentials,\n            rangeChunkSize: params.rangeChunkSize,\n            disableRange: params.disableRange,\n            disableStream: params.disableStream,\n          });\n        }\n        resolve(networkStream);\n      });\n\n      return Promise.all([workerIdPromise, networkStreamPromise]).then(\n        function ([workerId, networkStream]) {\n          if (task.destroyed) {\n            throw new Error(\"Loading aborted\");\n          }\n\n          const messageHandler = new MessageHandler(\n            docId,\n            workerId,\n            worker.port\n          );\n          const transport = new WorkerTransport(\n            messageHandler,\n            task,\n            networkStream,\n            params\n          );\n          task._transport = transport;\n          messageHandler.send(\"Ready\", null);\n        }\n      );\n    })\n    .catch(task._capability.reject);\n\n  return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise<string>} A promise that is resolved when the worker ID of\n *   the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n\n  if (pdfDataRangeTransport) {\n    source.length = pdfDataRangeTransport.length;\n    source.initialData = pdfDataRangeTransport.initialData;\n    source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n    source.contentDispositionFilename =\n      pdfDataRangeTransport.contentDispositionFilename;\n  }\n  const workerId = await worker.messageHandler.sendWithPromise(\n    \"GetDocRequest\",\n    {\n      docId,\n      apiVersion:\n        typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n          ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n          : null,\n      // Only send the required properties, and *not* the entire object.\n      source: {\n        data: source.data,\n        url: source.url,\n        password: source.password,\n        disableAutoFetch: source.disableAutoFetch,\n        rangeChunkSize: source.rangeChunkSize,\n        length: source.length,\n      },\n      maxImageSize: source.maxImageSize,\n      disableFontFace: source.disableFontFace,\n      docBaseUrl: source.docBaseUrl,\n      ignoreErrors: source.ignoreErrors,\n      isEvalSupported: source.isEvalSupported,\n      fontExtraProperties: source.fontExtraProperties,\n      enableXfa: source.enableXfa,\n      useSystemFonts: source.useSystemFonts,\n      cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n      standardFontDataUrl: source.useWorkerFetch\n        ? source.standardFontDataUrl\n        : null,\n    }\n  );\n\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n  return workerId;\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n  static get idCounters() {\n    return shadow(this, \"idCounters\", { doc: 0 });\n  }\n\n  constructor() {\n    this._capability = createPromiseCapability();\n    this._transport = null;\n    this._worker = null;\n\n    /**\n     * Unique identifier for the document loading task.\n     * @type {string}\n     */\n    this.docId = `d${PDFDocumentLoadingTask.idCounters.doc++}`;\n\n    /**\n     * Whether the loading task is destroyed or not.\n     * @type {boolean}\n     */\n    this.destroyed = false;\n\n    /**\n     * Callback to request a password if a wrong or no password was provided.\n     * The callback receives two parameters: a function that should be called\n     * with the new password, and a reason (see {@link PasswordResponses}).\n     * @type {function}\n     */\n    this.onPassword = null;\n\n    /**\n     * Callback to be able to monitor the loading progress of the PDF file\n     * (necessary to implement e.g. a loading bar).\n     * The callback receives an {@link OnProgressParameters} argument.\n     * @type {function}\n     */\n    this.onProgress = null;\n\n    /**\n     * Callback for when an unsupported feature is used in the PDF document.\n     * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n     * @type {function}\n     */\n    this.onUnsupportedFeature = null;\n  }\n\n  /**\n   * Promise for document loading task completion.\n   * @type {Promise<PDFDocumentProxy>}\n   */\n  get promise() {\n    return this._capability.promise;\n  }\n\n  /**\n   * Abort all network requests and destroy the worker.\n   * @returns {Promise<void>} A promise that is resolved when destruction is\n   *   completed.\n   */\n  async destroy() {\n    this.destroyed = true;\n    await this._transport?.destroy();\n\n    this._transport = null;\n    if (this._worker) {\n      this._worker.destroy();\n      this._worker = null;\n    }\n  }\n}\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n  /**\n   * @param {number} length\n   * @param {Uint8Array} initialData\n   * @param {boolean} [progressiveDone]\n   * @param {string} [contentDispositionFilename]\n   */\n  constructor(\n    length,\n    initialData,\n    progressiveDone = false,\n    contentDispositionFilename = null\n  ) {\n    this.length = length;\n    this.initialData = initialData;\n    this.progressiveDone = progressiveDone;\n    this.contentDispositionFilename = contentDispositionFilename;\n\n    this._rangeListeners = [];\n    this._progressListeners = [];\n    this._progressiveReadListeners = [];\n    this._progressiveDoneListeners = [];\n    this._readyCapability = createPromiseCapability();\n  }\n\n  addRangeListener(listener) {\n    this._rangeListeners.push(listener);\n  }\n\n  addProgressListener(listener) {\n    this._progressListeners.push(listener);\n  }\n\n  addProgressiveReadListener(listener) {\n    this._progressiveReadListeners.push(listener);\n  }\n\n  addProgressiveDoneListener(listener) {\n    this._progressiveDoneListeners.push(listener);\n  }\n\n  onDataRange(begin, chunk) {\n    for (const listener of this._rangeListeners) {\n      listener(begin, chunk);\n    }\n  }\n\n  onDataProgress(loaded, total) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressListeners) {\n        listener(loaded, total);\n      }\n    });\n  }\n\n  onDataProgressiveRead(chunk) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveReadListeners) {\n        listener(chunk);\n      }\n    });\n  }\n\n  onDataProgressiveDone() {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveDoneListeners) {\n        listener();\n      }\n    });\n  }\n\n  transportReady() {\n    this._readyCapability.resolve();\n  }\n\n  requestDataRange(begin, end) {\n    unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n  }\n\n  abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n  constructor(pdfInfo, transport) {\n    this._pdfInfo = pdfInfo;\n    this._transport = transport;\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n      Object.defineProperty(this, \"fingerprint\", {\n        get() {\n          deprecated(\n            \"`PDFDocumentProxy.fingerprint`, \" +\n              \"please use `PDFDocumentProxy.fingerprints` instead.\"\n          );\n          return this.fingerprints[0];\n        },\n      });\n\n      Object.defineProperty(this, \"getStats\", {\n        value: async () => {\n          deprecated(\n            \"`PDFDocumentProxy.getStats`, \" +\n              \"please use the `PDFDocumentProxy.stats`-getter instead.\"\n          );\n          return this.stats || { streamTypes: {}, fontTypes: {} };\n        },\n      });\n    }\n  }\n\n  /**\n   * @type {AnnotationStorage} Storage for annotation data in forms.\n   */\n  get annotationStorage() {\n    return this._transport.annotationStorage;\n  }\n\n  /**\n   * @type {number} Total number of pages in the PDF file.\n   */\n  get numPages() {\n    return this._pdfInfo.numPages;\n  }\n\n  /**\n   * @type {Array<string, string|null>} A (not guaranteed to be) unique ID to\n   *   identify the PDF document.\n   *   NOTE: The first element will always be defined for all PDF documents,\n   *   whereas the second element is only defined for *modified* PDF documents.\n   */\n  get fingerprints() {\n    return this._pdfInfo.fingerprints;\n  }\n\n  /**\n   * @typedef {Object} PDFDocumentStats\n   * @property {Object<string, boolean>} streamTypes - Used stream types in the\n   *   document (an item is set to true if specific stream ID was used in the\n   *   document).\n   * @property {Object<string, boolean>} fontTypes - Used font types in the\n   *   document (an item is set to true if specific font ID was used in the\n   *   document).\n   */\n\n  /**\n   * @type {PDFDocumentStats | null} The current statistics about document\n   *   structures, or `null` when no statistics exists.\n   */\n  get stats() {\n    return this._transport.stats;\n  }\n\n  /**\n   * @type {boolean} True if only XFA form.\n   */\n  get isPureXfa() {\n    return !!this._transport._htmlForXfa;\n  }\n\n  /**\n   * NOTE: This is (mostly) intended to support printing of XFA forms.\n   *\n   * @type {Object | null} An object representing a HTML tree structure\n   *   to render the XFA, or `null` when no XFA form exists.\n   */\n  get allXfaHtml() {\n    return this._transport._htmlForXfa;\n  }\n\n  /**\n   * @param {number} pageNumber - The page number to get. The first page is 1.\n   * @returns {Promise<PDFPageProxy>} A promise that is resolved with\n   *   a {@link PDFPageProxy} object.\n   */\n  getPage(pageNumber) {\n    return this._transport.getPage(pageNumber);\n  }\n\n  /**\n   * @param {RefProxy} ref - The page reference.\n   * @returns {Promise<number>} A promise that is resolved with the page index,\n   *   starting from zero, that is associated with the reference.\n   */\n  getPageIndex(ref) {\n    return this._transport.getPageIndex(ref);\n  }\n\n  /**\n   * @returns {Promise<Object<string, Array<any>>>} A promise that is resolved\n   *   with a mapping from named destinations to references.\n   *\n   * This can be slow for large documents. Use `getDestination` instead.\n   */\n  getDestinations() {\n    return this._transport.getDestinations();\n  }\n\n  /**\n   * @param {string} id - The named destination to get.\n   * @returns {Promise<Array<any> | null>} A promise that is resolved with all\n   *   information of the given named destination, or `null` when the named\n   *   destination is not present in the PDF file.\n   */\n  getDestination(id) {\n    return this._transport.getDestination(id);\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with\n   *   an {Array} containing the page labels that correspond to the page\n   *   indexes, or `null` when no page labels are present in the PDF file.\n   */\n  getPageLabels() {\n    return this._transport.getPageLabels();\n  }\n\n  /**\n   * @returns {Promise<string>} A promise that is resolved with a {string}\n   *   containing the page layout name.\n   */\n  getPageLayout() {\n    return this._transport.getPageLayout();\n  }\n\n  /**\n   * @returns {Promise<string>} A promise that is resolved with a {string}\n   *   containing the page mode name.\n   */\n  getPageMode() {\n    return this._transport.getPageMode();\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with an\n   *   {Object} containing the viewer preferences, or `null` when no viewer\n   *   preferences are present in the PDF file.\n   */\n  getViewerPreferences() {\n    return this._transport.getViewerPreferences();\n  }\n\n  /**\n   * @returns {Promise<any | null>} A promise that is resolved with an {Array}\n   *   containing the destination, or `null` when no open action is present\n   *   in the PDF.\n   */\n  getOpenAction() {\n    return this._transport.getOpenAction();\n  }\n\n  /**\n   * @returns {Promise<any>} A promise that is resolved with a lookup table\n   *   for mapping named attachments to their content.\n   */\n  getAttachments() {\n    return this._transport.getAttachments();\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with\n   *   an {Array} of all the JavaScript strings in the name tree, or `null`\n   *   if no JavaScript exists.\n   */\n  getJavaScript() {\n    return this._transport.getJavaScript();\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with\n   *   an {Object} with the JavaScript actions:\n   *     - from the name tree (like getJavaScript);\n   *     - from A or AA entries in the catalog dictionary.\n   *   , or `null` if no JavaScript exists.\n   */\n  getJSActions() {\n    return this._transport.getDocJSActions();\n  }\n\n  /**\n   * @typedef {Object} OutlineNode\n   * @property {string} title\n   * @property {boolean} bold\n   * @property {boolean} italic\n   * @property {Uint8ClampedArray} color - The color in RGB format to use for\n   *   display purposes.\n   * @property {string | Array<any> | null} dest\n   * @property {string | null} url\n   * @property {string | undefined} unsafeUrl\n   * @property {boolean | undefined} newWindow\n   * @property {number | undefined} count\n   * @property {Array<OutlineNode>} items\n   */\n\n  /**\n   * @returns {Promise<Array<OutlineNode>>} A promise that is resolved with an\n   *   {Array} that is a tree outline (if it has one) of the PDF file.\n   */\n  getOutline() {\n    return this._transport.getOutline();\n  }\n\n  /**\n   * @returns {Promise<OptionalContentConfig>} A promise that is resolved with\n   *   an {@link OptionalContentConfig} that contains all the optional content\n   *   groups (assuming that the document has any).\n   */\n  getOptionalContentConfig() {\n    return this._transport.getOptionalContentConfig();\n  }\n\n  /**\n   * @returns {Promise<Array<number> | null>} A promise that is resolved with\n   *   an {Array} that contains the permission flags for the PDF document, or\n   *   `null` when no permissions are present in the PDF file.\n   */\n  getPermissions() {\n    return this._transport.getPermissions();\n  }\n\n  /**\n   * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n   *   resolved with an {Object} that has `info` and `metadata` properties.\n   *   `info` is an {Object} filled with anything available in the information\n   *   dictionary and similarly `metadata` is a {Metadata} object with\n   *   information from the metadata section of the PDF.\n   */\n  getMetadata() {\n    return this._transport.getMetadata();\n  }\n\n  /**\n   * @typedef {Object} MarkInfo\n   * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n   * @property {boolean} Marked\n   * @property {boolean} UserProperties\n   * @property {boolean} Suspects\n   */\n\n  /**\n   * @returns {Promise<MarkInfo | null>} A promise that is resolved with\n   *   a {MarkInfo} object that contains the MarkInfo flags for the PDF\n   *   document, or `null` when no MarkInfo values are present in the PDF file.\n   */\n  getMarkInfo() {\n    return this._transport.getMarkInfo();\n  }\n\n  /**\n   * @returns {Promise<TypedArray>} A promise that is resolved with a\n   *   {TypedArray} that has the raw data from the PDF.\n   */\n  getData() {\n    return this._transport.getData();\n  }\n\n  /**\n   * @returns {Promise<{ length: number }>} A promise that is resolved when the\n   *   document's data is loaded. It is resolved with an {Object} that contains\n   *   the `length` property that indicates size of the PDF data in bytes.\n   */\n  getDownloadInfo() {\n    return this._transport.downloadInfoCapability.promise;\n  }\n\n  /**\n   * Cleans up resources allocated by the document on both the main and worker\n   * threads.\n   *\n   * NOTE: Do not, under any circumstances, call this method when rendering is\n   * currently ongoing since that may lead to rendering errors.\n   *\n   * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n   *   NOTE: This will increase persistent memory usage, hence don't use this\n   *   option unless absolutely necessary. The default value is `false`.\n   * @returns {Promise} A promise that is resolved when clean-up has finished.\n   */\n  cleanup(keepLoadedFonts = false) {\n    return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n  }\n\n  /**\n   * Destroys the current document instance and terminates the worker.\n   */\n  destroy() {\n    return this.loadingTask.destroy();\n  }\n\n  /**\n   * @type {DocumentInitParameters} A subset of the current\n   *   {DocumentInitParameters}, which are needed in the viewer.\n   */\n  get loadingParams() {\n    return this._transport.loadingParams;\n  }\n\n  /**\n   * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n   */\n  get loadingTask() {\n    return this._transport.loadingTask;\n  }\n\n  /**\n   * @returns {Promise<Uint8Array>} A promise that is resolved with a\n   *   {Uint8Array} containing the full data of the saved document.\n   */\n  saveDocument() {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n      this._transport.annotationStorage.size <= 0\n    ) {\n      deprecated(\n        \"saveDocument called while `annotationStorage` is empty, \" +\n          \"please use the getData-method instead.\"\n      );\n    }\n    return this._transport.saveDocument();\n  }\n\n  /**\n   * @returns {Promise<Object<string, Array<Object>> | null>} A promise that is\n   *   resolved with an {Object} containing /AcroForm field data for the JS\n   *   sandbox, or `null` when no field data is present in the PDF file.\n   */\n  getFieldObjects() {\n    return this._transport.getFieldObjects();\n  }\n\n  /**\n   * @returns {Promise<boolean>} A promise that is resolved with `true`\n   *   if some /AcroForm fields have JavaScript actions.\n   */\n  hasJSActions() {\n    return this._transport.hasJSActions();\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with an\n   *   {Array<string>} containing IDs of annotations that have a calculation\n   *   action, or `null` when no such annotations are present in the PDF file.\n   */\n  getCalculationOrderIds() {\n    return this._transport.getCalculationOrderIds();\n  }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n *   the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n *   The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n *   The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n *   flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - Replaces all occurrences of\n *   whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n *   same line {@link TextItem}'s. The default value is `false`.\n * @property {boolean} [includeMarkedContent] - When true include marked\n *   content items in the items array of TextContent. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array<TextItem | TextMarkedContent>} items - Array of\n *   {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n *   items are included when includeMarkedContent is true.\n * @property {Object<string, TextStyle>} styles - {@link TextStyle} objects,\n *   indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array<any>} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n *   line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n *   'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n *   'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n *   can be 'display' (viewable annotations), 'print' (printable annotations),\n *   or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n *   the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n *   or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n *   onto the canvas, for annotations with appearance-data; the values from\n *   {@link AnnotationMode} should be used. The following values are supported:\n *    - `AnnotationMode.DISABLE`, which disables all annotations.\n *    - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n *      it also depends on the `intent`-option, see above).\n *    - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n *      interactive form elements (those will be rendered in the display layer).\n *    - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n *      (as above) but where interactive form elements are updated with data\n *      from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n *   The default value is `AnnotationMode.ENABLE`.\n * @property {Array<any>} [transform] - Additional transform, applied just\n *   before viewport transform.\n * @property {Object} [imageLayer] - An object that has `beginLayout`,\n *   `endLayout` and `appendImage` functions.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n *   when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n *   Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n *   <color> value, a `CanvasGradient` object (a linear or radial gradient) or\n *   a `CanvasPattern` object (a repetitive image). The default value is\n *   'rgb(255,255,255)'.\n * @property {Promise<OptionalContentConfig>} [optionalContentConfigPromise] -\n *   A promise that should resolve with an {@link OptionalContentConfig}\n *   created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n *   the configuration will be fetched automatically with the default visibility\n *   states set.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap] - Map some\n *   annotation ids with canvases used to render them.\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n *   or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n *   in the operatorList, for annotations with appearance-data; the values from\n *   {@link AnnotationMode} should be used. The following values are supported:\n *    - `AnnotationMode.DISABLE`, which disables all annotations.\n *    - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n *      it also depends on the `intent`-option, see above).\n *    - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n *      interactive form elements (those will be rendered in the display layer).\n *    - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n *      (as above) but where interactive form elements are updated with data\n *      from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n *   The default value is `AnnotationMode.ENABLE`.\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array<StructTreeNode | StructTreeContent>} children - Array of\n *   {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n *   elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array<number>} fnArray - Array containing the operator functions.\n * @property {Array<any>} argsArray - Array containing the arguments of the\n *   functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n  constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n    this._pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this._ownerDocument = ownerDocument;\n    this._transport = transport;\n    this._stats = pdfBug ? new StatTimer() : null;\n    this._pdfBug = pdfBug;\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n\n    this.cleanupAfterRender = false;\n    this.pendingCleanup = false;\n    this._intentStates = new Map();\n    this._annotationPromises = new Map();\n    this.destroyed = false;\n  }\n\n  /**\n   * @type {number} Page number of the page. First page is 1.\n   */\n  get pageNumber() {\n    return this._pageIndex + 1;\n  }\n\n  /**\n   * @type {number} The number of degrees the page is rotated clockwise.\n   */\n  get rotate() {\n    return this._pageInfo.rotate;\n  }\n\n  /**\n   * @type {RefProxy | null} The reference that points to this page.\n   */\n  get ref() {\n    return this._pageInfo.ref;\n  }\n\n  /**\n   * @type {number} The default size of units in 1/72nds of an inch.\n   */\n  get userUnit() {\n    return this._pageInfo.userUnit;\n  }\n\n  /**\n   * @type {Array<number>} An array of the visible portion of the PDF page in\n   *   user space units [x1, y1, x2, y2].\n   */\n  get view() {\n    return this._pageInfo.view;\n  }\n\n  /**\n   * @param {GetViewportParameters} params - Viewport parameters.\n   * @returns {PageViewport} Contains 'width' and 'height' properties\n   *   along with transforms required for rendering.\n   */\n  getViewport({\n    scale,\n    rotation = this.rotate,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false,\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.view,\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * @param {GetAnnotationsParameters} params - Annotation parameters.\n   * @returns {Promise<Array<any>>} A promise that is resolved with an\n   *   {Array} of the annotation objects.\n   */\n  getAnnotations({ intent = \"display\" } = {}) {\n    const intentArgs = this._transport.getRenderingIntent(intent);\n\n    let promise = this._annotationPromises.get(intentArgs.cacheKey);\n    if (!promise) {\n      promise = this._transport.getAnnotations(\n        this._pageIndex,\n        intentArgs.renderingIntent\n      );\n      this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n      if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n        promise = promise.then(annotations => {\n          for (const annotation of annotations) {\n            if (annotation.titleObj !== undefined) {\n              Object.defineProperty(annotation, \"title\", {\n                get() {\n                  deprecated(\n                    \"`title`-property on annotation, please use `titleObj` instead.\"\n                  );\n                  return annotation.titleObj.str;\n                },\n              });\n            }\n            if (annotation.contentsObj !== undefined) {\n              Object.defineProperty(annotation, \"contents\", {\n                get() {\n                  deprecated(\n                    \"`contents`-property on annotation, please use `contentsObj` instead.\"\n                  );\n                  return annotation.contentsObj.str;\n                },\n              });\n            }\n          }\n          return annotations;\n        });\n      }\n    }\n    return promise;\n  }\n\n  /**\n   * @returns {Promise<Object>} A promise that is resolved with an\n   *   {Object} with JS actions.\n   */\n  getJSActions() {\n    return (this._jsActionsPromise ||= this._transport.getPageJSActions(\n      this._pageIndex\n    ));\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with\n   *   an {Object} with a fake DOM object (a tree structure where elements\n   *   are {Object} with a name, attributes (class, style, ...), value and\n   *   children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n   */\n  async getXfa() {\n    return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n  }\n\n  /**\n   * Begins the process of rendering a page to the desired context.\n   *\n   * @param {RenderParameters} params - Page render parameters.\n   * @returns {RenderTask} An object that contains a promise that is\n   *   resolved when the page finishes rendering.\n   */\n  render({\n    canvasContext,\n    viewport,\n    intent = \"display\",\n    annotationMode = AnnotationMode.ENABLE,\n    transform = null,\n    imageLayer = null,\n    canvasFactory = null,\n    background = null,\n    optionalContentConfigPromise = null,\n    annotationCanvasMap = null,\n  }) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n      if (arguments[0]?.renderInteractiveForms !== undefined) {\n        deprecated(\n          \"render no longer accepts the `renderInteractiveForms`-option, \" +\n            \"please use the `annotationMode`-option instead.\"\n        );\n        if (\n          arguments[0].renderInteractiveForms === true &&\n          annotationMode === AnnotationMode.ENABLE\n        ) {\n          annotationMode = AnnotationMode.ENABLE_FORMS;\n        }\n      }\n      if (arguments[0]?.includeAnnotationStorage !== undefined) {\n        deprecated(\n          \"render no longer accepts the `includeAnnotationStorage`-option, \" +\n            \"please use the `annotationMode`-option instead.\"\n        );\n        if (\n          arguments[0].includeAnnotationStorage === true &&\n          annotationMode === AnnotationMode.ENABLE\n        ) {\n          annotationMode = AnnotationMode.ENABLE_STORAGE;\n        }\n      }\n    }\n\n    if (this._stats) {\n      this._stats.time(\"Overall\");\n    }\n\n    const intentArgs = this._transport.getRenderingIntent(\n      intent,\n      annotationMode\n    );\n    // If there was a pending destroy, cancel it so no cleanup happens during\n    // this call to render.\n    this.pendingCleanup = false;\n\n    if (!optionalContentConfigPromise) {\n      optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n    }\n\n    let intentState = this._intentStates.get(intentArgs.cacheKey);\n    if (!intentState) {\n      intentState = Object.create(null);\n      this._intentStates.set(intentArgs.cacheKey, intentState);\n    }\n\n    // Ensure that a pending `streamReader` cancel timeout is always aborted.\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n\n    const canvasFactoryInstance =\n      canvasFactory ||\n      new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n    const intentPrint = !!(\n      intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n    );\n\n    // If there's no displayReadyCapability yet, then the operatorList\n    // was never requested before. Make the request and create the promise.\n    if (!intentState.displayReadyCapability) {\n      intentState.displayReadyCapability = createPromiseCapability();\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n      };\n\n      if (this._stats) {\n        this._stats.time(\"Page Request\");\n      }\n      this._pumpOperatorList(intentArgs);\n    }\n\n    const complete = error => {\n      intentState.renderTasks.delete(internalRenderTask);\n\n      // Attempt to reduce memory usage during *printing*, by always running\n      // cleanup once rendering has finished (regardless of cleanupAfterRender).\n      if (this.cleanupAfterRender || intentPrint) {\n        this.pendingCleanup = true;\n      }\n      this._tryCleanup();\n\n      if (error) {\n        internalRenderTask.capability.reject(error);\n\n        this._abortOperatorList({\n          intentState,\n          reason: error instanceof Error ? error : new Error(error),\n        });\n      } else {\n        internalRenderTask.capability.resolve();\n      }\n      if (this._stats) {\n        this._stats.timeEnd(\"Rendering\");\n        this._stats.timeEnd(\"Overall\");\n      }\n    };\n\n    const internalRenderTask = new InternalRenderTask({\n      callback: complete,\n      // Only include the required properties, and *not* the entire object.\n      params: {\n        canvasContext,\n        viewport,\n        transform,\n        imageLayer,\n        background,\n      },\n      objs: this.objs,\n      commonObjs: this.commonObjs,\n      annotationCanvasMap,\n      operatorList: intentState.operatorList,\n      pageIndex: this._pageIndex,\n      canvasFactory: canvasFactoryInstance,\n      useRequestAnimationFrame: !intentPrint,\n      pdfBug: this._pdfBug,\n    });\n\n    (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n    const renderTask = internalRenderTask.task;\n\n    Promise.all([\n      intentState.displayReadyCapability.promise,\n      optionalContentConfigPromise,\n    ])\n      .then(([transparency, optionalContentConfig]) => {\n        if (this.pendingCleanup) {\n          complete();\n          return;\n        }\n        if (this._stats) {\n          this._stats.time(\"Rendering\");\n        }\n        internalRenderTask.initializeGraphics({\n          transparency,\n          optionalContentConfig,\n        });\n        internalRenderTask.operatorListChanged();\n      })\n      .catch(complete);\n\n    return renderTask;\n  }\n\n  /**\n   * @param {GetOperatorListParameters} params - Page getOperatorList\n   *   parameters.\n   * @returns {Promise<PDFOperatorList>} A promise resolved with an\n   *   {@link PDFOperatorList} object that represents the page's operator list.\n   */\n  getOperatorList({\n    intent = \"display\",\n    annotationMode = AnnotationMode.ENABLE,\n  } = {}) {\n    function operatorListChanged() {\n      if (intentState.operatorList.lastChunk) {\n        intentState.opListReadCapability.resolve(intentState.operatorList);\n\n        intentState.renderTasks.delete(opListTask);\n      }\n    }\n\n    const intentArgs = this._transport.getRenderingIntent(\n      intent,\n      annotationMode,\n      /* isOpList = */ true\n    );\n    let intentState = this._intentStates.get(intentArgs.cacheKey);\n    if (!intentState) {\n      intentState = Object.create(null);\n      this._intentStates.set(intentArgs.cacheKey, intentState);\n    }\n    let opListTask;\n\n    if (!intentState.opListReadCapability) {\n      opListTask = Object.create(null);\n      opListTask.operatorListChanged = operatorListChanged;\n      intentState.opListReadCapability = createPromiseCapability();\n      (intentState.renderTasks ||= new Set()).add(opListTask);\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n      };\n\n      if (this._stats) {\n        this._stats.time(\"Page Request\");\n      }\n      this._pumpOperatorList(intentArgs);\n    }\n    return intentState.opListReadCapability.promise;\n  }\n\n  /**\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {ReadableStream} Stream for reading text content chunks.\n   */\n  streamTextContent({\n    normalizeWhitespace = false,\n    disableCombineTextItems = false,\n    includeMarkedContent = false,\n  } = {}) {\n    const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n    return this._transport.messageHandler.sendWithStream(\n      \"GetTextContent\",\n      {\n        pageIndex: this._pageIndex,\n        normalizeWhitespace: normalizeWhitespace === true,\n        combineTextItems: disableCombineTextItems !== true,\n        includeMarkedContent: includeMarkedContent === true,\n      },\n      {\n        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n        size(textContent) {\n          return textContent.items.length;\n        },\n      }\n    );\n  }\n\n  /**\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {Promise<TextContent>} A promise that is resolved with a\n   *   {@link TextContent} object that represents the page's text content.\n   */\n  getTextContent(params = {}) {\n    if (this._transport._htmlForXfa) {\n      // TODO: We need to revisit this once the XFA foreground patch lands and\n      // only do this for non-foreground XFA.\n      return this.getXfa().then(xfa => {\n        return XfaText.textContent(xfa);\n      });\n    }\n    const readableStream = this.streamTextContent(params);\n\n    return new Promise(function (resolve, reject) {\n      function pump() {\n        reader.read().then(function ({ value, done }) {\n          if (done) {\n            resolve(textContent);\n            return;\n          }\n          Object.assign(textContent.styles, value.styles);\n          textContent.items.push(...value.items);\n          pump();\n        }, reject);\n      }\n\n      const reader = readableStream.getReader();\n      const textContent = {\n        items: [],\n        styles: Object.create(null),\n      };\n      pump();\n    });\n  }\n\n  /**\n   * @returns {Promise<StructTreeNode>} A promise that is resolved with a\n   *   {@link StructTreeNode} object that represents the page's structure tree,\n   *   or `null` when no structure tree is present for the current page.\n   */\n  getStructTree() {\n    return (this._structTreePromise ||= this._transport.getStructTree(\n      this._pageIndex\n    ));\n  }\n\n  /**\n   * Destroys the page object.\n   * @private\n   */\n  _destroy() {\n    this.destroyed = true;\n\n    const waitOn = [];\n    for (const intentState of this._intentStates.values()) {\n      this._abortOperatorList({\n        intentState,\n        reason: new Error(\"Page was destroyed.\"),\n        force: true,\n      });\n\n      if (intentState.opListReadCapability) {\n        // Avoid errors below, since the renderTasks are just stubs.\n        continue;\n      }\n      for (const internalRenderTask of intentState.renderTasks) {\n        waitOn.push(internalRenderTask.completed);\n        internalRenderTask.cancel();\n      }\n    }\n    this.objs.clear();\n    this._annotationPromises.clear();\n    this._jsActionsPromise = null;\n    this._structTreePromise = null;\n    this.pendingCleanup = false;\n    return Promise.all(waitOn);\n  }\n\n  /**\n   * Cleans up resources allocated by the page.\n   *\n   * @param {boolean} [resetStats] - Reset page stats, if enabled.\n   *   The default value is `false`.\n   * @returns {boolean} Indicates if clean-up was successfully run.\n   */\n  cleanup(resetStats = false) {\n    this.pendingCleanup = true;\n    return this._tryCleanup(resetStats);\n  }\n\n  /**\n   * Attempts to clean up if rendering is in a state where that's possible.\n   * @private\n   */\n  _tryCleanup(resetStats = false) {\n    if (!this.pendingCleanup) {\n      return false;\n    }\n    for (const { renderTasks, operatorList } of this._intentStates.values()) {\n      if (renderTasks.size > 0 || !operatorList.lastChunk) {\n        return false;\n      }\n    }\n\n    this._intentStates.clear();\n    this.objs.clear();\n    this._annotationPromises.clear();\n    this._jsActionsPromise = null;\n    this._structTreePromise = null;\n    if (resetStats && this._stats) {\n      this._stats = new StatTimer();\n    }\n    this.pendingCleanup = false;\n    return true;\n  }\n\n  /**\n   * @private\n   */\n  _startRenderPage(transparency, cacheKey) {\n    const intentState = this._intentStates.get(cacheKey);\n    if (!intentState) {\n      return; // Rendering was cancelled.\n    }\n    if (this._stats) {\n      this._stats.timeEnd(\"Page Request\");\n    }\n    // TODO Refactor RenderPageRequest to separate rendering\n    // and operator list logic\n    if (intentState.displayReadyCapability) {\n      intentState.displayReadyCapability.resolve(transparency);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _renderPageChunk(operatorListChunk, intentState) {\n    // Add the new chunk to the current operator list.\n    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n    }\n    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n    // Notify all the rendering tasks there are more operators to be consumed.\n    for (const internalRenderTask of intentState.renderTasks) {\n      internalRenderTask.operatorListChanged();\n    }\n\n    if (operatorListChunk.lastChunk) {\n      this._tryCleanup();\n    }\n  }\n\n  /**\n   * @private\n   */\n  _pumpOperatorList({ renderingIntent, cacheKey }) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        Number.isInteger(renderingIntent) && renderingIntent > 0,\n        '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n      );\n    }\n\n    const readableStream = this._transport.messageHandler.sendWithStream(\n      \"GetOperatorList\",\n      {\n        pageIndex: this._pageIndex,\n        intent: renderingIntent,\n        cacheKey,\n        annotationStorage:\n          renderingIntent & RenderingIntentFlag.ANNOTATIONS_STORAGE\n            ? this._transport.annotationStorage.serializable\n            : null,\n      }\n    );\n    const reader = readableStream.getReader();\n\n    const intentState = this._intentStates.get(cacheKey);\n    intentState.streamReader = reader;\n\n    const pump = () => {\n      reader.read().then(\n        ({ value, done }) => {\n          if (done) {\n            intentState.streamReader = null;\n            return;\n          }\n          if (this._transport.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          this._renderPageChunk(value, intentState);\n          pump();\n        },\n        reason => {\n          intentState.streamReader = null;\n\n          if (this._transport.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          if (intentState.operatorList) {\n            // Mark operator list as complete.\n            intentState.operatorList.lastChunk = true;\n\n            for (const internalRenderTask of intentState.renderTasks) {\n              internalRenderTask.operatorListChanged();\n            }\n            this._tryCleanup();\n          }\n\n          if (intentState.displayReadyCapability) {\n            intentState.displayReadyCapability.reject(reason);\n          } else if (intentState.opListReadCapability) {\n            intentState.opListReadCapability.reject(reason);\n          } else {\n            throw reason;\n          }\n        }\n      );\n    };\n    pump();\n  }\n\n  /**\n   * @private\n   */\n  _abortOperatorList({ intentState, reason, force = false }) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        reason instanceof Error,\n        '_abortOperatorList: Expected valid \"reason\" argument.'\n      );\n    }\n\n    if (!intentState.streamReader) {\n      return;\n    }\n    if (!force) {\n      // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n      // multiple render() calls on the same canvas, won't break all rendering.\n      if (intentState.renderTasks.size > 0) {\n        return;\n      }\n      // Don't immediately abort parsing on the worker-thread when rendering is\n      // cancelled, since that will unnecessarily delay re-rendering when (for\n      // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n      if (reason instanceof RenderingCancelledException) {\n        intentState.streamReaderCancelTimeout = setTimeout(() => {\n          this._abortOperatorList({ intentState, reason, force: true });\n          intentState.streamReaderCancelTimeout = null;\n        }, RENDERING_CANCELLED_TIMEOUT);\n        return;\n      }\n    }\n    intentState.streamReader\n      .cancel(new AbortException(reason.message))\n      .catch(() => {\n        // Avoid \"Uncaught promise\" messages in the console.\n      });\n    intentState.streamReader = null;\n\n    if (this._transport.destroyed) {\n      return; // Ignore any pending requests if the worker was terminated.\n    }\n    // Remove the current `intentState`, since a cancelled `getOperatorList`\n    // call on the worker-thread cannot be re-started...\n    for (const [curCacheKey, curIntentState] of this._intentStates) {\n      if (curIntentState === intentState) {\n        this._intentStates.delete(curCacheKey);\n        break;\n      }\n    }\n    // ... and force clean-up to ensure that any old state is always removed.\n    this.cleanup();\n  }\n\n  /**\n   * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n   */\n  get stats() {\n    return this._stats;\n  }\n}\n\nclass LoopbackPort {\n  constructor() {\n    this._listeners = [];\n    this._deferred = Promise.resolve();\n  }\n\n  postMessage(obj, transfers) {\n    function cloneValue(object) {\n      if (\n        (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n        globalThis.structuredClone\n      ) {\n        return globalThis.structuredClone(object, transfers);\n      }\n\n      // Trying to perform a structured clone close to the spec, including\n      // transfers.\n      function fallbackCloneValue(value) {\n        if (\n          typeof value === \"function\" ||\n          typeof value === \"symbol\" ||\n          value instanceof URL\n        ) {\n          throw new Error(\n            `LoopbackPort.postMessage - cannot clone: ${value?.toString()}`\n          );\n        }\n\n        if (typeof value !== \"object\" || value === null) {\n          return value;\n        }\n        if (cloned.has(value)) {\n          // already cloned the object\n          return cloned.get(value);\n        }\n        let buffer, result;\n        if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n          // We found object with ArrayBuffer (typed array).\n          if (transfers?.includes(buffer)) {\n            result = new value.constructor(\n              buffer,\n              value.byteOffset,\n              value.byteLength\n            );\n          } else {\n            result = new value.constructor(value);\n          }\n          cloned.set(value, result);\n          return result;\n        }\n        if (value instanceof Map) {\n          result = new Map();\n          cloned.set(value, result); // Adding to cache now for cyclic references.\n          for (const [key, val] of value) {\n            result.set(key, fallbackCloneValue(val));\n          }\n          return result;\n        }\n        if (value instanceof Set) {\n          result = new Set();\n          cloned.set(value, result); // Adding to cache now for cyclic references.\n          for (const val of value) {\n            result.add(fallbackCloneValue(val));\n          }\n          return result;\n        }\n        result = Array.isArray(value) ? [] : Object.create(null);\n        cloned.set(value, result); // Adding to cache now for cyclic references.\n        // Cloning all value and object properties, however ignoring properties\n        // defined via getter.\n        for (const i in value) {\n          let desc,\n            p = value;\n          while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n            p = Object.getPrototypeOf(p);\n          }\n          if (typeof desc.value === \"undefined\") {\n            continue;\n          }\n          if (typeof desc.value === \"function\" && !value.hasOwnProperty?.(i)) {\n            continue;\n          }\n          result[i] = fallbackCloneValue(desc.value);\n        }\n        return result;\n      }\n\n      const cloned = new WeakMap();\n      return fallbackCloneValue(object);\n    }\n\n    const event = { data: cloneValue(obj) };\n\n    this._deferred.then(() => {\n      for (const listener of this._listeners) {\n        listener.call(this, event);\n      }\n    });\n  }\n\n  addEventListener(name, listener) {\n    this._listeners.push(listener);\n  }\n\n  removeEventListener(name, listener) {\n    const i = this._listeners.indexOf(listener);\n    this._listeners.splice(i, 1);\n  }\n\n  terminate() {\n    this._listeners.length = 0;\n  }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n *   the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n  isWorkerDisabled: false,\n  fallbackWorkerSrc: null,\n  fakeWorkerId: 0,\n};\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n  // eslint-disable-next-line no-undef\n  if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n    // Workers aren't supported in Node.js, force-disabling them there.\n    PDFWorkerUtil.isWorkerDisabled = true;\n\n    PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n      ? \"../pdf.worker.js\"\n      : \"./pdf.worker.js\";\n  } else if (typeof document === \"object\") {\n    const pdfjsFilePath = document?.currentScript?.src;\n    if (pdfjsFilePath) {\n      PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n        /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n        \".worker$1$2\"\n      );\n    }\n  }\n\n  PDFWorkerUtil.createCDNWrapper = function (url) {\n    // We will rely on blob URL's property to specify origin.\n    // We want this function to fail in case if createObjectURL or Blob do not\n    // exist or fail for some reason -- our Worker creation will fail anyway.\n    const wrapper = `importScripts(\"${url}\");`;\n    return URL.createObjectURL(new Blob([wrapper]));\n  };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n  static get _workerPorts() {\n    return shadow(this, \"_workerPorts\", new WeakMap());\n  }\n\n  constructor({\n    name = null,\n    port = null,\n    verbosity = getVerbosityLevel(),\n  } = {}) {\n    if (port && PDFWorker._workerPorts.has(port)) {\n      throw new Error(\"Cannot use more than one PDFWorker per port.\");\n    }\n\n    this.name = name;\n    this.destroyed = false;\n    this.verbosity = verbosity;\n\n    this._readyCapability = createPromiseCapability();\n    this._port = null;\n    this._webWorker = null;\n    this._messageHandler = null;\n\n    if (port) {\n      PDFWorker._workerPorts.set(port, this);\n      this._initializeFromPort(port);\n      return;\n    }\n    this._initialize();\n  }\n\n  /**\n   * Promise for worker initialization completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this._readyCapability.promise;\n  }\n\n  /**\n   * The current `workerPort`, when it exists.\n   * @type {Worker}\n   */\n  get port() {\n    return this._port;\n  }\n\n  /**\n   * The current MessageHandler-instance.\n   * @type {MessageHandler}\n   */\n  get messageHandler() {\n    return this._messageHandler;\n  }\n\n  _initializeFromPort(port) {\n    this._port = port;\n    this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n    this._messageHandler.on(\"ready\", function () {\n      // Ignoring \"ready\" event -- MessageHandler should already be initialized\n      // and ready to accept messages.\n    });\n    this._readyCapability.resolve();\n  }\n\n  _initialize() {\n    // If worker support isn't disabled explicit and the browser has worker\n    // support, create a new web worker and test if it/the browser fulfills\n    // all requirements to run parts of pdf.js in a web worker.\n    // Right now, the requirement is, that an Uint8Array is still an\n    // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n    if (\n      typeof Worker !== \"undefined\" &&\n      !PDFWorkerUtil.isWorkerDisabled &&\n      !PDFWorker._mainThreadWorkerMessageHandler\n    ) {\n      let workerSrc = PDFWorker.workerSrc;\n\n      try {\n        // Wraps workerSrc path into blob URL, if the former does not belong\n        // to the same origin.\n        if (\n          typeof PDFJSDev !== \"undefined\" &&\n          PDFJSDev.test(\"GENERIC\") &&\n          !isSameOrigin(window.location.href, workerSrc)\n        ) {\n          workerSrc = PDFWorkerUtil.createCDNWrapper(\n            new URL(workerSrc, window.location).href\n          );\n        }\n\n        // Some versions of FF can't create a worker on localhost, see:\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n        const worker = new Worker(workerSrc);\n        const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n        const terminateEarly = () => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          messageHandler.destroy();\n          worker.terminate();\n          if (this.destroyed) {\n            this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n          } else {\n            // Fall back to fake worker if the termination is caused by an\n            // error (e.g. NetworkError / SecurityError).\n            this._setupFakeWorker();\n          }\n        };\n\n        const onWorkerError = () => {\n          if (!this._webWorker) {\n            // Worker failed to initialize due to an error. Clean up and fall\n            // back to the fake worker.\n            terminateEarly();\n          }\n        };\n        worker.addEventListener(\"error\", onWorkerError);\n\n        messageHandler.on(\"test\", data => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          if (this.destroyed) {\n            terminateEarly();\n            return; // worker was destroyed\n          }\n          if (data) {\n            this._messageHandler = messageHandler;\n            this._port = worker;\n            this._webWorker = worker;\n\n            this._readyCapability.resolve();\n            // Send global setting, e.g. verbosity level.\n            messageHandler.send(\"configure\", {\n              verbosity: this.verbosity,\n            });\n          } else {\n            this._setupFakeWorker();\n            messageHandler.destroy();\n            worker.terminate();\n          }\n        });\n\n        messageHandler.on(\"ready\", data => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          if (this.destroyed) {\n            terminateEarly();\n            return; // worker was destroyed\n          }\n          try {\n            sendTest();\n          } catch (e) {\n            // We need fallback to a faked worker.\n            this._setupFakeWorker();\n          }\n        });\n\n        const sendTest = () => {\n          const testObj = new Uint8Array([255]);\n          // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n          // typed array. Also, checking if we can use transfers.\n          try {\n            messageHandler.send(\"test\", testObj, [testObj.buffer]);\n          } catch (ex) {\n            warn(\"Cannot use postMessage transfers.\");\n            testObj[0] = 0;\n            messageHandler.send(\"test\", testObj);\n          }\n        };\n\n        // It might take time for the worker to initialize. We will try to send\n        // the \"test\" message immediately, and once the \"ready\" message arrives.\n        // The worker shall process only the first received \"test\" message.\n        sendTest();\n        return;\n      } catch (e) {\n        info(\"The worker has been disabled.\");\n      }\n    }\n    // Either workers are disabled, not supported or have thrown an exception.\n    // Thus, we fallback to a faked worker.\n    this._setupFakeWorker();\n  }\n\n  _setupFakeWorker() {\n    if (!PDFWorkerUtil.isWorkerDisabled) {\n      warn(\"Setting up fake worker.\");\n      PDFWorkerUtil.isWorkerDisabled = true;\n    }\n\n    PDFWorker._setupFakeWorkerGlobal\n      .then(WorkerMessageHandler => {\n        if (this.destroyed) {\n          this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n          return;\n        }\n        const port = new LoopbackPort();\n        this._port = port;\n\n        // All fake workers use the same port, making id unique.\n        const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n        // If the main thread is our worker, setup the handling for the\n        // messages -- the main thread sends to it self.\n        const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n        WorkerMessageHandler.setup(workerHandler, port);\n\n        const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n        this._messageHandler = messageHandler;\n        this._readyCapability.resolve();\n        // Send global setting, e.g. verbosity level.\n        messageHandler.send(\"configure\", {\n          verbosity: this.verbosity,\n        });\n      })\n      .catch(reason => {\n        this._readyCapability.reject(\n          new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n        );\n      });\n  }\n\n  /**\n   * Destroys the worker instance.\n   */\n  destroy() {\n    this.destroyed = true;\n    if (this._webWorker) {\n      // We need to terminate only web worker created resource.\n      this._webWorker.terminate();\n      this._webWorker = null;\n    }\n    PDFWorker._workerPorts.delete(this._port);\n    this._port = null;\n    if (this._messageHandler) {\n      this._messageHandler.destroy();\n      this._messageHandler = null;\n    }\n  }\n\n  /**\n   * @param {PDFWorkerParameters} params - The worker initialization parameters.\n   */\n  static fromPort(params) {\n    if (!params?.port) {\n      throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n    }\n    if (this._workerPorts.has(params.port)) {\n      return this._workerPorts.get(params.port);\n    }\n    return new PDFWorker(params);\n  }\n\n  /**\n   * The current `workerSrc`, when it exists.\n   * @type {string}\n   */\n  static get workerSrc() {\n    if (GlobalWorkerOptions.workerSrc) {\n      return GlobalWorkerOptions.workerSrc;\n    }\n    if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n      if (!isNodeJS) {\n        deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n      }\n      return PDFWorkerUtil.fallbackWorkerSrc;\n    }\n    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n\n  static get _mainThreadWorkerMessageHandler() {\n    try {\n      return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n    } catch (ex) {\n      return null;\n    }\n  }\n\n  // Loads worker code into the main-thread.\n  static get _setupFakeWorkerGlobal() {\n    const loader = async () => {\n      const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n      if (mainWorkerMessageHandler) {\n        // The worker was already loaded using e.g. a `<script>` tag.\n        return mainWorkerMessageHandler;\n      }\n      if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n        const worker = await import(\"pdfjs/core/worker.js\");\n        return worker.WorkerMessageHandler;\n      }\n      if (\n        PDFJSDev.test(\"GENERIC\") &&\n        isNodeJS &&\n        // eslint-disable-next-line no-undef\n        typeof __non_webpack_require__ === \"function\"\n      ) {\n        // Since bundlers, such as Webpack, cannot be told to leave `require`\n        // statements alone we are thus forced to jump through hoops in order\n        // to prevent `Critical dependency: ...` warnings in third-party\n        // deployments of the built `pdf.js`/`pdf.worker.js` files; see\n        // https://github.com/webpack/webpack/issues/8826\n        //\n        // The following hack is based on the assumption that code running in\n        // Node.js won't ever be affected by e.g. Content Security Policies that\n        // prevent the use of `eval`. If that ever occurs, we should revert this\n        // to a normal `__non_webpack_require__` statement and simply document\n        // the Webpack warnings instead (telling users to ignore them).\n        //\n        // eslint-disable-next-line no-eval\n        const worker = eval(\"require\")(this.workerSrc);\n        return worker.WorkerMessageHandler;\n      }\n      await loadScript(this.workerSrc);\n      return window.pdfjsWorker.WorkerMessageHandler;\n    };\n\n    return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n  }\n}\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n  PDFWorker.getWorkerSrc = function () {\n    deprecated(\n      \"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\"\n    );\n    return this.workerSrc;\n  };\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n  #docStats = null;\n\n  #pageCache = new Map();\n\n  #pagePromises = new Map();\n\n  #metadataPromise = null;\n\n  constructor(messageHandler, loadingTask, networkStream, params) {\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new FontLoader({\n      docId: loadingTask.docId,\n      onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n      ownerDocument: params.ownerDocument,\n      styleElement: params.styleElement,\n    });\n    this._params = params;\n\n    if (!params.useWorkerFetch) {\n      this.CMapReaderFactory = new params.CMapReaderFactory({\n        baseUrl: params.cMapUrl,\n        isCompressed: params.cMapPacked,\n      });\n      this.StandardFontDataFactory = new params.StandardFontDataFactory({\n        baseUrl: params.standardFontDataUrl,\n      });\n    }\n\n    this.destroyed = false;\n    this.destroyCapability = null;\n    this._passwordCapability = null;\n\n    this._networkStream = networkStream;\n    this._fullReader = null;\n    this._lastProgress = null;\n    this.downloadInfoCapability = createPromiseCapability();\n\n    this.setupMessageHandler();\n  }\n\n  get annotationStorage() {\n    return shadow(this, \"annotationStorage\", new AnnotationStorage());\n  }\n\n  get stats() {\n    return this.#docStats;\n  }\n\n  getRenderingIntent(\n    intent,\n    annotationMode = AnnotationMode.ENABLE,\n    isOpList = false\n  ) {\n    let renderingIntent = RenderingIntentFlag.DISPLAY; // Default value.\n    let lastModified = \"\";\n\n    switch (intent) {\n      case \"any\":\n        renderingIntent = RenderingIntentFlag.ANY;\n        break;\n      case \"display\":\n        break;\n      case \"print\":\n        renderingIntent = RenderingIntentFlag.PRINT;\n        break;\n      default:\n        warn(`getRenderingIntent - invalid intent: ${intent}`);\n    }\n\n    switch (annotationMode) {\n      case AnnotationMode.DISABLE:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n        break;\n      case AnnotationMode.ENABLE:\n        break;\n      case AnnotationMode.ENABLE_FORMS:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n        break;\n      case AnnotationMode.ENABLE_STORAGE:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n\n        lastModified = this.annotationStorage.lastModified;\n        break;\n      default:\n        warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n    }\n\n    if (isOpList) {\n      renderingIntent += RenderingIntentFlag.OPLIST;\n    }\n\n    return {\n      renderingIntent,\n      cacheKey: `${renderingIntent}_${lastModified}`,\n    };\n  }\n\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n\n    this.destroyed = true;\n    this.destroyCapability = createPromiseCapability();\n\n    if (this._passwordCapability) {\n      this._passwordCapability.reject(\n        new Error(\"Worker was destroyed during onPassword callback\")\n      );\n    }\n\n    const waitOn = [];\n    // We need to wait for all renderings to be completed, e.g.\n    // timeout/rAF can take a long time.\n    for (const page of this.#pageCache.values()) {\n      waitOn.push(page._destroy());\n    }\n    this.#pageCache.clear();\n    this.#pagePromises.clear();\n    // Allow `AnnotationStorage`-related clean-up when destroying the document.\n    if (this.hasOwnProperty(\"annotationStorage\")) {\n      this.annotationStorage.resetModified();\n    }\n    // We also need to wait for the worker to finish its long running tasks.\n    const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n    waitOn.push(terminated);\n\n    Promise.all(waitOn).then(() => {\n      this.commonObjs.clear();\n      this.fontLoader.clear();\n      this.#metadataPromise = null;\n      this._getFieldObjectsPromise = null;\n      this._hasJSActionsPromise = null;\n\n      if (this._networkStream) {\n        this._networkStream.cancelAllRequests(\n          new AbortException(\"Worker was terminated.\")\n        );\n      }\n\n      if (this.messageHandler) {\n        this.messageHandler.destroy();\n        this.messageHandler = null;\n      }\n      this.destroyCapability.resolve();\n    }, this.destroyCapability.reject);\n    return this.destroyCapability.promise;\n  }\n\n  setupMessageHandler() {\n    const { messageHandler, loadingTask } = this;\n\n    messageHandler.on(\"GetReader\", (data, sink) => {\n      assert(\n        this._networkStream,\n        \"GetReader - no `IPDFStream` instance available.\"\n      );\n      this._fullReader = this._networkStream.getFullReader();\n      this._fullReader.onProgress = evt => {\n        this._lastProgress = {\n          loaded: evt.loaded,\n          total: evt.total,\n        };\n      };\n      sink.onPull = () => {\n        this._fullReader\n          .read()\n          .then(function ({ value, done }) {\n            if (done) {\n              sink.close();\n              return;\n            }\n            assert(\n              isArrayBuffer(value),\n              \"GetReader - expected an ArrayBuffer.\"\n            );\n            // Enqueue data chunk into sink, and transfer it\n            // to other side as `Transferable` object.\n            sink.enqueue(new Uint8Array(value), 1, [value]);\n          })\n          .catch(reason => {\n            sink.error(reason);\n          });\n      };\n\n      sink.onCancel = reason => {\n        this._fullReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          throw readyReason;\n        });\n      };\n    });\n\n    messageHandler.on(\"ReaderHeadersReady\", data => {\n      const headersCapability = createPromiseCapability();\n      const fullReader = this._fullReader;\n      fullReader.headersReady.then(() => {\n        // If stream or range are disabled, it's our only way to report\n        // loading progress.\n        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n          if (this._lastProgress) {\n            loadingTask.onProgress?.(this._lastProgress);\n          }\n          fullReader.onProgress = evt => {\n            loadingTask.onProgress?.({\n              loaded: evt.loaded,\n              total: evt.total,\n            });\n          };\n        }\n\n        headersCapability.resolve({\n          isStreamingSupported: fullReader.isStreamingSupported,\n          isRangeSupported: fullReader.isRangeSupported,\n          contentLength: fullReader.contentLength,\n        });\n      }, headersCapability.reject);\n\n      return headersCapability.promise;\n    });\n\n    messageHandler.on(\"GetRangeReader\", (data, sink) => {\n      assert(\n        this._networkStream,\n        \"GetRangeReader - no `IPDFStream` instance available.\"\n      );\n      const rangeReader = this._networkStream.getRangeReader(\n        data.begin,\n        data.end\n      );\n\n      // When streaming is enabled, it's possible that the data requested here\n      // has already been fetched via the `_fullRequestReader` implementation.\n      // However, given that the PDF data is loaded asynchronously on the\n      // main-thread and then sent via `postMessage` to the worker-thread,\n      // it may not have been available during parsing (hence the attempt to\n      // use range requests here).\n      //\n      // To avoid wasting time and resources here, we'll thus *not* dispatch\n      // range requests if the data was already loaded but has not been sent to\n      // the worker-thread yet (which will happen via the `_fullRequestReader`).\n      if (!rangeReader) {\n        sink.close();\n        return;\n      }\n\n      sink.onPull = () => {\n        rangeReader\n          .read()\n          .then(function ({ value, done }) {\n            if (done) {\n              sink.close();\n              return;\n            }\n            assert(\n              isArrayBuffer(value),\n              \"GetRangeReader - expected an ArrayBuffer.\"\n            );\n            sink.enqueue(new Uint8Array(value), 1, [value]);\n          })\n          .catch(reason => {\n            sink.error(reason);\n          });\n      };\n\n      sink.onCancel = reason => {\n        rangeReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          throw readyReason;\n        });\n      };\n    });\n\n    messageHandler.on(\"GetDoc\", ({ pdfInfo }) => {\n      this._numPages = pdfInfo.numPages;\n      this._htmlForXfa = pdfInfo.htmlForXfa;\n      delete pdfInfo.htmlForXfa;\n      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n    });\n\n    messageHandler.on(\"DocException\", function (ex) {\n      let reason;\n      switch (ex.name) {\n        case \"PasswordException\":\n          reason = new PasswordException(ex.message, ex.code);\n          break;\n        case \"InvalidPDFException\":\n          reason = new InvalidPDFException(ex.message);\n          break;\n        case \"MissingPDFException\":\n          reason = new MissingPDFException(ex.message);\n          break;\n        case \"UnexpectedResponseException\":\n          reason = new UnexpectedResponseException(ex.message, ex.status);\n          break;\n        case \"UnknownErrorException\":\n          reason = new UnknownErrorException(ex.message, ex.details);\n          break;\n        default:\n          unreachable(\"DocException - expected a valid Error.\");\n      }\n      loadingTask._capability.reject(reason);\n    });\n\n    messageHandler.on(\"PasswordRequest\", exception => {\n      this._passwordCapability = createPromiseCapability();\n\n      if (loadingTask.onPassword) {\n        const updatePassword = password => {\n          this._passwordCapability.resolve({\n            password,\n          });\n        };\n        try {\n          loadingTask.onPassword(updatePassword, exception.code);\n        } catch (ex) {\n          this._passwordCapability.reject(ex);\n        }\n      } else {\n        this._passwordCapability.reject(\n          new PasswordException(exception.message, exception.code)\n        );\n      }\n      return this._passwordCapability.promise;\n    });\n\n    messageHandler.on(\"DataLoaded\", data => {\n      // For consistency: Ensure that progress is always reported when the\n      // entire PDF file has been loaded, regardless of how it was fetched.\n      loadingTask.onProgress?.({\n        loaded: data.length,\n        total: data.length,\n      });\n\n      this.downloadInfoCapability.resolve(data);\n    });\n\n    messageHandler.on(\"StartRenderPage\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const page = this.#pageCache.get(data.pageIndex);\n      page._startRenderPage(data.transparency, data.cacheKey);\n    });\n\n    messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      if (this.commonObjs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Font\":\n          const params = this._params;\n\n          if (\"error\" in exportedData) {\n            const exportedError = exportedData.error;\n            warn(`Error during font loading: ${exportedError}`);\n            this.commonObjs.resolve(id, exportedError);\n            break;\n          }\n\n          let fontRegistry = null;\n          if (params.pdfBug && globalThis.FontInspector?.enabled) {\n            fontRegistry = {\n              registerFont(font, url) {\n                globalThis.FontInspector.fontAdded(font, url);\n              },\n            };\n          }\n          const font = new FontFaceObject(exportedData, {\n            isEvalSupported: params.isEvalSupported,\n            disableFontFace: params.disableFontFace,\n            ignoreErrors: params.ignoreErrors,\n            onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n            fontRegistry,\n          });\n\n          this.fontLoader\n            .bind(font)\n            .catch(reason => {\n              return messageHandler.sendWithPromise(\"FontFallback\", { id });\n            })\n            .finally(() => {\n              if (!params.fontExtraProperties && font.data) {\n                // Immediately release the `font.data` property once the font\n                // has been attached to the DOM, since it's no longer needed,\n                // rather than waiting for a `PDFDocumentProxy.cleanup` call.\n                // Since `font.data` could be very large, e.g. in some cases\n                // multiple megabytes, this will help reduce memory usage.\n                font.data = null;\n              }\n              this.commonObjs.resolve(id, font);\n            });\n          break;\n        case \"FontPath\":\n        case \"Image\":\n          this.commonObjs.resolve(id, exportedData);\n          break;\n        default:\n          throw new Error(`Got unknown common object type ${type}`);\n      }\n    });\n\n    messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n      if (this.destroyed) {\n        // Ignore any pending requests if the worker was terminated.\n        return;\n      }\n\n      const pageProxy = this.#pageCache.get(pageIndex);\n      if (pageProxy.objs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Image\":\n          pageProxy.objs.resolve(id, imageData);\n\n          // Heuristic that will allow us not to store large data.\n          const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n          if (imageData?.data?.length > MAX_IMAGE_SIZE_TO_STORE) {\n            pageProxy.cleanupAfterRender = true;\n          }\n          break;\n        case \"Pattern\":\n          pageProxy.objs.resolve(id, imageData);\n          break;\n        default:\n          throw new Error(`Got unknown object type ${type}`);\n      }\n    });\n\n    messageHandler.on(\"DocProgress\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n      loadingTask.onProgress?.({\n        loaded: data.loaded,\n        total: data.total,\n      });\n    });\n\n    messageHandler.on(\"DocStats\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n      // Ensure that a `PDFDocumentProxy.stats` call-site cannot accidentally\n      // modify this internal data.\n      this.#docStats = Object.freeze({\n        streamTypes: Object.freeze(data.streamTypes),\n        fontTypes: Object.freeze(data.fontTypes),\n      });\n    });\n\n    messageHandler.on(\n      \"UnsupportedFeature\",\n      this._onUnsupportedFeature.bind(this)\n    );\n\n    messageHandler.on(\"FetchBuiltInCMap\", data => {\n      if (this.destroyed) {\n        return Promise.reject(new Error(\"Worker was destroyed.\"));\n      }\n      if (!this.CMapReaderFactory) {\n        return Promise.reject(\n          new Error(\n            \"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"\n          )\n        );\n      }\n      return this.CMapReaderFactory.fetch(data);\n    });\n\n    messageHandler.on(\"FetchStandardFontData\", data => {\n      if (this.destroyed) {\n        return Promise.reject(new Error(\"Worker was destroyed.\"));\n      }\n      if (!this.StandardFontDataFactory) {\n        return Promise.reject(\n          new Error(\n            \"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"\n          )\n        );\n      }\n      return this.StandardFontDataFactory.fetch(data);\n    });\n  }\n\n  _onUnsupportedFeature({ featureId }) {\n    if (this.destroyed) {\n      return; // Ignore any pending requests if the worker was terminated.\n    }\n    this.loadingTask.onUnsupportedFeature?.(featureId);\n  }\n\n  getData() {\n    return this.messageHandler.sendWithPromise(\"GetData\", null);\n  }\n\n  getPage(pageNumber) {\n    if (\n      !Number.isInteger(pageNumber) ||\n      pageNumber <= 0 ||\n      pageNumber > this._numPages\n    ) {\n      return Promise.reject(new Error(\"Invalid page request\"));\n    }\n\n    const pageIndex = pageNumber - 1,\n      cachedPromise = this.#pagePromises.get(pageIndex);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler\n      .sendWithPromise(\"GetPage\", {\n        pageIndex,\n      })\n      .then(pageInfo => {\n        if (this.destroyed) {\n          throw new Error(\"Transport destroyed\");\n        }\n        const page = new PDFPageProxy(\n          pageIndex,\n          pageInfo,\n          this,\n          this._params.ownerDocument,\n          this._params.pdfBug\n        );\n        this.#pageCache.set(pageIndex, page);\n        return page;\n      });\n    this.#pagePromises.set(pageIndex, promise);\n    return promise;\n  }\n\n  getPageIndex(ref) {\n    return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n      ref,\n    });\n  }\n\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n      pageIndex,\n      intent,\n    });\n  }\n\n  saveDocument() {\n    return this.messageHandler\n      .sendWithPromise(\"SaveDocument\", {\n        isPureXfa: !!this._htmlForXfa,\n        numPages: this._numPages,\n        annotationStorage: this.annotationStorage.serializable,\n        filename: this._fullReader?.filename ?? null,\n      })\n      .finally(() => {\n        this.annotationStorage.resetModified();\n      });\n  }\n\n  getFieldObjects() {\n    return (this._getFieldObjectsPromise ||=\n      this.messageHandler.sendWithPromise(\"GetFieldObjects\", null));\n  }\n\n  hasJSActions() {\n    return (this._hasJSActionsPromise ||= this.messageHandler.sendWithPromise(\n      \"HasJSActions\",\n      null\n    ));\n  }\n\n  getCalculationOrderIds() {\n    return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n  }\n\n  getDestinations() {\n    return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n  }\n\n  getDestination(id) {\n    if (typeof id !== \"string\") {\n      return Promise.reject(new Error(\"Invalid destination request.\"));\n    }\n    return this.messageHandler.sendWithPromise(\"GetDestination\", {\n      id,\n    });\n  }\n\n  getPageLabels() {\n    return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n  }\n\n  getPageLayout() {\n    return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n  }\n\n  getPageMode() {\n    return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n  }\n\n  getViewerPreferences() {\n    return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n  }\n\n  getOpenAction() {\n    return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n  }\n\n  getAttachments() {\n    return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n  }\n\n  getJavaScript() {\n    return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n  }\n\n  getDocJSActions() {\n    return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n  }\n\n  getPageJSActions(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n      pageIndex,\n    });\n  }\n\n  getStructTree(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n      pageIndex,\n    });\n  }\n\n  getOutline() {\n    return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n  }\n\n  getOptionalContentConfig() {\n    return this.messageHandler\n      .sendWithPromise(\"GetOptionalContentConfig\", null)\n      .then(results => {\n        return new OptionalContentConfig(results);\n      });\n  }\n\n  getPermissions() {\n    return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n  }\n\n  getMetadata() {\n    return (this.#metadataPromise ||= this.messageHandler\n      .sendWithPromise(\"GetMetadata\", null)\n      .then(results => {\n        return {\n          info: results[0],\n          metadata: results[1] ? new Metadata(results[1]) : null,\n          contentDispositionFilename: this._fullReader?.filename ?? null,\n          contentLength: this._fullReader?.contentLength ?? null,\n        };\n      }));\n  }\n\n  getMarkInfo() {\n    return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n  }\n\n  async startCleanup(keepLoadedFonts = false) {\n    await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n    if (this.destroyed) {\n      return; // No need to manually clean-up when destruction has started.\n    }\n    for (const page of this.#pageCache.values()) {\n      const cleanupSuccessful = page.cleanup();\n\n      if (!cleanupSuccessful) {\n        throw new Error(\n          `startCleanup: Page ${page.pageNumber} is currently rendering.`\n        );\n      }\n    }\n    this.commonObjs.clear();\n    if (!keepLoadedFonts) {\n      this.fontLoader.clear();\n    }\n    this.#metadataPromise = null;\n    this._getFieldObjectsPromise = null;\n    this._hasJSActionsPromise = null;\n  }\n\n  get loadingParams() {\n    const params = this._params;\n    return shadow(this, \"loadingParams\", {\n      disableAutoFetch: params.disableAutoFetch,\n      enableXfa: params.enableXfa,\n    });\n  }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n * @ignore\n */\nclass PDFObjects {\n  constructor() {\n    this._objs = Object.create(null);\n  }\n\n  /**\n   * Ensures there is an object defined for `objId`.\n   * @private\n   */\n  _ensureObj(objId) {\n    if (this._objs[objId]) {\n      return this._objs[objId];\n    }\n    return (this._objs[objId] = {\n      capability: createPromiseCapability(),\n      data: null,\n      resolved: false,\n    });\n  }\n\n  /**\n   * If called *without* callback, this returns the data of `objId` but the\n   * object needs to be resolved. If it isn't, this method throws.\n   *\n   * If called *with* a callback, the callback is called with the data of the\n   * object once the object is resolved. That means, if you call this method\n   * and the object is already resolved, the callback gets called right away.\n   */\n  get(objId, callback = null) {\n    // If there is a callback, then the get can be async and the object is\n    // not required to be resolved right now.\n    if (callback) {\n      this._ensureObj(objId).capability.promise.then(callback);\n      return null;\n    }\n    // If there isn't a callback, the user expects to get the resolved data\n    // directly.\n    const obj = this._objs[objId];\n    // If there isn't an object yet or the object isn't resolved, then the\n    // data isn't ready yet!\n    if (!obj || !obj.resolved) {\n      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n    }\n    return obj.data;\n  }\n\n  has(objId) {\n    const obj = this._objs[objId];\n    return obj?.resolved || false;\n  }\n\n  /**\n   * Resolves the object `objId` with optional `data`.\n   */\n  resolve(objId, data) {\n    const obj = this._ensureObj(objId);\n\n    obj.resolved = true;\n    obj.data = data;\n    obj.capability.resolve(data);\n  }\n\n  clear() {\n    this._objs = Object.create(null);\n  }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n */\nclass RenderTask {\n  constructor(internalRenderTask) {\n    this._internalRenderTask = internalRenderTask;\n\n    /**\n     * Callback for incremental rendering -- a function that will be called\n     * each time the rendering is paused.  To continue rendering call the\n     * function that is the first argument to the callback.\n     * @type {function}\n     */\n    this.onContinue = null;\n  }\n\n  /**\n   * Promise for rendering task completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this._internalRenderTask.capability.promise;\n  }\n\n  /**\n   * Cancels the rendering task. If the task is currently rendering it will\n   * not be cancelled until graphics pauses with a timeout. The promise that\n   * this object extends will be rejected when cancelled.\n   */\n  cancel() {\n    this._internalRenderTask.cancel();\n  }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass InternalRenderTask {\n  static get canvasInUse() {\n    return shadow(this, \"canvasInUse\", new WeakSet());\n  }\n\n  constructor({\n    callback,\n    params,\n    objs,\n    commonObjs,\n    annotationCanvasMap,\n    operatorList,\n    pageIndex,\n    canvasFactory,\n    useRequestAnimationFrame = false,\n    pdfBug = false,\n  }) {\n    this.callback = callback;\n    this.params = params;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.operatorListIdx = null;\n    this.operatorList = operatorList;\n    this._pageIndex = pageIndex;\n    this.canvasFactory = canvasFactory;\n    this._pdfBug = pdfBug;\n\n    this.running = false;\n    this.graphicsReadyCallback = null;\n    this.graphicsReady = false;\n    this._useRequestAnimationFrame =\n      useRequestAnimationFrame === true && typeof window !== \"undefined\";\n    this.cancelled = false;\n    this.capability = createPromiseCapability();\n    this.task = new RenderTask(this);\n    // caching this-bound methods\n    this._cancelBound = this.cancel.bind(this);\n    this._continueBound = this._continue.bind(this);\n    this._scheduleNextBound = this._scheduleNext.bind(this);\n    this._nextBound = this._next.bind(this);\n    this._canvas = params.canvasContext.canvas;\n  }\n\n  get completed() {\n    return this.capability.promise.catch(function () {\n      // Ignoring errors, since we only want to know when rendering is\n      // no longer pending.\n    });\n  }\n\n  initializeGraphics({ transparency = false, optionalContentConfig }) {\n    if (this.cancelled) {\n      return;\n    }\n    if (this._canvas) {\n      if (InternalRenderTask.canvasInUse.has(this._canvas)) {\n        throw new Error(\n          \"Cannot use the same canvas during multiple render() operations. \" +\n            \"Use different canvas or ensure previous operations were \" +\n            \"cancelled or completed.\"\n        );\n      }\n      InternalRenderTask.canvasInUse.add(this._canvas);\n    }\n\n    if (this._pdfBug && globalThis.StepperManager?.enabled) {\n      this.stepper = globalThis.StepperManager.create(this._pageIndex);\n      this.stepper.init(this.operatorList);\n      this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n    }\n    const { canvasContext, viewport, transform, imageLayer, background } =\n      this.params;\n\n    this.gfx = new CanvasGraphics(\n      canvasContext,\n      this.commonObjs,\n      this.objs,\n      this.canvasFactory,\n      imageLayer,\n      optionalContentConfig,\n      this.annotationCanvasMap\n    );\n    this.gfx.beginDrawing({\n      transform,\n      viewport,\n      transparency,\n      background,\n    });\n    this.operatorListIdx = 0;\n    this.graphicsReady = true;\n    if (this.graphicsReadyCallback) {\n      this.graphicsReadyCallback();\n    }\n  }\n\n  cancel(error = null) {\n    this.running = false;\n    this.cancelled = true;\n    if (this.gfx) {\n      this.gfx.endDrawing();\n    }\n    if (this._canvas) {\n      InternalRenderTask.canvasInUse.delete(this._canvas);\n    }\n    this.callback(\n      error ||\n        new RenderingCancelledException(\n          `Rendering cancelled, page ${this._pageIndex + 1}`,\n          \"canvas\"\n        )\n    );\n  }\n\n  operatorListChanged() {\n    if (!this.graphicsReady) {\n      if (!this.graphicsReadyCallback) {\n        this.graphicsReadyCallback = this._continueBound;\n      }\n      return;\n    }\n\n    if (this.stepper) {\n      this.stepper.updateOperatorList(this.operatorList);\n    }\n\n    if (this.running) {\n      return;\n    }\n    this._continue();\n  }\n\n  _continue() {\n    this.running = true;\n    if (this.cancelled) {\n      return;\n    }\n    if (this.task.onContinue) {\n      this.task.onContinue(this._scheduleNextBound);\n    } else {\n      this._scheduleNext();\n    }\n  }\n\n  _scheduleNext() {\n    if (this._useRequestAnimationFrame) {\n      window.requestAnimationFrame(() => {\n        this._nextBound().catch(this._cancelBound);\n      });\n    } else {\n      Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n    }\n  }\n\n  async _next() {\n    if (this.cancelled) {\n      return;\n    }\n    this.operatorListIdx = this.gfx.executeOperatorList(\n      this.operatorList,\n      this.operatorListIdx,\n      this._continueBound,\n      this.stepper\n    );\n    if (this.operatorListIdx === this.operatorList.argsArray.length) {\n      this.running = false;\n      if (this.operatorList.lastChunk) {\n        this.gfx.endDrawing();\n        if (this._canvas) {\n          InternalRenderTask.canvasInUse.delete(this._canvas);\n        }\n        this.callback();\n      }\n    }\n  }\n}\n\n/** @type {string} */\nconst version =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : null;\n/** @type {string} */\nconst build =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : null;\n\nexport {\n  build,\n  DefaultCanvasFactory,\n  DefaultCMapReaderFactory,\n  DefaultStandardFontDataFactory,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFDocumentLoadingTask,\n  PDFDocumentProxy,\n  PDFPageProxy,\n  PDFWorker,\n  RenderTask,\n  setPDFNetworkStreamFactory,\n  version,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  IsEvalSupportedCached,\n  shadow,\n  string32,\n  unreachable,\n  UNSUPPORTED_FEATURES,\n  warn,\n} from \"../shared/util.js\";\n\nclass BaseFontLoader {\n  constructor({\n    docId,\n    onUnsupportedFeature,\n    ownerDocument = globalThis.document,\n    // For testing only.\n    styleElement = null,\n  }) {\n    if (this.constructor === BaseFontLoader) {\n      unreachable(\"Cannot initialize BaseFontLoader.\");\n    }\n    this.docId = docId;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this._document = ownerDocument;\n\n    this.nativeFontFaces = [];\n    this.styleElement =\n      typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"!PRODUCTION || TESTING\")\n        ? styleElement\n        : null;\n  }\n\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.push(nativeFontFace);\n    this._document.fonts.add(nativeFontFace);\n  }\n\n  insertRule(rule) {\n    let styleElement = this.styleElement;\n    if (!styleElement) {\n      styleElement = this.styleElement = this._document.createElement(\"style\");\n      styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n      this._document.documentElement\n        .getElementsByTagName(\"head\")[0]\n        .appendChild(styleElement);\n    }\n    const styleSheet = styleElement.sheet;\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  }\n\n  clear() {\n    for (const nativeFontFace of this.nativeFontFaces) {\n      this._document.fonts.delete(nativeFontFace);\n    }\n    this.nativeFontFaces.length = 0;\n\n    if (this.styleElement) {\n      // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n      this.styleElement.remove();\n      this.styleElement = null;\n    }\n  }\n\n  async bind(font) {\n    // Add the font to the DOM only once; skip if the font is already loaded.\n    if (font.attached || font.missingFile) {\n      return;\n    }\n    font.attached = true;\n\n    if (this.isFontLoadingAPISupported) {\n      const nativeFontFace = font.createNativeFontFace();\n      if (nativeFontFace) {\n        this.addNativeFontFace(nativeFontFace);\n        try {\n          await nativeFontFace.loaded;\n        } catch (ex) {\n          this._onUnsupportedFeature({\n            featureId: UNSUPPORTED_FEATURES.errorFontLoadNative,\n          });\n          warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n\n          // When font loading failed, fall back to the built-in font renderer.\n          font.disableFontFace = true;\n          throw ex;\n        }\n      }\n      return; // The font was, asynchronously, loaded.\n    }\n\n    // !this.isFontLoadingAPISupported\n    const rule = font.createFontFaceRule();\n    if (rule) {\n      this.insertRule(rule);\n\n      if (this.isSyncFontLoadingSupported) {\n        return; // The font was, synchronously, loaded.\n      }\n      await new Promise(resolve => {\n        const request = this._queueLoadingCallback(resolve);\n        this._prepareFontLoadEvent([rule], [font], request);\n      });\n      // The font was, asynchronously, loaded.\n    }\n  }\n\n  _queueLoadingCallback(callback) {\n    unreachable(\"Abstract method `_queueLoadingCallback`.\");\n  }\n\n  get isFontLoadingAPISupported() {\n    const hasFonts = !!this._document?.fonts;\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      return shadow(\n        this,\n        \"isFontLoadingAPISupported\",\n        hasFonts && !this.styleElement\n      );\n    }\n    return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n  }\n\n  // eslint-disable-next-line getter-return\n  get isSyncFontLoadingSupported() {\n    unreachable(\"Abstract method `isSyncFontLoadingSupported`.\");\n  }\n\n  // eslint-disable-next-line getter-return\n  get _loadTestFont() {\n    unreachable(\"Abstract method `_loadTestFont`.\");\n  }\n\n  _prepareFontLoadEvent(rules, fontsToLoad, request) {\n    unreachable(\"Abstract method `_prepareFontLoadEvent`.\");\n  }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  FontLoader = class MozcentralFontLoader extends BaseFontLoader {\n    get isSyncFontLoadingSupported() {\n      return shadow(this, \"isSyncFontLoadingSupported\", true);\n    }\n  };\n} else {\n  // PDFJSDev.test('CHROME || GENERIC')\n\n  FontLoader = class GenericFontLoader extends BaseFontLoader {\n    constructor(params) {\n      super(params);\n      this.loadingContext = {\n        requests: [],\n        nextRequestId: 0,\n      };\n      this.loadTestFontId = 0;\n    }\n\n    get isSyncFontLoadingSupported() {\n      let supported = false;\n      if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\")) {\n        if (typeof navigator === \"undefined\") {\n          // Node.js - we can pretend that sync font loading is supported.\n          supported = true;\n        } else {\n          // User agent string sniffing is bad, but there is no reliable way to\n          // tell if the font is fully loaded and ready to be used with canvas.\n          const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(\n            navigator.userAgent\n          );\n          if (m?.[1] >= 14) {\n            supported = true;\n          }\n          // TODO - other browsers...\n        }\n      }\n      return shadow(this, \"isSyncFontLoadingSupported\", supported);\n    }\n\n    _queueLoadingCallback(callback) {\n      function completeRequest() {\n        assert(!request.done, \"completeRequest() cannot be called twice.\");\n        request.done = true;\n\n        // Sending all completed requests in order of how they were queued.\n        while (context.requests.length > 0 && context.requests[0].done) {\n          const otherRequest = context.requests.shift();\n          setTimeout(otherRequest.callback, 0);\n        }\n      }\n\n      const context = this.loadingContext;\n      const request = {\n        id: `pdfjs-font-loading-${context.nextRequestId++}`,\n        done: false,\n        complete: completeRequest,\n        callback,\n      };\n      context.requests.push(request);\n      return request;\n    }\n\n    get _loadTestFont() {\n      const getLoadTestFont = function () {\n        // This is a CFF font with 1 glyph for '.' that fills its entire width\n        // and height.\n        return atob(\n          \"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" +\n            \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" +\n            \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" +\n            \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" +\n            \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" +\n            \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" +\n            \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" +\n            \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" +\n            \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" +\n            \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" +\n            \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" +\n            \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" +\n            \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n            \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" +\n            \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" +\n            \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" +\n            \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" +\n            \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\"\n        );\n      };\n      return shadow(this, \"_loadTestFont\", getLoadTestFont());\n    }\n\n    _prepareFontLoadEvent(rules, fonts, request) {\n      /** Hack begin */\n      // There's currently no event when a font has finished downloading so the\n      // following code is a dirty hack to 'guess' when a font is ready.\n      // It's assumed fonts are loaded in order, so add a known test font after\n      // the desired fonts and then test for the loading of that test font.\n\n      function int32(data, offset) {\n        return (\n          (data.charCodeAt(offset) << 24) |\n          (data.charCodeAt(offset + 1) << 16) |\n          (data.charCodeAt(offset + 2) << 8) |\n          (data.charCodeAt(offset + 3) & 0xff)\n        );\n      }\n      function spliceString(s, offset, remove, insert) {\n        const chunk1 = s.substring(0, offset);\n        const chunk2 = s.substring(offset + remove);\n        return chunk1 + insert + chunk2;\n      }\n      let i, ii;\n\n      // The temporary canvas is used to determine if fonts are loaded.\n      const canvas = this._document.createElement(\"canvas\");\n      canvas.width = 1;\n      canvas.height = 1;\n      const ctx = canvas.getContext(\"2d\");\n\n      let called = 0;\n      function isFontReady(name, callback) {\n        called++;\n        // With setTimeout clamping this gives the font ~100ms to load.\n        if (called > 30) {\n          warn(\"Load test font never loaded.\");\n          callback();\n          return;\n        }\n        ctx.font = \"30px \" + name;\n        ctx.fillText(\".\", 0, 20);\n        const imageData = ctx.getImageData(0, 0, 1, 1);\n        if (imageData.data[3] > 0) {\n          callback();\n          return;\n        }\n        setTimeout(isFontReady.bind(null, name, callback));\n      }\n\n      const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n      // Chromium seems to cache fonts based on a hash of the actual font data,\n      // so the font must be modified for each load test else it will appear to\n      // be loaded already.\n      // TODO: This could maybe be made faster by avoiding the btoa of the full\n      // font by splitting it in chunks before hand and padding the font id.\n      let data = this._loadTestFont;\n      const COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n      data = spliceString(\n        data,\n        COMMENT_OFFSET,\n        loadTestFontId.length,\n        loadTestFontId\n      );\n      // CFF checksum is important for IE, adjusting it\n      const CFF_CHECKSUM_OFFSET = 16;\n      const XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n      let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n      for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n        checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n      }\n      if (i < loadTestFontId.length) {\n        // align to 4 bytes boundary\n        checksum =\n          (checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i)) | 0;\n      }\n      data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n      const url = `url(data:font/opentype;base64,${btoa(data)});`;\n      const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n      this.insertRule(rule);\n\n      const names = [];\n      for (const font of fonts) {\n        names.push(font.loadedName);\n      }\n      names.push(loadTestFontId);\n\n      const div = this._document.createElement(\"div\");\n      div.style.visibility = \"hidden\";\n      div.style.width = div.style.height = \"10px\";\n      div.style.position = \"absolute\";\n      div.style.top = div.style.left = \"0px\";\n\n      for (const name of names) {\n        const span = this._document.createElement(\"span\");\n        span.textContent = \"Hi\";\n        span.style.fontFamily = name;\n        div.appendChild(span);\n      }\n      this._document.body.appendChild(div);\n\n      isFontReady(loadTestFontId, () => {\n        div.remove();\n        request.complete();\n      });\n      /** Hack end */\n    }\n  };\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nclass FontFaceObject {\n  constructor(\n    translatedData,\n    {\n      isEvalSupported = true,\n      disableFontFace = false,\n      ignoreErrors = false,\n      onUnsupportedFeature,\n      fontRegistry = null,\n    }\n  ) {\n    this.compiledGlyphs = Object.create(null);\n    // importing translated data\n    for (const i in translatedData) {\n      this[i] = translatedData[i];\n    }\n    this.isEvalSupported = isEvalSupported !== false;\n    this.disableFontFace = disableFontFace === true;\n    this.ignoreErrors = ignoreErrors === true;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this.fontRegistry = fontRegistry;\n  }\n\n  createNativeFontFace() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    let nativeFontFace;\n    if (!this.cssFontInfo) {\n      nativeFontFace = new FontFace(this.loadedName, this.data, {});\n    } else {\n      const css = {\n        weight: this.cssFontInfo.fontWeight,\n      };\n      if (this.cssFontInfo.italicAngle) {\n        css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n      }\n      nativeFontFace = new FontFace(\n        this.cssFontInfo.fontFamily,\n        this.data,\n        css\n      );\n    }\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this);\n    }\n    return nativeFontFace;\n  }\n\n  createFontFaceRule() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const data = bytesToString(this.data);\n    // Add the @font-face rule to the document.\n    const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n    let rule;\n    if (!this.cssFontInfo) {\n      rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n    } else {\n      let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n      if (this.cssFontInfo.italicAngle) {\n        css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n      }\n      rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n    }\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this, url);\n    }\n    return rule;\n  }\n\n  getPathGenerator(objs, character) {\n    if (this.compiledGlyphs[character] !== undefined) {\n      return this.compiledGlyphs[character];\n    }\n\n    let cmds;\n    try {\n      cmds = objs.get(this.loadedName + \"_path_\" + character);\n    } catch (ex) {\n      if (!this.ignoreErrors) {\n        throw ex;\n      }\n      this._onUnsupportedFeature({\n        featureId: UNSUPPORTED_FEATURES.errorFontGetPath,\n      });\n      warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n      return (this.compiledGlyphs[character] = function (c, size) {\n        // No-op function, to allow rendering to continue.\n      });\n    }\n\n    // If we can, compile cmds into JS for MAXIMUM SPEED...\n    if (this.isEvalSupported && IsEvalSupportedCached.value) {\n      const jsBuf = [];\n      for (const current of cmds) {\n        const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n        jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n      }\n      // eslint-disable-next-line no-new-func\n      return (this.compiledGlyphs[character] = new Function(\n        \"c\",\n        \"size\",\n        jsBuf.join(\"\")\n      ));\n    }\n    // ... but fall back on using Function.prototype.apply() if we're\n    // blocked from using eval() for whatever reason (like CSP policies).\n    return (this.compiledGlyphs[character] = function (c, size) {\n      for (const current of cmds) {\n        if (current.cmd === \"scale\") {\n          current.args = [size, -size];\n        }\n        c[current.cmd].apply(c, current.args);\n      }\n    });\n  }\n}\n\nexport { FontFaceObject, FontLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseStandardFontDataFactory,\n} from \"./base_factory.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { unreachable } from \"../shared/util.js\";\n\nlet NodeCanvasFactory = class {\n  constructor() {\n    unreachable(\"Not implemented: NodeCanvasFactory\");\n  }\n};\n\nlet NodeCMapReaderFactory = class {\n  constructor() {\n    unreachable(\"Not implemented: NodeCMapReaderFactory\");\n  }\n};\n\nlet NodeStandardFontDataFactory = class {\n  constructor() {\n    unreachable(\"Not implemented: NodeStandardFontDataFactory\");\n  }\n};\n\nif ((typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) && isNodeJS) {\n  const fetchData = function (url) {\n    return new Promise((resolve, reject) => {\n      const fs = __non_webpack_require__(\"fs\");\n      fs.readFile(url, (error, data) => {\n        if (error || !data) {\n          reject(new Error(error));\n          return;\n        }\n        resolve(new Uint8Array(data));\n      });\n    });\n  };\n\n  NodeCanvasFactory = class extends BaseCanvasFactory {\n    _createCanvas(width, height) {\n      const Canvas = __non_webpack_require__(\"canvas\");\n      return Canvas.createCanvas(width, height);\n    }\n  };\n\n  NodeCMapReaderFactory = class extends BaseCMapReaderFactory {\n    _fetchData(url, compressionType) {\n      return fetchData(url).then(data => {\n        return { cMapData: data, compressionType };\n      });\n    }\n  };\n\n  NodeStandardFontDataFactory = class extends BaseStandardFontDataFactory {\n    _fetchData(url) {\n      return fetchData(url);\n    }\n  };\n}\n\nexport {\n  NodeCanvasFactory,\n  NodeCMapReaderFactory,\n  NodeStandardFontDataFactory,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap } from \"../shared/util.js\";\n\n/**\n * Key/value storage for annotation data in forms.\n */\nclass AnnotationStorage {\n  constructor() {\n    this._storage = new Map();\n    this._timeStamp = Date.now();\n    this._modified = false;\n\n    // Callbacks to signal when the modification state is set or reset.\n    // This is used by the viewer to only bind on `beforeunload` if forms\n    // are actually edited to prevent doing so unconditionally since that\n    // can have undesirable effects.\n    this.onSetModified = null;\n    this.onResetModified = null;\n  }\n\n  /**\n   * Get the value for a given key if it exists, or return the default value.\n   *\n   * @public\n   * @memberof AnnotationStorage\n   * @param {string} key\n   * @param {Object} defaultValue\n   * @returns {Object}\n   */\n  getValue(key, defaultValue) {\n    const value = this._storage.get(key);\n    if (value === undefined) {\n      return defaultValue;\n    }\n\n    return Object.assign(defaultValue, value);\n  }\n\n  /**\n   * Set the value for a given key\n   *\n   * @public\n   * @memberof AnnotationStorage\n   * @param {string} key\n   * @param {Object} value\n   */\n  setValue(key, value) {\n    const obj = this._storage.get(key);\n    let modified = false;\n    if (obj !== undefined) {\n      for (const [entry, val] of Object.entries(value)) {\n        if (obj[entry] !== val) {\n          modified = true;\n          obj[entry] = val;\n        }\n      }\n    } else {\n      modified = true;\n      this._storage.set(key, value);\n    }\n    if (modified) {\n      this._timeStamp = Date.now();\n      this._setModified();\n    }\n  }\n\n  getAll() {\n    return this._storage.size > 0 ? objectFromMap(this._storage) : null;\n  }\n\n  get size() {\n    return this._storage.size;\n  }\n\n  /**\n   * @private\n   */\n  _setModified() {\n    if (!this._modified) {\n      this._modified = true;\n      if (typeof this.onSetModified === \"function\") {\n        this.onSetModified();\n      }\n    }\n  }\n\n  resetModified() {\n    if (this._modified) {\n      this._modified = false;\n      if (typeof this.onResetModified === \"function\") {\n        this.onResetModified();\n      }\n    }\n  }\n\n  /**\n   * PLEASE NOTE: Only intended for usage within the API itself.\n   * @ignore\n   */\n  get serializable() {\n    return this._storage.size > 0 ? this._storage : null;\n  }\n\n  /**\n   * PLEASE NOTE: Only intended for usage within the API itself.\n   * @ignore\n   */\n  get lastModified() {\n    return this._timeStamp.toString();\n  }\n}\n\nexport { AnnotationStorage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  IsLittleEndianCached,\n  isNum,\n  OPS,\n  shadow,\n  TextRenderingMode,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  getShadingPattern,\n  PathType,\n  TilingPattern,\n} from \"./pattern_helper.js\";\nimport { PixelsPerInch } from \"./display_utils.js\";\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n// Minimal font size that would be used during canvas fillText operations.\nconst MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\n\n// Defines the time the `executeOperatorList`-method is going to be executing\n// before it stops and shedules a continue of execution.\nconst EXECUTION_TIME = 15; // ms\n// Defines the number of steps before checking the execution time.\nconst EXECUTION_STEPS = 10;\n\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\n\nconst FULL_CHUNK_HEIGHT = 16;\n\n// Because of https://bugs.chromium.org/p/chromium/issues/detail?id=1170396\n// some curves aren't rendered correctly.\n// Multiplying lineWidth by this factor should help to have \"correct\"\n// rendering with no artifacts.\n// Once the bug is fixed upstream, we can remove this constant and its use.\nconst LINEWIDTH_SCALE_FACTOR = 1.000001;\n\n/**\n * Overrides certain methods on a 2d ctx so that when they are called they\n * will also call the same method on the destCtx. The methods that are\n * overridden are all the transformation state modifiers, path creation, and\n * save/restore. We only forward these specific methods because they are the\n * only state modifiers that we cannot copy over when we switch contexts.\n *\n * To remove mirroring call `ctx._removeMirroring()`.\n *\n * @param {Object} ctx - The 2d canvas context that will duplicate its calls on\n *   the destCtx.\n * @param {Object} destCtx - The 2d canvas context that will receive the\n *   forwarded calls.\n */\nfunction mirrorContextOperations(ctx, destCtx) {\n  if (ctx._removeMirroring) {\n    throw new Error(\"Context is already forwarding operations.\");\n  }\n  ctx.__originalSave = ctx.save;\n  ctx.__originalRestore = ctx.restore;\n  ctx.__originalRotate = ctx.rotate;\n  ctx.__originalScale = ctx.scale;\n  ctx.__originalTranslate = ctx.translate;\n  ctx.__originalTransform = ctx.transform;\n  ctx.__originalSetTransform = ctx.setTransform;\n  ctx.__originalResetTransform = ctx.resetTransform;\n  ctx.__originalClip = ctx.clip;\n  ctx.__originalMoveTo = ctx.moveTo;\n  ctx.__originalLineTo = ctx.lineTo;\n  ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n  ctx.__originalRect = ctx.rect;\n  ctx.__originalClosePath = ctx.closePath;\n  ctx.__originalBeginPath = ctx.beginPath;\n\n  ctx._removeMirroring = () => {\n    ctx.save = ctx.__originalSave;\n    ctx.restore = ctx.__originalRestore;\n    ctx.rotate = ctx.__originalRotate;\n    ctx.scale = ctx.__originalScale;\n    ctx.translate = ctx.__originalTranslate;\n    ctx.transform = ctx.__originalTransform;\n    ctx.setTransform = ctx.__originalSetTransform;\n    ctx.resetTransform = ctx.__originalResetTransform;\n\n    ctx.clip = ctx.__originalClip;\n    ctx.moveTo = ctx.__originalMoveTo;\n    ctx.lineTo = ctx.__originalLineTo;\n    ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n    ctx.rect = ctx.__originalRect;\n    ctx.closePath = ctx.__originalClosePath;\n    ctx.beginPath = ctx.__originalBeginPath;\n    delete ctx._removeMirroring;\n  };\n\n  ctx.save = function ctxSave() {\n    destCtx.save();\n    this.__originalSave();\n  };\n\n  ctx.restore = function ctxRestore() {\n    destCtx.restore();\n    this.__originalRestore();\n  };\n\n  ctx.translate = function ctxTranslate(x, y) {\n    destCtx.translate(x, y);\n    this.__originalTranslate(x, y);\n  };\n\n  ctx.scale = function ctxScale(x, y) {\n    destCtx.scale(x, y);\n    this.__originalScale(x, y);\n  };\n\n  ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n    destCtx.transform(a, b, c, d, e, f);\n    this.__originalTransform(a, b, c, d, e, f);\n  };\n\n  ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n    destCtx.setTransform(a, b, c, d, e, f);\n    this.__originalSetTransform(a, b, c, d, e, f);\n  };\n\n  ctx.resetTransform = function ctxResetTransform() {\n    destCtx.resetTransform();\n    this.__originalResetTransform();\n  };\n\n  ctx.rotate = function ctxRotate(angle) {\n    destCtx.rotate(angle);\n    this.__originalRotate(angle);\n  };\n\n  ctx.clip = function ctxRotate(rule) {\n    destCtx.clip(rule);\n    this.__originalClip(rule);\n  };\n\n  ctx.moveTo = function (x, y) {\n    destCtx.moveTo(x, y);\n    this.__originalMoveTo(x, y);\n  };\n\n  ctx.lineTo = function (x, y) {\n    destCtx.lineTo(x, y);\n    this.__originalLineTo(x, y);\n  };\n\n  ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n    destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n    this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n  };\n\n  ctx.rect = function (x, y, width, height) {\n    destCtx.rect(x, y, width, height);\n    this.__originalRect(x, y, width, height);\n  };\n\n  ctx.closePath = function () {\n    destCtx.closePath();\n    this.__originalClosePath();\n  };\n\n  ctx.beginPath = function () {\n    destCtx.beginPath();\n    this.__originalBeginPath();\n  };\n}\n\nfunction addContextCurrentTransform(ctx) {\n  // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n  if (ctx.mozCurrentTransform) {\n    return;\n  }\n  ctx._originalSave = ctx.save;\n  ctx._originalRestore = ctx.restore;\n  ctx._originalRotate = ctx.rotate;\n  ctx._originalScale = ctx.scale;\n  ctx._originalTranslate = ctx.translate;\n  ctx._originalTransform = ctx.transform;\n  ctx._originalSetTransform = ctx.setTransform;\n  ctx._originalResetTransform = ctx.resetTransform;\n\n  ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n  ctx._transformStack = [];\n\n  try {\n    // The call to getOwnPropertyDescriptor throws an exception in Node.js:\n    // \"TypeError: Method lineWidth called on incompatible receiver\n    //  #<CanvasRenderingContext2D>\".\n    const desc = Object.getOwnPropertyDescriptor(\n      Object.getPrototypeOf(ctx),\n      \"lineWidth\"\n    );\n\n    ctx._setLineWidth = desc.set;\n    ctx._getLineWidth = desc.get;\n\n    Object.defineProperty(ctx, \"lineWidth\", {\n      set: function setLineWidth(width) {\n        this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n      },\n      get: function getLineWidth() {\n        return this._getLineWidth();\n      },\n    });\n  } catch (_) {}\n\n  Object.defineProperty(ctx, \"mozCurrentTransform\", {\n    get: function getCurrentTransform() {\n      return this._transformMatrix;\n    },\n  });\n\n  Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n    get: function getCurrentTransformInverse() {\n      // Calculation done using WolframAlpha:\n      // http://www.wolframalpha.com/input/?\n      //   i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n      const [a, b, c, d, e, f] = this._transformMatrix;\n      const ad_bc = a * d - b * c;\n      const bc_ad = b * c - a * d;\n\n      return [\n        d / ad_bc,\n        b / bc_ad,\n        c / bc_ad,\n        a / ad_bc,\n        (d * e - c * f) / bc_ad,\n        (b * e - a * f) / ad_bc,\n      ];\n    },\n  });\n\n  ctx.save = function ctxSave() {\n    const old = this._transformMatrix;\n    this._transformStack.push(old);\n    this._transformMatrix = old.slice(0, 6);\n\n    this._originalSave();\n  };\n\n  ctx.restore = function ctxRestore() {\n    const prev = this._transformStack.pop();\n    if (prev) {\n      this._transformMatrix = prev;\n      this._originalRestore();\n    }\n  };\n\n  ctx.translate = function ctxTranslate(x, y) {\n    const m = this._transformMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n\n    this._originalTranslate(x, y);\n  };\n\n  ctx.scale = function ctxScale(x, y) {\n    const m = this._transformMatrix;\n    m[0] *= x;\n    m[1] *= x;\n    m[2] *= y;\n    m[3] *= y;\n\n    this._originalScale(x, y);\n  };\n\n  ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n    const m = this._transformMatrix;\n    this._transformMatrix = [\n      m[0] * a + m[2] * b,\n      m[1] * a + m[3] * b,\n      m[0] * c + m[2] * d,\n      m[1] * c + m[3] * d,\n      m[0] * e + m[2] * f + m[4],\n      m[1] * e + m[3] * f + m[5],\n    ];\n\n    ctx._originalTransform(a, b, c, d, e, f);\n  };\n\n  ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n    this._transformMatrix = [a, b, c, d, e, f];\n\n    ctx._originalSetTransform(a, b, c, d, e, f);\n  };\n\n  ctx.resetTransform = function ctxResetTransform() {\n    this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n    ctx._originalResetTransform();\n  };\n\n  ctx.rotate = function ctxRotate(angle) {\n    const cosValue = Math.cos(angle);\n    const sinValue = Math.sin(angle);\n\n    const m = this._transformMatrix;\n    this._transformMatrix = [\n      m[0] * cosValue + m[2] * sinValue,\n      m[1] * cosValue + m[3] * sinValue,\n      m[0] * -sinValue + m[2] * cosValue,\n      m[1] * -sinValue + m[3] * cosValue,\n      m[4],\n      m[5],\n    ];\n\n    this._originalRotate(angle);\n  };\n}\n\nclass CachedCanvases {\n  constructor(canvasFactory) {\n    this.canvasFactory = canvasFactory;\n    this.cache = Object.create(null);\n  }\n\n  getCanvas(id, width, height, trackTransform) {\n    let canvasEntry;\n    if (this.cache[id] !== undefined) {\n      canvasEntry = this.cache[id];\n      this.canvasFactory.reset(canvasEntry, width, height);\n      // reset canvas transform for emulated mozCurrentTransform, if needed\n      canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n    } else {\n      canvasEntry = this.canvasFactory.create(width, height);\n      this.cache[id] = canvasEntry;\n    }\n    if (trackTransform) {\n      addContextCurrentTransform(canvasEntry.context);\n    }\n    return canvasEntry;\n  }\n\n  clear() {\n    for (const id in this.cache) {\n      const canvasEntry = this.cache[id];\n      this.canvasFactory.destroy(canvasEntry);\n      delete this.cache[id];\n    }\n  }\n}\n\nfunction compileType3Glyph(imgData) {\n  const POINT_TO_PROCESS_LIMIT = 1000;\n  const POINT_TYPES = new Uint8Array([\n    0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0,\n  ]);\n\n  const width = imgData.width,\n    height = imgData.height,\n    width1 = width + 1;\n  let i, ii, j, j0;\n  const points = new Uint8Array(width1 * (height + 1));\n\n  // decodes bit-packed mask data\n  const lineSize = (width + 7) & ~7,\n    data0 = imgData.data;\n  const data = new Uint8Array(lineSize * height);\n  let pos = 0;\n  for (i = 0, ii = data0.length; i < ii; i++) {\n    const elem = data0[i];\n    let mask = 128;\n    while (mask > 0) {\n      data[pos++] = elem & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  // finding interesting points: every point is located between mask pixels,\n  // so there will be points of the (width + 1)x(height + 1) grid. Every point\n  // will have flags assigned based on neighboring mask pixels:\n  //   4 | 8\n  //   --P--\n  //   2 | 1\n  // We are interested only in points with the flags:\n  //   - outside corners: 1, 2, 4, 8;\n  //   - inside corners: 7, 11, 13, 14;\n  //   - and, intersections: 5, 10.\n  let count = 0;\n  pos = 0;\n  if (data[pos] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n  for (i = 1; i < height; i++) {\n    pos = i * lineSize;\n    j0 = i * width1;\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n    // 'sum' is the position of the current pixel configuration in the 'TYPES'\n    // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n    let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n    for (j = 1; j < width; j++) {\n      sum =\n        (sum >> 2) +\n        (data[pos + 1] ? 4 : 0) +\n        (data[pos - lineSize + 1] ? 8 : 0);\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n      pos++;\n    }\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n\n  pos = lineSize * (height - 1);\n  j0 = i * width1;\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n\n  // building outlines\n  const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  const outlines = [];\n  for (i = 0; count && i <= height; i++) {\n    let p = i * width1;\n    const end = p + width;\n    while (p < end && !points[p]) {\n      p++;\n    }\n    if (p === end) {\n      continue;\n    }\n    const coords = [p % width1, i];\n\n    const p0 = p;\n    let type = points[p];\n    do {\n      const step = steps[type];\n      do {\n        p += step;\n      } while (!points[p]);\n\n      const pp = points[p];\n      if (pp !== 5 && pp !== 10) {\n        // set new direction\n        type = pp;\n        // delete mark\n        points[p] = 0;\n      } else {\n        // type is 5 or 10, ie, a crossing\n        // set new direction\n        type = pp & ((0x33 * type) >> 4);\n        // set new type for \"future hit\"\n        points[p] &= (type >> 2) | (type << 2);\n      }\n\n      coords.push(p % width1, (p / width1) | 0);\n\n      if (!points[p]) {\n        --count;\n      }\n    } while (p0 !== p);\n    outlines.push(coords);\n    --i;\n  }\n\n  const drawOutline = function (c) {\n    c.save();\n    // the path shall be painted in [0..1]x[0..1] space\n    c.scale(1 / width, -1 / height);\n    c.translate(0, -height);\n    c.beginPath();\n    for (let k = 0, kk = outlines.length; k < kk; k++) {\n      const o = outlines[k];\n      c.moveTo(o[0], o[1]);\n      for (let l = 2, ll = o.length; l < ll; l += 2) {\n        c.lineTo(o[l], o[l + 1]);\n      }\n    }\n    c.fill();\n    c.beginPath();\n    c.restore();\n  };\n\n  return drawOutline;\n}\n\nclass CanvasExtraState {\n  constructor(width, height) {\n    // Are soft masks and alpha values shapes or opacities?\n    this.alphaIsShape = false;\n    this.fontSize = 0;\n    this.fontSizeScale = 1;\n    this.textMatrix = IDENTITY_MATRIX;\n    this.textMatrixScale = 1;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.textRise = 0;\n    // Default fore and background colors\n    this.fillColor = \"#000000\";\n    this.strokeColor = \"#000000\";\n    this.patternFill = false;\n    // Note: fill alpha applies to all non-stroking operations\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.activeSMask = null;\n    this.transferMaps = null;\n\n    this.startNewPathAndClipBox([0, 0, width, height]);\n  }\n\n  clone() {\n    const clone = Object.create(this);\n    clone.clipBox = this.clipBox.slice();\n    return clone;\n  }\n\n  setCurrentPoint(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  updatePathMinMax(transform, x, y) {\n    [x, y] = Util.applyTransform([x, y], transform);\n    this.minX = Math.min(this.minX, x);\n    this.minY = Math.min(this.minY, y);\n    this.maxX = Math.max(this.maxX, x);\n    this.maxY = Math.max(this.maxY, y);\n  }\n\n  updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3) {\n    const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n    this.updatePathMinMax(transform, box[0], box[1]);\n    this.updatePathMinMax(transform, box[2], box[3]);\n  }\n\n  getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n    const box = [this.minX, this.minY, this.maxX, this.maxY];\n    if (pathType === PathType.STROKE) {\n      if (!transform) {\n        unreachable(\"Stroke bounding box must include transform.\");\n      }\n      // Stroked paths can be outside of the path bounding box by 1/2 the line\n      // width.\n      const scale = Util.singularValueDecompose2dScale(transform);\n      const xStrokePad = (scale[0] * this.lineWidth) / 2;\n      const yStrokePad = (scale[1] * this.lineWidth) / 2;\n      box[0] -= xStrokePad;\n      box[1] -= yStrokePad;\n      box[2] += xStrokePad;\n      box[3] += yStrokePad;\n    }\n    return box;\n  }\n\n  updateClipFromPath() {\n    const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n    this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n  }\n\n  startNewPathAndClipBox(box) {\n    this.clipBox = box;\n    this.minX = Infinity;\n    this.minY = Infinity;\n    this.maxX = 0;\n    this.maxY = 0;\n  }\n\n  getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n    return Util.intersect(\n      this.clipBox,\n      this.getPathBoundingBox(pathType, transform)\n    );\n  }\n}\n\nfunction putBinaryImageData(ctx, imgData, transferMaps = null) {\n  if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n    ctx.putImageData(imgData, 0, 0);\n    return;\n  }\n\n  // Put the image data to the canvas in chunks, rather than putting the\n  // whole image at once.  This saves JS memory, because the ImageData object\n  // is smaller. It also possibly saves C++ memory within the implementation\n  // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n  // the data passed to putImageData()). |n| shouldn't be too small, however,\n  // because too many putImageData() calls will slow things down.\n  //\n  // Note: as written, if the last chunk is partial, the putImageData() call\n  // will (conceptually) put pixels past the bounds of the canvas.  But\n  // that's ok; any such pixels are ignored.\n\n  const height = imgData.height,\n    width = imgData.width;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0,\n    destPos;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n  let i, j, thisChunkHeight, elemsInThisChunk;\n\n  let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n  if (transferMaps) {\n    switch (transferMaps.length) {\n      case 1:\n        transferMapRed = transferMaps[0];\n        transferMapGreen = transferMaps[0];\n        transferMapBlue = transferMaps[0];\n        transferMapGray = transferMaps[0];\n        break;\n      case 4:\n        transferMapRed = transferMaps[0];\n        transferMapGreen = transferMaps[1];\n        transferMapBlue = transferMaps[2];\n        transferMapGray = transferMaps[3];\n        break;\n    }\n  }\n\n  // There are multiple forms in which the pixel data can be passed, and\n  // imgData.kind tells us which one this is.\n  if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n    // Grayscale, 1 bit per pixel (i.e. black-and-white).\n    const srcLength = src.byteLength;\n    const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n    const dest32DataLength = dest32.length;\n    const fullSrcDiff = (width + 7) >> 3;\n    let white = 0xffffffff;\n    let black = IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;\n\n    if (transferMapGray) {\n      if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n        [white, black] = [black, white];\n      }\n    }\n\n    for (i = 0; i < totalChunks; i++) {\n      thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n      destPos = 0;\n      for (j = 0; j < thisChunkHeight; j++) {\n        const srcDiff = srcLength - srcPos;\n        let k = 0;\n        const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n        const kEndUnrolled = kEnd & ~7;\n        let mask = 0;\n        let srcByte = 0;\n        for (; k < kEndUnrolled; k += 8) {\n          srcByte = src[srcPos++];\n          dest32[destPos++] = srcByte & 128 ? white : black;\n          dest32[destPos++] = srcByte & 64 ? white : black;\n          dest32[destPos++] = srcByte & 32 ? white : black;\n          dest32[destPos++] = srcByte & 16 ? white : black;\n          dest32[destPos++] = srcByte & 8 ? white : black;\n          dest32[destPos++] = srcByte & 4 ? white : black;\n          dest32[destPos++] = srcByte & 2 ? white : black;\n          dest32[destPos++] = srcByte & 1 ? white : black;\n        }\n        for (; k < kEnd; k++) {\n          if (mask === 0) {\n            srcByte = src[srcPos++];\n            mask = 128;\n          }\n\n          dest32[destPos++] = srcByte & mask ? white : black;\n          mask >>= 1;\n        }\n      }\n      // We ran out of input. Make all remaining pixels transparent.\n      while (destPos < dest32DataLength) {\n        dest32[destPos++] = 0;\n      }\n\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n    // RGBA, 32-bits per pixel.\n    const hasTransferMaps = !!(\n      transferMapRed ||\n      transferMapGreen ||\n      transferMapBlue\n    );\n\n    j = 0;\n    elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n    for (i = 0; i < fullChunks; i++) {\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n      srcPos += elemsInThisChunk;\n\n      if (hasTransferMaps) {\n        for (let k = 0; k < elemsInThisChunk; k += 4) {\n          if (transferMapRed) {\n            dest[k + 0] = transferMapRed[dest[k + 0]];\n          }\n          if (transferMapGreen) {\n            dest[k + 1] = transferMapGreen[dest[k + 1]];\n          }\n          if (transferMapBlue) {\n            dest[k + 2] = transferMapBlue[dest[k + 2]];\n          }\n        }\n      }\n\n      ctx.putImageData(chunkImgData, 0, j);\n      j += FULL_CHUNK_HEIGHT;\n    }\n    if (i < totalChunks) {\n      elemsInThisChunk = width * partialChunkHeight * 4;\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n      if (hasTransferMaps) {\n        for (let k = 0; k < elemsInThisChunk; k += 4) {\n          if (transferMapRed) {\n            dest[k + 0] = transferMapRed[dest[k + 0]];\n          }\n          if (transferMapGreen) {\n            dest[k + 1] = transferMapGreen[dest[k + 1]];\n          }\n          if (transferMapBlue) {\n            dest[k + 2] = transferMapBlue[dest[k + 2]];\n          }\n        }\n      }\n\n      ctx.putImageData(chunkImgData, 0, j);\n    }\n  } else if (imgData.kind === ImageKind.RGB_24BPP) {\n    // RGB, 24-bits per pixel.\n    const hasTransferMaps = !!(\n      transferMapRed ||\n      transferMapGreen ||\n      transferMapBlue\n    );\n\n    thisChunkHeight = FULL_CHUNK_HEIGHT;\n    elemsInThisChunk = width * thisChunkHeight;\n    for (i = 0; i < totalChunks; i++) {\n      if (i >= fullChunks) {\n        thisChunkHeight = partialChunkHeight;\n        elemsInThisChunk = width * thisChunkHeight;\n      }\n\n      destPos = 0;\n      for (j = elemsInThisChunk; j--; ) {\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = 255;\n      }\n\n      if (hasTransferMaps) {\n        for (let k = 0; k < destPos; k += 4) {\n          if (transferMapRed) {\n            dest[k + 0] = transferMapRed[dest[k + 0]];\n          }\n          if (transferMapGreen) {\n            dest[k + 1] = transferMapGreen[dest[k + 1]];\n          }\n          if (transferMapBlue) {\n            dest[k + 2] = transferMapBlue[dest[k + 2]];\n          }\n        }\n      }\n\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else {\n    throw new Error(`bad image kind: ${imgData.kind}`);\n  }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n  const height = imgData.height,\n    width = imgData.width;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n\n  for (let i = 0; i < totalChunks; i++) {\n    const thisChunkHeight =\n      i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n    // Expand the mask so it can be used by the canvas.  Any required\n    // inversion has already been handled.\n    let destPos = 3; // alpha component offset\n    for (let j = 0; j < thisChunkHeight; j++) {\n      let elem,\n        mask = 0;\n      for (let k = 0; k < width; k++) {\n        if (!mask) {\n          elem = src[srcPos++];\n          mask = 128;\n        }\n        dest[destPos] = elem & mask ? 0 : 255;\n        destPos += 4;\n        mask >>= 1;\n      }\n    }\n    ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n  }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n  const properties = [\n    \"strokeStyle\",\n    \"fillStyle\",\n    \"fillRule\",\n    \"globalAlpha\",\n    \"lineWidth\",\n    \"lineCap\",\n    \"lineJoin\",\n    \"miterLimit\",\n    \"globalCompositeOperation\",\n    \"font\",\n  ];\n  for (let i = 0, ii = properties.length; i < ii; i++) {\n    const property = properties[i];\n    if (sourceCtx[property] !== undefined) {\n      destCtx[property] = sourceCtx[property];\n    }\n  }\n  if (sourceCtx.setLineDash !== undefined) {\n    destCtx.setLineDash(sourceCtx.getLineDash());\n    destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n  }\n}\n\nfunction resetCtxToDefault(ctx) {\n  ctx.strokeStyle = \"#000000\";\n  ctx.fillStyle = \"#000000\";\n  ctx.fillRule = \"nonzero\";\n  ctx.globalAlpha = 1;\n  ctx.lineWidth = 1;\n  ctx.lineCap = \"butt\";\n  ctx.lineJoin = \"miter\";\n  ctx.miterLimit = 10;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.font = \"10px sans-serif\";\n  if (ctx.setLineDash !== undefined) {\n    ctx.setLineDash([]);\n    ctx.lineDashOffset = 0;\n  }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n  const length = bytes.length;\n  for (let i = 3; i < length; i += 4) {\n    const alpha = bytes[i];\n    if (alpha === 0) {\n      bytes[i - 3] = r0;\n      bytes[i - 2] = g0;\n      bytes[i - 1] = b0;\n    } else if (alpha < 255) {\n      const alpha_ = 255 - alpha;\n      bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n      bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n      bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n    }\n  }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n  const length = maskData.length;\n  const scale = 1 / 255;\n  for (let i = 3; i < length; i += 4) {\n    const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n    layerData[i] = (layerData[i] * alpha * scale) | 0;\n  }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n  const length = maskData.length;\n  for (let i = 3; i < length; i += 4) {\n    const y =\n      maskData[i - 3] * 77 + // * 0.3 / 255 * 0x10000\n      maskData[i - 2] * 152 + // * 0.59 ....\n      maskData[i - 1] * 28; // * 0.11 ....\n    layerData[i] = transferMap\n      ? (layerData[i] * transferMap[y >> 8]) >> 8\n      : (layerData[i] * y) >> 16;\n  }\n}\n\nfunction genericComposeSMask(\n  maskCtx,\n  layerCtx,\n  width,\n  height,\n  subtype,\n  backdrop,\n  transferMap,\n  layerOffsetX,\n  layerOffsetY,\n  maskOffsetX,\n  maskOffsetY\n) {\n  const hasBackdrop = !!backdrop;\n  const r0 = hasBackdrop ? backdrop[0] : 0;\n  const g0 = hasBackdrop ? backdrop[1] : 0;\n  const b0 = hasBackdrop ? backdrop[2] : 0;\n\n  let composeFn;\n  if (subtype === \"Luminosity\") {\n    composeFn = composeSMaskLuminosity;\n  } else {\n    composeFn = composeSMaskAlpha;\n  }\n\n  // processing image in chunks to save memory\n  const PIXELS_TO_PROCESS = 1048576;\n  const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n  for (let row = 0; row < height; row += chunkSize) {\n    const chunkHeight = Math.min(chunkSize, height - row);\n    const maskData = maskCtx.getImageData(\n      layerOffsetX - maskOffsetX,\n      row + (layerOffsetY - maskOffsetY),\n      width,\n      chunkHeight\n    );\n    const layerData = layerCtx.getImageData(\n      layerOffsetX,\n      row + layerOffsetY,\n      width,\n      chunkHeight\n    );\n\n    if (hasBackdrop) {\n      composeSMaskBackdrop(maskData.data, r0, g0, b0);\n    }\n    composeFn(maskData.data, layerData.data, transferMap);\n\n    layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n  }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n  const layerOffsetX = layerBox[0];\n  const layerOffsetY = layerBox[1];\n  const layerWidth = layerBox[2] - layerOffsetX;\n  const layerHeight = layerBox[3] - layerOffsetY;\n  if (layerWidth === 0 || layerHeight === 0) {\n    return;\n  }\n  genericComposeSMask(\n    smask.context,\n    layerCtx,\n    layerWidth,\n    layerHeight,\n    smask.subtype,\n    smask.backdrop,\n    smask.transferMap,\n    layerOffsetX,\n    layerOffsetY,\n    smask.offsetX,\n    smask.offsetY\n  );\n  ctx.save();\n  ctx.globalAlpha = 1;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.setTransform(1, 0, 0, 1, 0, 0);\n  ctx.drawImage(layerCtx.canvas, 0, 0);\n  ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n  const scale = Util.singularValueDecompose2dScale(transform);\n  // Round to a 32bit float so that `<=` check below will pass for numbers that\n  // are very close, but not exactly the same 64bit floats.\n  scale[0] = Math.fround(scale[0]);\n  scale[1] = Math.fround(scale[1]);\n  const actualScale = Math.fround(\n    (globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS\n  );\n  if (interpolate !== undefined) {\n    // If the value is explicitly set use it.\n    return interpolate;\n  } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n    // Smooth when downscaling.\n    return true;\n  }\n  // Don't smooth when upscaling.\n  return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n  constructor(\n    canvasCtx,\n    commonObjs,\n    objs,\n    canvasFactory,\n    imageLayer,\n    optionalContentConfig,\n    annotationCanvasMap\n  ) {\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState(\n      this.ctx.canvas.width,\n      this.ctx.canvas.height\n    );\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.res = null;\n    this.xobjs = null;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.canvasFactory = canvasFactory;\n    this.imageLayer = imageLayer;\n    this.groupStack = [];\n    this.processingType3 = null;\n    // Patterns are painted relative to the initial page/form transform, see\n    // PDF spec 8.7.2 NOTE 1.\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n    this.smaskStack = [];\n    this.smaskCounter = 0;\n    this.tempSMask = null;\n    this.suspendedCtx = null;\n    this.contentVisible = true;\n    this.markedContentStack = [];\n    this.optionalContentConfig = optionalContentConfig;\n    this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n    this.cachedPatterns = new Map();\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.viewportScale = 1;\n    this.outputScaleX = 1;\n    this.outputScaleY = 1;\n    if (canvasCtx) {\n      // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n      // the transformation must already be set in canvasCtx._transformMatrix.\n      addContextCurrentTransform(canvasCtx);\n    }\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  beginDrawing({\n    transform,\n    viewport,\n    transparency = false,\n    background = null,\n  }) {\n    // For pdfs that use blend modes we have to clear the canvas else certain\n    // blend modes can look wrong since we'd be blending with a white\n    // backdrop. The problem with a transparent backdrop though is we then\n    // don't get sub pixel anti aliasing on text, creating temporary\n    // transparent canvas when we have blend modes.\n    const width = this.ctx.canvas.width;\n    const height = this.ctx.canvas.height;\n\n    this.ctx.save();\n    this.ctx.fillStyle = background || \"rgb(255, 255, 255)\";\n    this.ctx.fillRect(0, 0, width, height);\n    this.ctx.restore();\n\n    if (transparency) {\n      const transparentCanvas = this.cachedCanvases.getCanvas(\n        \"transparent\",\n        width,\n        height,\n        true\n      );\n      this.compositeCtx = this.ctx;\n      this.transparentCanvas = transparentCanvas.canvas;\n      this.ctx = transparentCanvas.context;\n      this.ctx.save();\n      // The transform can be applied before rendering, transferring it to\n      // the new canvas.\n      this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n    }\n\n    this.ctx.save();\n    resetCtxToDefault(this.ctx);\n    if (transform) {\n      this.ctx.transform.apply(this.ctx, transform);\n      this.outputScaleX = transform[0];\n      this.outputScaleY = transform[0];\n    }\n    this.ctx.transform.apply(this.ctx, viewport.transform);\n    this.viewportScale = viewport.scale;\n\n    this.baseTransform = this.ctx.mozCurrentTransform.slice();\n    this._combinedScaleFactor = Math.hypot(\n      this.baseTransform[0],\n      this.baseTransform[2]\n    );\n\n    if (this.imageLayer) {\n      this.imageLayer.beginLayout();\n    }\n  }\n\n  executeOperatorList(\n    operatorList,\n    executionStartIdx,\n    continueCallback,\n    stepper\n  ) {\n    const argsArray = operatorList.argsArray;\n    const fnArray = operatorList.fnArray;\n    let i = executionStartIdx || 0;\n    const argsArrayLen = argsArray.length;\n\n    // Sometimes the OperatorList to execute is empty.\n    if (argsArrayLen === i) {\n      return i;\n    }\n\n    const chunkOperations =\n      argsArrayLen - i > EXECUTION_STEPS &&\n      typeof continueCallback === \"function\";\n    const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n    let steps = 0;\n\n    const commonObjs = this.commonObjs;\n    const objs = this.objs;\n    let fnId;\n\n    while (true) {\n      if (stepper !== undefined && i === stepper.nextBreakPoint) {\n        stepper.breakIt(i, continueCallback);\n        return i;\n      }\n\n      fnId = fnArray[i];\n\n      if (fnId !== OPS.dependency) {\n        this[fnId].apply(this, argsArray[i]);\n      } else {\n        for (const depObjId of argsArray[i]) {\n          const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n          // If the promise isn't resolved yet, add the continueCallback\n          // to the promise and bail out.\n          if (!objsPool.has(depObjId)) {\n            objsPool.get(depObjId, continueCallback);\n            return i;\n          }\n        }\n      }\n\n      i++;\n\n      // If the entire operatorList was executed, stop as were done.\n      if (i === argsArrayLen) {\n        return i;\n      }\n\n      // If the execution took longer then a certain amount of time and\n      // `continueCallback` is specified, interrupt the execution.\n      if (chunkOperations && ++steps > EXECUTION_STEPS) {\n        if (Date.now() > endTime) {\n          continueCallback();\n          return i;\n        }\n        steps = 0;\n      }\n\n      // If the operatorList isn't executed completely yet OR the execution\n      // time was short enough, do another execution round.\n    }\n  }\n\n  endDrawing() {\n    // Finishing all opened operations such as SMask group painting.\n    while (this.stateStack.length || this.current.activeSMask !== null) {\n      this.restore();\n    }\n\n    this.ctx.restore();\n\n    if (this.transparentCanvas) {\n      this.ctx = this.compositeCtx;\n      this.ctx.save();\n      this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n      this.ctx.drawImage(this.transparentCanvas, 0, 0);\n      this.ctx.restore();\n      this.transparentCanvas = null;\n    }\n\n    this.cachedCanvases.clear();\n    this.cachedPatterns.clear();\n\n    if (this.imageLayer) {\n      this.imageLayer.endLayout();\n    }\n  }\n\n  _scaleImage(img, inverseTransform) {\n    // Vertical or horizontal scaling shall not be more than 2 to not lose the\n    // pixels during drawImage operation, painting on the temporary canvas(es)\n    // that are twice smaller in size.\n    const width = img.width;\n    const height = img.height;\n    let widthScale = Math.max(\n      Math.hypot(inverseTransform[0], inverseTransform[1]),\n      1\n    );\n    let heightScale = Math.max(\n      Math.hypot(inverseTransform[2], inverseTransform[3]),\n      1\n    );\n\n    let paintWidth = width,\n      paintHeight = height;\n    let tmpCanvasId = \"prescale1\";\n    let tmpCanvas, tmpCtx;\n    while (\n      (widthScale > 2 && paintWidth > 1) ||\n      (heightScale > 2 && paintHeight > 1)\n    ) {\n      let newWidth = paintWidth,\n        newHeight = paintHeight;\n      if (widthScale > 2 && paintWidth > 1) {\n        newWidth = Math.ceil(paintWidth / 2);\n        widthScale /= paintWidth / newWidth;\n      }\n      if (heightScale > 2 && paintHeight > 1) {\n        newHeight = Math.ceil(paintHeight / 2);\n        heightScale /= paintHeight / newHeight;\n      }\n      tmpCanvas = this.cachedCanvases.getCanvas(\n        tmpCanvasId,\n        newWidth,\n        newHeight\n      );\n      tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, newWidth, newHeight);\n      tmpCtx.drawImage(\n        img,\n        0,\n        0,\n        paintWidth,\n        paintHeight,\n        0,\n        0,\n        newWidth,\n        newHeight\n      );\n      img = tmpCanvas.canvas;\n      paintWidth = newWidth;\n      paintHeight = newHeight;\n      tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n    }\n    return {\n      img,\n      paintWidth,\n      paintHeight,\n    };\n  }\n\n  _createMaskCanvas(img) {\n    const ctx = this.ctx;\n    const width = img.width,\n      height = img.height;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    const maskCanvas = this.cachedCanvases.getCanvas(\n      \"maskCanvas\",\n      width,\n      height\n    );\n    const maskCtx = maskCanvas.context;\n    putBinaryImageMask(maskCtx, img);\n\n    // Create the mask canvas at the size it will be drawn at and also set\n    // its transform to match the current transform so if there are any\n    // patterns applied they will be applied relative to the correct\n    // transform.\n    const objToCanvas = ctx.mozCurrentTransform;\n    let maskToCanvas = Util.transform(objToCanvas, [\n      1 / width,\n      0,\n      0,\n      -1 / height,\n      0,\n      0,\n    ]);\n    maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n    const cord1 = Util.applyTransform([0, 0], maskToCanvas);\n    const cord2 = Util.applyTransform([width, height], maskToCanvas);\n    const rect = Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n    const drawnWidth = Math.ceil(rect[2] - rect[0]);\n    const drawnHeight = Math.ceil(rect[3] - rect[1]);\n    const fillCanvas = this.cachedCanvases.getCanvas(\n      \"fillCanvas\",\n      drawnWidth,\n      drawnHeight,\n      true\n    );\n    const fillCtx = fillCanvas.context;\n    // The offset will be the top-left cordinate mask.\n    const offsetX = Math.min(cord1[0], cord2[0]);\n    const offsetY = Math.min(cord1[1], cord2[1]);\n    fillCtx.translate(-offsetX, -offsetY);\n    fillCtx.transform.apply(fillCtx, maskToCanvas);\n    // Pre-scale if needed to improve image smoothing.\n    const scaled = this._scaleImage(\n      maskCanvas.canvas,\n      fillCtx.mozCurrentTransformInverse\n    );\n    fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(\n      fillCtx.mozCurrentTransform,\n      img.interpolate\n    );\n    fillCtx.drawImage(\n      scaled.img,\n      0,\n      0,\n      scaled.img.width,\n      scaled.img.height,\n      0,\n      0,\n      width,\n      height\n    );\n    fillCtx.globalCompositeOperation = \"source-in\";\n\n    const inverse = Util.transform(fillCtx.mozCurrentTransformInverse, [\n      1,\n      0,\n      0,\n      1,\n      -offsetX,\n      -offsetY,\n    ]);\n    fillCtx.fillStyle = isPatternFill\n      ? fillColor.getPattern(ctx, this, inverse, PathType.FILL)\n      : fillColor;\n\n    fillCtx.fillRect(0, 0, width, height);\n\n    // Round the offsets to avoid drawing fractional pixels.\n    return {\n      canvas: fillCanvas.canvas,\n      offsetX: Math.round(offsetX),\n      offsetY: Math.round(offsetY),\n    };\n  }\n\n  // Graphics state\n  setLineWidth(width) {\n    this.current.lineWidth = width;\n    this.ctx.lineWidth = width;\n  }\n\n  setLineCap(style) {\n    this.ctx.lineCap = LINE_CAP_STYLES[style];\n  }\n\n  setLineJoin(style) {\n    this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n  }\n\n  setMiterLimit(limit) {\n    this.ctx.miterLimit = limit;\n  }\n\n  setDash(dashArray, dashPhase) {\n    const ctx = this.ctx;\n    if (ctx.setLineDash !== undefined) {\n      ctx.setLineDash(dashArray);\n      ctx.lineDashOffset = dashPhase;\n    }\n  }\n\n  setRenderingIntent(intent) {\n    // This operation is ignored since we haven't found a use case for it yet.\n  }\n\n  setFlatness(flatness) {\n    // This operation is ignored since we haven't found a use case for it yet.\n  }\n\n  setGState(states) {\n    for (let i = 0, ii = states.length; i < ii; i++) {\n      const state = states[i];\n      const key = state[0];\n      const value = state[1];\n\n      switch (key) {\n        case \"LW\":\n          this.setLineWidth(value);\n          break;\n        case \"LC\":\n          this.setLineCap(value);\n          break;\n        case \"LJ\":\n          this.setLineJoin(value);\n          break;\n        case \"ML\":\n          this.setMiterLimit(value);\n          break;\n        case \"D\":\n          this.setDash(value[0], value[1]);\n          break;\n        case \"RI\":\n          this.setRenderingIntent(value);\n          break;\n        case \"FL\":\n          this.setFlatness(value);\n          break;\n        case \"Font\":\n          this.setFont(value[0], value[1]);\n          break;\n        case \"CA\":\n          this.current.strokeAlpha = state[1];\n          break;\n        case \"ca\":\n          this.current.fillAlpha = state[1];\n          this.ctx.globalAlpha = state[1];\n          break;\n        case \"BM\":\n          this.ctx.globalCompositeOperation = value;\n          break;\n        case \"SMask\":\n          this.current.activeSMask = value ? this.tempSMask : null;\n          this.tempSMask = null;\n          this.checkSMaskState();\n          break;\n        case \"TR\":\n          this.current.transferMaps = value;\n      }\n    }\n  }\n\n  checkSMaskState() {\n    const inSMaskMode = !!this.suspendedCtx;\n    if (this.current.activeSMask && !inSMaskMode) {\n      this.beginSMaskMode();\n    } else if (!this.current.activeSMask && inSMaskMode) {\n      this.endSMaskMode();\n    }\n    // Else, the state is okay and nothing needs to be done.\n  }\n\n  /**\n   * Soft mask mode takes the current main drawing canvas and replaces it with\n   * a temporary canvas. Any drawing operations that happen on the temporary\n   * canvas need to be composed with the main canvas that was suspended (see\n   * `compose()`). The temporary canvas also duplicates many of its operations\n   * on the suspended canvas to keep them in sync, so that when the soft mask\n   * mode ends any clipping paths or transformations will still be active and in\n   * the right order on the canvas' graphics state stack.\n   */\n  beginSMaskMode() {\n    if (this.suspendedCtx) {\n      throw new Error(\"beginSMaskMode called while already in smask mode\");\n    }\n    const drawnWidth = this.ctx.canvas.width;\n    const drawnHeight = this.ctx.canvas.height;\n    const cacheId = \"smaskGroupAt\" + this.groupLevel;\n    const scratchCanvas = this.cachedCanvases.getCanvas(\n      cacheId,\n      drawnWidth,\n      drawnHeight,\n      true\n    );\n    this.suspendedCtx = this.ctx;\n    this.ctx = scratchCanvas.context;\n    const ctx = this.ctx;\n    ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform);\n    copyCtxState(this.suspendedCtx, ctx);\n    mirrorContextOperations(ctx, this.suspendedCtx);\n\n    this.setGState([\n      [\"BM\", \"source-over\"],\n      [\"ca\", 1],\n      [\"CA\", 1],\n    ]);\n  }\n\n  endSMaskMode() {\n    if (!this.suspendedCtx) {\n      throw new Error(\"endSMaskMode called while not in smask mode\");\n    }\n    // The soft mask is done, now restore the suspended canvas as the main\n    // drawing canvas.\n    this.ctx._removeMirroring();\n    copyCtxState(this.ctx, this.suspendedCtx);\n    this.ctx = this.suspendedCtx;\n\n    this.current.activeSMask = null;\n    this.suspendedCtx = null;\n  }\n\n  compose(dirtyBox) {\n    if (!this.current.activeSMask) {\n      return;\n    }\n\n    if (!dirtyBox) {\n      dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n    } else {\n      dirtyBox[0] = Math.floor(dirtyBox[0]);\n      dirtyBox[1] = Math.floor(dirtyBox[1]);\n      dirtyBox[2] = Math.ceil(dirtyBox[2]);\n      dirtyBox[3] = Math.ceil(dirtyBox[3]);\n    }\n    const smask = this.current.activeSMask;\n    const suspendedCtx = this.suspendedCtx;\n\n    composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n    // Whatever was drawn has been moved to the suspended canvas, now clear it\n    // out of the current canvas.\n    this.ctx.save();\n    this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n    this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n    this.ctx.restore();\n  }\n\n  save() {\n    this.ctx.save();\n    const old = this.current;\n    this.stateStack.push(old);\n    this.current = old.clone();\n  }\n\n  restore() {\n    if (this.stateStack.length === 0 && this.current.activeSMask) {\n      this.endSMaskMode();\n    }\n\n    if (this.stateStack.length !== 0) {\n      this.current = this.stateStack.pop();\n      this.ctx.restore();\n      this.checkSMaskState();\n\n      // Ensure that the clipping path is reset (fixes issue6413.pdf).\n      this.pendingClip = null;\n\n      this._cachedGetSinglePixelWidth = null;\n    }\n  }\n\n  transform(a, b, c, d, e, f) {\n    this.ctx.transform(a, b, c, d, e, f);\n\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  // Path\n  constructPath(ops, args) {\n    const ctx = this.ctx;\n    const current = this.current;\n    let x = current.x,\n      y = current.y;\n    let startX, startY;\n    for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n      switch (ops[i] | 0) {\n        case OPS.rectangle:\n          x = args[j++];\n          y = args[j++];\n          const width = args[j++];\n          const height = args[j++];\n\n          const xw = x + width;\n          const yh = y + height;\n          ctx.moveTo(x, y);\n          if (width === 0 || height === 0) {\n            ctx.lineTo(xw, yh);\n          } else {\n            ctx.lineTo(xw, y);\n            ctx.lineTo(xw, yh);\n            ctx.lineTo(x, yh);\n          }\n          current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n          current.updatePathMinMax(ctx.mozCurrentTransform, xw, yh);\n          ctx.closePath();\n          break;\n        case OPS.moveTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.moveTo(x, y);\n          current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n          break;\n        case OPS.lineTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.lineTo(x, y);\n          current.updatePathMinMax(ctx.mozCurrentTransform, x, y);\n          break;\n        case OPS.curveTo:\n          startX = x;\n          startY = y;\n          x = args[j + 4];\n          y = args[j + 5];\n          ctx.bezierCurveTo(\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            x,\n            y\n          );\n          current.updateCurvePathMinMax(\n            ctx.mozCurrentTransform,\n            startX,\n            startY,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            x,\n            y\n          );\n          j += 6;\n          break;\n        case OPS.curveTo2:\n          startX = x;\n          startY = y;\n          ctx.bezierCurveTo(\n            x,\n            y,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3]\n          );\n          current.updateCurvePathMinMax(\n            ctx.mozCurrentTransform,\n            startX,\n            startY,\n            x,\n            y,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3]\n          );\n          x = args[j + 2];\n          y = args[j + 3];\n          j += 4;\n          break;\n        case OPS.curveTo3:\n          startX = x;\n          startY = y;\n          x = args[j + 2];\n          y = args[j + 3];\n          ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n          current.updateCurvePathMinMax(\n            ctx.mozCurrentTransform,\n            startX,\n            startY,\n            args[j],\n            args[j + 1],\n            x,\n            y,\n            x,\n            y\n          );\n          j += 4;\n          break;\n        case OPS.closePath:\n          ctx.closePath();\n          break;\n      }\n    }\n    current.setCurrentPoint(x, y);\n  }\n\n  closePath() {\n    this.ctx.closePath();\n  }\n\n  stroke(consumePath) {\n    consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n    const ctx = this.ctx;\n    const strokeColor = this.current.strokeColor;\n    // For stroke we want to temporarily change the global alpha to the\n    // stroking alpha.\n    ctx.globalAlpha = this.current.strokeAlpha;\n    if (this.contentVisible) {\n      if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n        const lineWidth = this.getSinglePixelWidth();\n        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(\n          ctx,\n          this,\n          ctx.mozCurrentTransformInverse,\n          PathType.STROKE\n        );\n        // Prevent drawing too thin lines by enforcing a minimum line width.\n        ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n        ctx.stroke();\n        ctx.restore();\n      } else {\n        const lineWidth = this.getSinglePixelWidth();\n        if (lineWidth < 0 && -lineWidth >= this.current.lineWidth) {\n          // The current transform will transform a square pixel into a\n          // parallelogram where both heights are lower than 1 and not equal.\n          ctx.save();\n          ctx.resetTransform();\n          ctx.lineWidth = Math.round(this._combinedScaleFactor);\n          ctx.stroke();\n          ctx.restore();\n        } else {\n          // Prevent drawing too thin lines by enforcing a minimum line width.\n          ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth);\n          ctx.stroke();\n        }\n      }\n    }\n    if (consumePath) {\n      this.consumePath(this.current.getClippedPathBoundingBox());\n    }\n    // Restore the global alpha to the fill alpha\n    ctx.globalAlpha = this.current.fillAlpha;\n  }\n\n  closeStroke() {\n    this.closePath();\n    this.stroke();\n  }\n\n  fill(consumePath) {\n    consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n    const ctx = this.ctx;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    let needRestore = false;\n\n    if (isPatternFill) {\n      ctx.save();\n      ctx.fillStyle = fillColor.getPattern(\n        ctx,\n        this,\n        ctx.mozCurrentTransformInverse,\n        PathType.FILL\n      );\n      needRestore = true;\n    }\n\n    const intersect = this.current.getClippedPathBoundingBox();\n    if (this.contentVisible && intersect !== null) {\n      if (this.pendingEOFill) {\n        ctx.fill(\"evenodd\");\n        this.pendingEOFill = false;\n      } else {\n        ctx.fill();\n      }\n    }\n\n    if (needRestore) {\n      ctx.restore();\n    }\n    if (consumePath) {\n      this.consumePath(intersect);\n    }\n  }\n\n  eoFill() {\n    this.pendingEOFill = true;\n    this.fill();\n  }\n\n  fillStroke() {\n    this.fill(false);\n    this.stroke(false);\n\n    this.consumePath();\n  }\n\n  eoFillStroke() {\n    this.pendingEOFill = true;\n    this.fillStroke();\n  }\n\n  closeFillStroke() {\n    this.closePath();\n    this.fillStroke();\n  }\n\n  closeEOFillStroke() {\n    this.pendingEOFill = true;\n    this.closePath();\n    this.fillStroke();\n  }\n\n  endPath() {\n    this.consumePath();\n  }\n\n  // Clipping\n  clip() {\n    this.pendingClip = NORMAL_CLIP;\n  }\n\n  eoClip() {\n    this.pendingClip = EO_CLIP;\n  }\n\n  // Text\n  beginText() {\n    this.current.textMatrix = IDENTITY_MATRIX;\n    this.current.textMatrixScale = 1;\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n  }\n\n  endText() {\n    const paths = this.pendingTextPaths;\n    const ctx = this.ctx;\n    if (paths === undefined) {\n      ctx.beginPath();\n      return;\n    }\n\n    ctx.save();\n    ctx.beginPath();\n    for (let i = 0; i < paths.length; i++) {\n      const path = paths[i];\n      ctx.setTransform.apply(ctx, path.transform);\n      ctx.translate(path.x, path.y);\n      path.addToPath(ctx, path.fontSize);\n    }\n    ctx.restore();\n    ctx.clip();\n    ctx.beginPath();\n    delete this.pendingTextPaths;\n  }\n\n  setCharSpacing(spacing) {\n    this.current.charSpacing = spacing;\n  }\n\n  setWordSpacing(spacing) {\n    this.current.wordSpacing = spacing;\n  }\n\n  setHScale(scale) {\n    this.current.textHScale = scale / 100;\n  }\n\n  setLeading(leading) {\n    this.current.leading = -leading;\n  }\n\n  setFont(fontRefName, size) {\n    const fontObj = this.commonObjs.get(fontRefName);\n    const current = this.current;\n\n    if (!fontObj) {\n      throw new Error(`Can't find font for ${fontRefName}`);\n    }\n    current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n    // A valid matrix needs all main diagonal elements to be non-zero\n    // This also ensures we bypass FF bugzilla bug #719844.\n    if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n      warn(\"Invalid font matrix for font \" + fontRefName);\n    }\n\n    // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n    // and in some docs this can be negative (inverted x-y axes).\n    if (size < 0) {\n      size = -size;\n      current.fontDirection = -1;\n    } else {\n      current.fontDirection = 1;\n    }\n\n    this.current.font = fontObj;\n    this.current.fontSize = size;\n\n    if (fontObj.isType3Font) {\n      return; // we don't need ctx.font for Type3 fonts\n    }\n\n    const name = fontObj.loadedName || \"sans-serif\";\n\n    let bold = \"normal\";\n    if (fontObj.black) {\n      bold = \"900\";\n    } else if (fontObj.bold) {\n      bold = \"bold\";\n    }\n    const italic = fontObj.italic ? \"italic\" : \"normal\";\n    const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n\n    // Some font backends cannot handle fonts below certain size.\n    // Keeping the font at minimal size and using the fontSizeScale to change\n    // the current transformation matrix before the fillText/strokeText.\n    // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n    let browserFontSize = size;\n    if (size < MIN_FONT_SIZE) {\n      browserFontSize = MIN_FONT_SIZE;\n    } else if (size > MAX_FONT_SIZE) {\n      browserFontSize = MAX_FONT_SIZE;\n    }\n    this.current.fontSizeScale = size / browserFontSize;\n\n    this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n  }\n\n  setTextRenderingMode(mode) {\n    this.current.textRenderingMode = mode;\n  }\n\n  setTextRise(rise) {\n    this.current.textRise = rise;\n  }\n\n  moveText(x, y) {\n    this.current.x = this.current.lineX += x;\n    this.current.y = this.current.lineY += y;\n  }\n\n  setLeadingMoveText(x, y) {\n    this.setLeading(-y);\n    this.moveText(x, y);\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    this.current.textMatrix = [a, b, c, d, e, f];\n    this.current.textMatrixScale = Math.hypot(a, b);\n\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n  }\n\n  nextLine() {\n    this.moveText(0, this.current.leading);\n  }\n\n  paintChar(character, x, y, patternTransform, resetLineWidthToOne) {\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const textRenderingMode = current.textRenderingMode;\n    const fontSize = current.fontSize / current.fontSizeScale;\n    const fillStrokeMode =\n      textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n    const isAddToPathSet = !!(\n      textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n    );\n    const patternFill = current.patternFill && !font.missingFile;\n\n    let addToPath;\n    if (font.disableFontFace || isAddToPathSet || patternFill) {\n      addToPath = font.getPathGenerator(this.commonObjs, character);\n    }\n\n    if (font.disableFontFace || patternFill) {\n      ctx.save();\n      ctx.translate(x, y);\n      ctx.beginPath();\n      addToPath(ctx, fontSize);\n      if (patternTransform) {\n        ctx.setTransform.apply(ctx, patternTransform);\n      }\n      if (\n        fillStrokeMode === TextRenderingMode.FILL ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        ctx.fill();\n      }\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        if (resetLineWidthToOne) {\n          ctx.resetTransform();\n          ctx.lineWidth = Math.round(this._combinedScaleFactor);\n        }\n        ctx.stroke();\n      }\n      ctx.restore();\n    } else {\n      if (\n        fillStrokeMode === TextRenderingMode.FILL ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        ctx.fillText(character, x, y);\n      }\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        if (resetLineWidthToOne) {\n          ctx.save();\n          ctx.moveTo(x, y);\n          ctx.resetTransform();\n          ctx.lineWidth = Math.round(this._combinedScaleFactor);\n          ctx.strokeText(character, 0, 0);\n          ctx.restore();\n        } else {\n          ctx.strokeText(character, x, y);\n        }\n      }\n    }\n\n    if (isAddToPathSet) {\n      const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n      paths.push({\n        transform: ctx.mozCurrentTransform,\n        x,\n        y,\n        fontSize,\n        addToPath,\n      });\n    }\n  }\n\n  get isFontSubpixelAAEnabled() {\n    // Checks if anti-aliasing is enabled when scaled text is painted.\n    // On Windows GDI scaled fonts looks bad.\n    const { context: ctx } = this.cachedCanvases.getCanvas(\n      \"isFontSubpixelAAEnabled\",\n      10,\n      10\n    );\n    ctx.scale(1.5, 1);\n    ctx.fillText(\"I\", 0, 10);\n    const data = ctx.getImageData(0, 0, 10, 10).data;\n    let enabled = false;\n    for (let i = 3; i < data.length; i += 4) {\n      if (data[i] > 0 && data[i] < 255) {\n        enabled = true;\n        break;\n      }\n    }\n    return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n  }\n\n  showText(glyphs) {\n    const current = this.current;\n    const font = current.font;\n    if (font.isType3Font) {\n      return this.showType3Text(glyphs);\n    }\n\n    const fontSize = current.fontSize;\n    if (fontSize === 0) {\n      return undefined;\n    }\n\n    const ctx = this.ctx;\n    const fontSizeScale = current.fontSizeScale;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const fontDirection = current.fontDirection;\n    const textHScale = current.textHScale * fontDirection;\n    const glyphsLength = glyphs.length;\n    const vertical = font.vertical;\n    const spacingDir = vertical ? 1 : -1;\n    const defaultVMetrics = font.defaultVMetrics;\n    const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n    const simpleFillText =\n      current.textRenderingMode === TextRenderingMode.FILL &&\n      !font.disableFontFace &&\n      !current.patternFill;\n\n    ctx.save();\n    ctx.transform.apply(ctx, current.textMatrix);\n    ctx.translate(current.x, current.y + current.textRise);\n\n    if (fontDirection > 0) {\n      ctx.scale(textHScale, -1);\n    } else {\n      ctx.scale(textHScale, 1);\n    }\n\n    let patternTransform;\n    if (current.patternFill) {\n      ctx.save();\n      const pattern = current.fillColor.getPattern(\n        ctx,\n        this,\n        ctx.mozCurrentTransformInverse,\n        PathType.FILL\n      );\n      patternTransform = ctx.mozCurrentTransform;\n      ctx.restore();\n      ctx.fillStyle = pattern;\n    }\n\n    let lineWidth = current.lineWidth;\n    let resetLineWidthToOne = false;\n    const scale = current.textMatrixScale;\n    if (scale === 0 || lineWidth === 0) {\n      const fillStrokeMode =\n        current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        this._cachedGetSinglePixelWidth = null;\n        lineWidth = this.getSinglePixelWidth();\n        resetLineWidthToOne = lineWidth < 0;\n      }\n    } else {\n      lineWidth /= scale;\n    }\n\n    if (fontSizeScale !== 1.0) {\n      ctx.scale(fontSizeScale, fontSizeScale);\n      lineWidth /= fontSizeScale;\n    }\n\n    ctx.lineWidth = lineWidth;\n\n    let x = 0,\n      i;\n    for (i = 0; i < glyphsLength; ++i) {\n      const glyph = glyphs[i];\n      if (isNum(glyph)) {\n        x += (spacingDir * glyph * fontSize) / 1000;\n        continue;\n      }\n\n      let restoreNeeded = false;\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const character = glyph.fontChar;\n      const accent = glyph.accent;\n      let scaledX, scaledY;\n      let width = glyph.width;\n      if (vertical) {\n        const vmetric = glyph.vmetric || defaultVMetrics;\n        const vx =\n          -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n        const vy = vmetric[2] * widthAdvanceScale;\n\n        width = vmetric ? -vmetric[0] : width;\n        scaledX = vx / fontSizeScale;\n        scaledY = (x + vy) / fontSizeScale;\n      } else {\n        scaledX = x / fontSizeScale;\n        scaledY = 0;\n      }\n\n      if (font.remeasure && width > 0) {\n        // Some standard fonts may not have the exact width: rescale per\n        // character if measured width is greater than expected glyph width\n        // and subpixel-aa is enabled, otherwise just center the glyph.\n        const measuredWidth =\n          ((ctx.measureText(character).width * 1000) / fontSize) *\n          fontSizeScale;\n        if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n          const characterScaleX = width / measuredWidth;\n          restoreNeeded = true;\n          ctx.save();\n          ctx.scale(characterScaleX, 1);\n          scaledX /= characterScaleX;\n        } else if (width !== measuredWidth) {\n          scaledX +=\n            (((width - measuredWidth) / 2000) * fontSize) / fontSizeScale;\n        }\n      }\n\n      // Only attempt to draw the glyph if it is actually in the embedded font\n      // file or if there isn't a font file so the fallback font is shown.\n      if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n        if (simpleFillText && !accent) {\n          // common case\n          ctx.fillText(character, scaledX, scaledY);\n        } else {\n          this.paintChar(\n            character,\n            scaledX,\n            scaledY,\n            patternTransform,\n            resetLineWidthToOne\n          );\n          if (accent) {\n            const scaledAccentX =\n              scaledX + (fontSize * accent.offset.x) / fontSizeScale;\n            const scaledAccentY =\n              scaledY - (fontSize * accent.offset.y) / fontSizeScale;\n            this.paintChar(\n              accent.fontChar,\n              scaledAccentX,\n              scaledAccentY,\n              patternTransform,\n              resetLineWidthToOne\n            );\n          }\n        }\n      }\n\n      let charWidth;\n      if (vertical) {\n        charWidth = width * widthAdvanceScale - spacing * fontDirection;\n      } else {\n        charWidth = width * widthAdvanceScale + spacing * fontDirection;\n      }\n      x += charWidth;\n\n      if (restoreNeeded) {\n        ctx.restore();\n      }\n    }\n    if (vertical) {\n      current.y -= x;\n    } else {\n      current.x += x * textHScale;\n    }\n    ctx.restore();\n    this.compose();\n    return undefined;\n  }\n\n  showType3Text(glyphs) {\n    // Type3 fonts - each glyph is a \"mini-PDF\"\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const fontSize = current.fontSize;\n    const fontDirection = current.fontDirection;\n    const spacingDir = font.vertical ? 1 : -1;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const textHScale = current.textHScale * fontDirection;\n    const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n    const glyphsLength = glyphs.length;\n    const isTextInvisible =\n      current.textRenderingMode === TextRenderingMode.INVISIBLE;\n    let i, glyph, width, spacingLength;\n\n    if (isTextInvisible || fontSize === 0) {\n      return;\n    }\n    this._cachedGetSinglePixelWidth = null;\n\n    ctx.save();\n    ctx.transform.apply(ctx, current.textMatrix);\n    ctx.translate(current.x, current.y);\n\n    ctx.scale(textHScale, fontDirection);\n\n    for (i = 0; i < glyphsLength; ++i) {\n      glyph = glyphs[i];\n      if (isNum(glyph)) {\n        spacingLength = (spacingDir * glyph * fontSize) / 1000;\n        this.ctx.translate(spacingLength, 0);\n        current.x += spacingLength * textHScale;\n        continue;\n      }\n\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const operatorList = font.charProcOperatorList[glyph.operatorListId];\n      if (!operatorList) {\n        warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n        continue;\n      }\n      if (this.contentVisible) {\n        this.processingType3 = glyph;\n        this.save();\n        ctx.scale(fontSize, fontSize);\n        ctx.transform.apply(ctx, fontMatrix);\n        this.executeOperatorList(operatorList);\n        this.restore();\n      }\n\n      const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n      width = transformed[0] * fontSize + spacing;\n\n      ctx.translate(width, 0);\n      current.x += width * textHScale;\n    }\n    ctx.restore();\n    this.processingType3 = null;\n  }\n\n  // Type3 fonts\n  setCharWidth(xWidth, yWidth) {\n    // We can safely ignore this since the width should be the same\n    // as the width in the Widths array.\n  }\n\n  setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n    // TODO According to the spec we're also suppose to ignore any operators\n    // that set color or include images while processing this type3 font.\n    this.ctx.rect(llx, lly, urx - llx, ury - lly);\n    this.clip();\n    this.endPath();\n  }\n\n  // Color\n  getColorN_Pattern(IR) {\n    let pattern;\n    if (IR[0] === \"TilingPattern\") {\n      const color = IR[1];\n      const baseTransform =\n        this.baseTransform || this.ctx.mozCurrentTransform.slice();\n      const canvasGraphicsFactory = {\n        createCanvasGraphics: ctx => {\n          return new CanvasGraphics(\n            ctx,\n            this.commonObjs,\n            this.objs,\n            this.canvasFactory\n          );\n        },\n      };\n      pattern = new TilingPattern(\n        IR,\n        color,\n        this.ctx,\n        canvasGraphicsFactory,\n        baseTransform\n      );\n    } else {\n      pattern = this._getPattern(IR[1], IR[2]);\n    }\n    return pattern;\n  }\n\n  setStrokeColorN() {\n    this.current.strokeColor = this.getColorN_Pattern(arguments);\n  }\n\n  setFillColorN() {\n    this.current.fillColor = this.getColorN_Pattern(arguments);\n    this.current.patternFill = true;\n  }\n\n  setStrokeRGBColor(r, g, b) {\n    const color = Util.makeHexColor(r, g, b);\n    this.ctx.strokeStyle = color;\n    this.current.strokeColor = color;\n  }\n\n  setFillRGBColor(r, g, b) {\n    const color = Util.makeHexColor(r, g, b);\n    this.ctx.fillStyle = color;\n    this.current.fillColor = color;\n    this.current.patternFill = false;\n  }\n\n  _getPattern(objId, matrix = null) {\n    let pattern;\n    if (this.cachedPatterns.has(objId)) {\n      pattern = this.cachedPatterns.get(objId);\n    } else {\n      pattern = getShadingPattern(this.objs.get(objId));\n      this.cachedPatterns.set(objId, pattern);\n    }\n    if (matrix) {\n      pattern.matrix = matrix;\n    }\n    return pattern;\n  }\n\n  shadingFill(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n\n    this.save();\n    const pattern = this._getPattern(objId);\n    ctx.fillStyle = pattern.getPattern(\n      ctx,\n      this,\n      ctx.mozCurrentTransformInverse,\n      PathType.SHADING\n    );\n\n    const inv = ctx.mozCurrentTransformInverse;\n    if (inv) {\n      const canvas = ctx.canvas;\n      const width = canvas.width;\n      const height = canvas.height;\n\n      const bl = Util.applyTransform([0, 0], inv);\n      const br = Util.applyTransform([0, height], inv);\n      const ul = Util.applyTransform([width, 0], inv);\n      const ur = Util.applyTransform([width, height], inv);\n\n      const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n      const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n      const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n      const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n      this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n    } else {\n      // HACK to draw the gradient onto an infinite rectangle.\n      // PDF gradients are drawn across the entire image while\n      // Canvas only allows gradients to be drawn in a rectangle\n      // The following bug should allow us to remove this.\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n      this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n    }\n\n    this.compose(this.current.getClippedPathBoundingBox());\n    this.restore();\n  }\n\n  // Images\n  beginInlineImage() {\n    unreachable(\"Should not call beginInlineImage\");\n  }\n\n  beginImageData() {\n    unreachable(\"Should not call beginImageData\");\n  }\n\n  paintFormXObjectBegin(matrix, bbox) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.save();\n    this.baseTransformStack.push(this.baseTransform);\n\n    if (Array.isArray(matrix) && matrix.length === 6) {\n      this.transform.apply(this, matrix);\n    }\n\n    this.baseTransform = this.ctx.mozCurrentTransform;\n\n    if (bbox) {\n      const width = bbox[2] - bbox[0];\n      const height = bbox[3] - bbox[1];\n      this.ctx.rect(bbox[0], bbox[1], width, height);\n      this.current.updatePathMinMax(\n        this.ctx.mozCurrentTransform,\n        bbox[0],\n        bbox[1]\n      );\n      this.current.updatePathMinMax(\n        this.ctx.mozCurrentTransform,\n        bbox[2],\n        bbox[3]\n      );\n      this.clip();\n      this.endPath();\n    }\n  }\n\n  paintFormXObjectEnd() {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.restore();\n    this.baseTransform = this.baseTransformStack.pop();\n  }\n\n  beginGroup(group) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.save();\n    // If there's an active soft mask we don't want it enabled for the group, so\n    // clear it out. The mask and suspended canvas will be restored in endGroup.\n    const suspendedCtx = this.suspendedCtx;\n    if (this.current.activeSMask) {\n      this.suspendedCtx = null;\n      this.current.activeSMask = null;\n    }\n\n    const currentCtx = this.ctx;\n    // TODO non-isolated groups - according to Rik at adobe non-isolated\n    // group results aren't usually that different and they even have tools\n    // that ignore this setting. Notes from Rik on implementing:\n    // - When you encounter an transparency group, create a new canvas with\n    // the dimensions of the bbox\n    // - copy the content from the previous canvas to the new canvas\n    // - draw as usual\n    // - remove the backdrop alpha:\n    // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n    // value of your transparency group and 'alphaBackdrop' the alpha of the\n    // backdrop\n    // - remove background color:\n    // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n    if (!group.isolated) {\n      info(\"TODO: Support non-isolated groups.\");\n    }\n\n    // TODO knockout - supposedly possible with the clever use of compositing\n    // modes.\n    if (group.knockout) {\n      warn(\"Knockout groups not supported.\");\n    }\n\n    const currentTransform = currentCtx.mozCurrentTransform;\n    if (group.matrix) {\n      currentCtx.transform.apply(currentCtx, group.matrix);\n    }\n    if (!group.bbox) {\n      throw new Error(\"Bounding box is required.\");\n    }\n\n    // Based on the current transform figure out how big the bounding box\n    // will actually be.\n    let bounds = Util.getAxialAlignedBoundingBox(\n      group.bbox,\n      currentCtx.mozCurrentTransform\n    );\n    // Clip the bounding box to the current canvas.\n    const canvasBounds = [\n      0,\n      0,\n      currentCtx.canvas.width,\n      currentCtx.canvas.height,\n    ];\n    bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n    // Use ceil in case we're between sizes so we don't create canvas that is\n    // too small and make the canvas at least 1x1 pixels.\n    const offsetX = Math.floor(bounds[0]);\n    const offsetY = Math.floor(bounds[1]);\n    let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n    let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n    let scaleX = 1,\n      scaleY = 1;\n    if (drawnWidth > MAX_GROUP_SIZE) {\n      scaleX = drawnWidth / MAX_GROUP_SIZE;\n      drawnWidth = MAX_GROUP_SIZE;\n    }\n    if (drawnHeight > MAX_GROUP_SIZE) {\n      scaleY = drawnHeight / MAX_GROUP_SIZE;\n      drawnHeight = MAX_GROUP_SIZE;\n    }\n\n    this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n\n    let cacheId = \"groupAt\" + this.groupLevel;\n    if (group.smask) {\n      // Using two cache entries is case if masks are used one after another.\n      cacheId += \"_smask_\" + (this.smaskCounter++ % 2);\n    }\n    const scratchCanvas = this.cachedCanvases.getCanvas(\n      cacheId,\n      drawnWidth,\n      drawnHeight,\n      true\n    );\n    const groupCtx = scratchCanvas.context;\n\n    // Since we created a new canvas that is just the size of the bounding box\n    // we have to translate the group ctx.\n    groupCtx.scale(1 / scaleX, 1 / scaleY);\n    groupCtx.translate(-offsetX, -offsetY);\n    groupCtx.transform.apply(groupCtx, currentTransform);\n\n    if (group.smask) {\n      // Saving state and cached mask to be used in setGState.\n      this.smaskStack.push({\n        canvas: scratchCanvas.canvas,\n        context: groupCtx,\n        offsetX,\n        offsetY,\n        scaleX,\n        scaleY,\n        subtype: group.smask.subtype,\n        backdrop: group.smask.backdrop,\n        transferMap: group.smask.transferMap || null,\n        startTransformInverse: null, // used during suspend operation\n      });\n    } else {\n      // Setup the current ctx so when the group is popped we draw it at the\n      // right location.\n      currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n      currentCtx.translate(offsetX, offsetY);\n      currentCtx.scale(scaleX, scaleY);\n      currentCtx.save();\n    }\n    // The transparency group inherits all off the current graphics state\n    // except the blend mode, soft mask, and alpha constants.\n    copyCtxState(currentCtx, groupCtx);\n    this.ctx = groupCtx;\n    this.setGState([\n      [\"BM\", \"source-over\"],\n      [\"ca\", 1],\n      [\"CA\", 1],\n    ]);\n    this.groupStack.push({\n      ctx: currentCtx,\n      suspendedCtx,\n    });\n    this.groupLevel++;\n  }\n\n  endGroup(group) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.groupLevel--;\n    const groupCtx = this.ctx;\n    const { ctx, suspendedCtx } = this.groupStack.pop();\n    this.ctx = ctx;\n    // Turn off image smoothing to avoid sub pixel interpolation which can\n    // look kind of blurry for some pdfs.\n    this.ctx.imageSmoothingEnabled = false;\n\n    if (suspendedCtx) {\n      this.suspendedCtx = suspendedCtx;\n    }\n\n    if (group.smask) {\n      this.tempSMask = this.smaskStack.pop();\n      this.restore();\n    } else {\n      this.ctx.restore();\n      const currentMtx = this.ctx.mozCurrentTransform;\n      this.restore();\n      this.ctx.save();\n      this.ctx.setTransform.apply(this.ctx, currentMtx);\n      const dirtyBox = Util.getAxialAlignedBoundingBox(\n        [0, 0, groupCtx.canvas.width, groupCtx.canvas.height],\n        currentMtx\n      );\n      this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      this.ctx.restore();\n      this.compose(dirtyBox);\n    }\n  }\n\n  beginAnnotations() {\n    this.save();\n    if (this.baseTransform) {\n      this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n    }\n  }\n\n  endAnnotations() {\n    this.restore();\n  }\n\n  beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n    this.save();\n\n    if (Array.isArray(rect) && rect.length === 4) {\n      const width = rect[2] - rect[0];\n      const height = rect[3] - rect[1];\n\n      if (hasOwnCanvas && this.annotationCanvasMap) {\n        transform = transform.slice();\n        transform[4] -= rect[0];\n        transform[5] -= rect[1];\n\n        rect = rect.slice();\n        rect[0] = rect[1] = 0;\n        rect[2] = width;\n        rect[3] = height;\n\n        const [scaleX, scaleY] = Util.singularValueDecompose2dScale(\n          this.ctx.mozCurrentTransform\n        );\n        const { viewportScale } = this;\n        const canvasWidth = Math.ceil(\n          width * this.outputScaleX * viewportScale\n        );\n        const canvasHeight = Math.ceil(\n          height * this.outputScaleY * viewportScale\n        );\n\n        this.annotationCanvas = this.canvasFactory.create(\n          canvasWidth,\n          canvasHeight\n        );\n        const { canvas, context } = this.annotationCanvas;\n        canvas.style.width = `calc(${width}px * var(--viewport-scale-factor))`;\n        canvas.style.height = `calc(${height}px * var(--viewport-scale-factor))`;\n        this.annotationCanvasMap.set(id, canvas);\n        this.annotationCanvas.savedCtx = this.ctx;\n        this.ctx = context;\n        this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n        addContextCurrentTransform(this.ctx);\n\n        resetCtxToDefault(this.ctx);\n      } else {\n        resetCtxToDefault(this.ctx);\n\n        this.ctx.rect(rect[0], rect[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n    }\n\n    this.current = new CanvasExtraState(\n      this.ctx.canvas.width,\n      this.ctx.canvas.height\n    );\n\n    this.transform.apply(this, transform);\n    this.transform.apply(this, matrix);\n  }\n\n  endAnnotation() {\n    if (this.annotationCanvas) {\n      this.ctx = this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas;\n    }\n    this.restore();\n  }\n\n  paintImageMaskXObject(img) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n    const width = img.width,\n      height = img.height;\n\n    const glyph = this.processingType3;\n\n    if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n      if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n        glyph.compiled = compileType3Glyph({ data: img.data, width, height });\n      } else {\n        glyph.compiled = null;\n      }\n    }\n\n    if (glyph?.compiled) {\n      glyph.compiled(ctx);\n      return;\n    }\n    const mask = this._createMaskCanvas(img);\n    const maskCanvas = mask.canvas;\n\n    ctx.save();\n    // The mask is drawn with the transform applied. Reset the current\n    // transform to draw to the identity.\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n    ctx.restore();\n    this.compose();\n  }\n\n  paintImageMaskXObjectRepeat(\n    imgData,\n    scaleX,\n    skewX = 0,\n    skewY = 0,\n    scaleY,\n    positions\n  ) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n    ctx.save();\n    const currentTransform = ctx.mozCurrentTransform;\n    ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n    const mask = this._createMaskCanvas(imgData);\n\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      const trans = Util.transform(currentTransform, [\n        scaleX,\n        skewX,\n        skewY,\n        scaleY,\n        positions[i],\n        positions[i + 1],\n      ]);\n\n      const [x, y] = Util.applyTransform([0, 0], trans);\n      ctx.drawImage(mask.canvas, x, y);\n    }\n    ctx.restore();\n    this.compose();\n  }\n\n  paintImageMaskXObjectGroup(images) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    for (let i = 0, ii = images.length; i < ii; i++) {\n      const image = images[i];\n      const width = image.width,\n        height = image.height;\n\n      const maskCanvas = this.cachedCanvases.getCanvas(\n        \"maskCanvas\",\n        width,\n        height\n      );\n      const maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      putBinaryImageMask(maskCtx, image);\n\n      maskCtx.globalCompositeOperation = \"source-in\";\n\n      maskCtx.fillStyle = isPatternFill\n        ? fillColor.getPattern(\n            maskCtx,\n            this,\n            ctx.mozCurrentTransformInverse,\n            PathType.FILL\n          )\n        : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      ctx.save();\n      ctx.transform.apply(ctx, image.transform);\n      ctx.scale(1, -1);\n      ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n      ctx.restore();\n    }\n    this.compose();\n  }\n\n  paintImageXObject(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = objId.startsWith(\"g_\")\n      ? this.commonObjs.get(objId)\n      : this.objs.get(objId);\n    if (!imgData) {\n      warn(\"Dependent image isn't ready yet\");\n      return;\n    }\n\n    this.paintInlineImageXObject(imgData);\n  }\n\n  paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = objId.startsWith(\"g_\")\n      ? this.commonObjs.get(objId)\n      : this.objs.get(objId);\n    if (!imgData) {\n      warn(\"Dependent image isn't ready yet\");\n      return;\n    }\n\n    const width = imgData.width;\n    const height = imgData.height;\n    const map = [];\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      map.push({\n        transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n        x: 0,\n        y: 0,\n        w: width,\n        h: height,\n      });\n    }\n    this.paintInlineImageXObjectGroup(imgData, map);\n  }\n\n  paintInlineImageXObject(imgData) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const width = imgData.width;\n    const height = imgData.height;\n    const ctx = this.ctx;\n\n    this.save();\n    // scale the image to the unit square\n    ctx.scale(1 / width, -1 / height);\n\n    let imgToPaint;\n    // typeof check is needed due to node.js support, see issue #8489\n    if (\n      (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement) ||\n      !imgData.data\n    ) {\n      imgToPaint = imgData;\n    } else {\n      const tmpCanvas = this.cachedCanvases.getCanvas(\n        \"inlineImage\",\n        width,\n        height\n      );\n      const tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n      imgToPaint = tmpCanvas.canvas;\n    }\n\n    const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse);\n    ctx.imageSmoothingEnabled = getImageSmoothingEnabled(\n      ctx.mozCurrentTransform,\n      imgData.interpolate\n    );\n    ctx.drawImage(\n      scaled.img,\n      0,\n      0,\n      scaled.paintWidth,\n      scaled.paintHeight,\n      0,\n      -height,\n      width,\n      height\n    );\n\n    if (this.imageLayer) {\n      const position = this.getCanvasPosition(0, -height);\n      this.imageLayer.appendImage({\n        imgData,\n        left: position[0],\n        top: position[1],\n        width: width / ctx.mozCurrentTransformInverse[0],\n        height: height / ctx.mozCurrentTransformInverse[3],\n      });\n    }\n    this.compose();\n    this.restore();\n  }\n\n  paintInlineImageXObjectGroup(imgData, map) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n    const w = imgData.width;\n    const h = imgData.height;\n\n    const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n    const tmpCtx = tmpCanvas.context;\n    putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n    for (let i = 0, ii = map.length; i < ii; i++) {\n      const entry = map[i];\n      ctx.save();\n      ctx.transform.apply(ctx, entry.transform);\n      ctx.scale(1, -1);\n      ctx.drawImage(\n        tmpCanvas.canvas,\n        entry.x,\n        entry.y,\n        entry.w,\n        entry.h,\n        0,\n        -1,\n        1,\n        1\n      );\n      if (this.imageLayer) {\n        const position = this.getCanvasPosition(entry.x, entry.y);\n        this.imageLayer.appendImage({\n          imgData,\n          left: position[0],\n          top: position[1],\n          width: w,\n          height: h,\n        });\n      }\n      ctx.restore();\n    }\n    this.compose();\n  }\n\n  paintSolidColorImageMask() {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.ctx.fillRect(0, 0, 1, 1);\n    this.compose();\n  }\n\n  // Marked content\n\n  markPoint(tag) {\n    // TODO Marked content.\n  }\n\n  markPointProps(tag, properties) {\n    // TODO Marked content.\n  }\n\n  beginMarkedContent(tag) {\n    this.markedContentStack.push({\n      visible: true,\n    });\n  }\n\n  beginMarkedContentProps(tag, properties) {\n    if (tag === \"OC\") {\n      this.markedContentStack.push({\n        visible: this.optionalContentConfig.isVisible(properties),\n      });\n    } else {\n      this.markedContentStack.push({\n        visible: true,\n      });\n    }\n    this.contentVisible = this.isContentVisible();\n  }\n\n  endMarkedContent() {\n    this.markedContentStack.pop();\n    this.contentVisible = this.isContentVisible();\n  }\n\n  // Compatibility\n\n  beginCompat() {\n    // TODO ignore undefined operators (should we do that anyway?)\n  }\n\n  endCompat() {\n    // TODO stop ignoring undefined operators\n  }\n\n  // Helper functions\n\n  consumePath(clipBox) {\n    if (this.pendingClip) {\n      this.current.updateClipFromPath();\n    }\n    if (!this.pendingClip) {\n      this.compose(clipBox);\n    }\n    const ctx = this.ctx;\n    if (this.pendingClip) {\n      if (this.pendingClip === EO_CLIP) {\n        ctx.clip(\"evenodd\");\n      } else {\n        ctx.clip();\n      }\n      this.pendingClip = null;\n    }\n    this.current.startNewPathAndClipBox(this.current.clipBox);\n    ctx.beginPath();\n  }\n\n  getSinglePixelWidth() {\n    if (this._cachedGetSinglePixelWidth === null) {\n      // If transform is [a b] then a pixel (square) is transformed\n      //                 [c d]\n      // into a parallelogram: its area is the abs value of the determinant.\n      // This parallelogram has 2 heights:\n      //  - Area / |col_1|;\n      //  - Area / |col_2|.\n      // so in order to get a height of at least 1, pixel height\n      // must be computed as followed:\n      //  h = max(sqrt(a² + c²) / |det(M)|, sqrt(b² + d²) / |det(M)|).\n      // This is equivalent to:\n      //  h = max(|line_1_inv(M)|, |line_2_inv(M)|)\n      const m = this.ctx.mozCurrentTransform;\n\n      const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n      const sqNorm1 = m[0] ** 2 + m[2] ** 2;\n      const sqNorm2 = m[1] ** 2 + m[3] ** 2;\n      const pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet;\n      if (sqNorm1 !== sqNorm2 && this._combinedScaleFactor * pixelHeight > 1) {\n        // The parallelogram isn't a square and at least one height\n        // is lower than 1 so the resulting line width must be 1\n        // but it cannot be achieved with one scale: when scaling a pixel\n        // we'll get a rectangle (see issue #12295).\n        // For example with matrix [0.001 0, 0, 100], a pixel is transformed\n        // in a rectangle 0.001x100. If we just scale by 1000 (to have a 1)\n        // then we'll get a rectangle 1x1e5 which is wrong.\n        // In this case, we must reset the transform, set linewidth to 1\n        // and then stroke.\n        this._cachedGetSinglePixelWidth = -(\n          this._combinedScaleFactor * pixelHeight\n        );\n      } else if (absDet > Number.EPSILON) {\n        this._cachedGetSinglePixelWidth = pixelHeight;\n      } else {\n        // Matrix is non-invertible.\n        this._cachedGetSinglePixelWidth = 1;\n      }\n    }\n\n    return this._cachedGetSinglePixelWidth;\n  }\n\n  getCanvasPosition(x, y) {\n    const transform = this.ctx.mozCurrentTransform;\n    return [\n      transform[0] * x + transform[2] * y + transform[4],\n      transform[1] * x + transform[3] * y + transform[5],\n    ];\n  }\n\n  isContentVisible() {\n    for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n      if (!this.markedContentStack[i].visible) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nfor (const op in OPS) {\n  if (CanvasGraphics.prototype[op] !== undefined) {\n    CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n  }\n}\n\nexport { CanvasGraphics };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  FormatError,\n  info,\n  shadow,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\n\nconst PathType = {\n  FILL: \"Fill\",\n  STROKE: \"Stroke\",\n  SHADING: \"Shading\",\n};\n\nfunction applyBoundingBox(ctx, bbox) {\n  if (!bbox || typeof Path2D === \"undefined\") {\n    return;\n  }\n  const width = bbox[2] - bbox[0];\n  const height = bbox[3] - bbox[1];\n  const region = new Path2D();\n  region.rect(bbox[0], bbox[1], width, height);\n  ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n  constructor() {\n    if (this.constructor === BaseShadingPattern) {\n      unreachable(\"Cannot initialize BaseShadingPattern.\");\n    }\n  }\n\n  getPattern() {\n    unreachable(\"Abstract method `getPattern` called.\");\n  }\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._type = IR[1];\n    this._bbox = IR[2];\n    this._colorStops = IR[3];\n    this._p0 = IR[4];\n    this._p1 = IR[5];\n    this._r0 = IR[6];\n    this._r1 = IR[7];\n    this.matrix = null;\n  }\n\n  _createGradient(ctx) {\n    let grad;\n    if (this._type === \"axial\") {\n      grad = ctx.createLinearGradient(\n        this._p0[0],\n        this._p0[1],\n        this._p1[0],\n        this._p1[1]\n      );\n    } else if (this._type === \"radial\") {\n      grad = ctx.createRadialGradient(\n        this._p0[0],\n        this._p0[1],\n        this._r0,\n        this._p1[0],\n        this._p1[1],\n        this._r1\n      );\n    }\n\n    for (const colorStop of this._colorStops) {\n      grad.addColorStop(colorStop[0], colorStop[1]);\n    }\n    return grad;\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    let pattern;\n    if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n      const ownerBBox = owner.current.getClippedPathBoundingBox(\n        pathType,\n        ctx.mozCurrentTransform\n      ) || [0, 0, 0, 0];\n      // Create a canvas that is only as big as the current path. This doesn't\n      // allow us to cache the pattern, but it generally creates much smaller\n      // canvases and saves memory use. See bug 1722807 for an example.\n      const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n      const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n\n      const tmpCanvas = owner.cachedCanvases.getCanvas(\n        \"pattern\",\n        width,\n        height,\n        true\n      );\n\n      const tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      tmpCtx.beginPath();\n      tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      // Non shading fill patterns are positioned relative to the base transform\n      // (usually the page's initial transform), but we may have created a\n      // smaller canvas based on the path, so we must account for the shift.\n      tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n      inverse = Util.transform(inverse, [\n        1,\n        0,\n        0,\n        1,\n        ownerBBox[0],\n        ownerBBox[1],\n      ]);\n\n      tmpCtx.transform.apply(tmpCtx, owner.baseTransform);\n      if (this.matrix) {\n        tmpCtx.transform.apply(tmpCtx, this.matrix);\n      }\n      applyBoundingBox(tmpCtx, this._bbox);\n\n      tmpCtx.fillStyle = this._createGradient(tmpCtx);\n      tmpCtx.fill();\n\n      pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n      const domMatrix = new DOMMatrix(inverse);\n      try {\n        pattern.setTransform(domMatrix);\n      } catch (ex) {\n        // Avoid rendering breaking completely in Firefox 78 ESR,\n        // and in Node.js (see issue 13724).\n        warn(`RadialAxialShadingPattern.getPattern: \"${ex?.message}\".`);\n      }\n    } else {\n      // Shading fills are applied relative to the current matrix which is also\n      // how canvas gradients work, so there's no need to do anything special\n      // here.\n      applyBoundingBox(ctx, this._bbox);\n      pattern = this._createGradient(ctx);\n    }\n    return pattern;\n  }\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n  // Very basic Gouraud-shaded triangle rasterization algorithm.\n  const coords = context.coords,\n    colors = context.colors;\n  const bytes = data.data,\n    rowSize = data.width * 4;\n  let tmp;\n  if (coords[p1 + 1] > coords[p2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n  if (coords[p2 + 1] > coords[p3 + 1]) {\n    tmp = p2;\n    p2 = p3;\n    p3 = tmp;\n    tmp = c2;\n    c2 = c3;\n    c3 = tmp;\n  }\n  if (coords[p1 + 1] > coords[p2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n  const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n  const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n  const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n  const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n  const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n  const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n  if (y1 >= y3) {\n    return;\n  }\n  const c1r = colors[c1],\n    c1g = colors[c1 + 1],\n    c1b = colors[c1 + 2];\n  const c2r = colors[c2],\n    c2g = colors[c2 + 1],\n    c2b = colors[c2 + 2];\n  const c3r = colors[c3],\n    c3g = colors[c3 + 1],\n    c3b = colors[c3 + 2];\n\n  const minY = Math.round(y1),\n    maxY = Math.round(y3);\n  let xa, car, cag, cab;\n  let xb, cbr, cbg, cbb;\n  for (let y = minY; y <= maxY; y++) {\n    if (y < y2) {\n      let k;\n      if (y < y1) {\n        k = 0;\n      } else {\n        k = (y1 - y) / (y1 - y2);\n      }\n      xa = x1 - (x1 - x2) * k;\n      car = c1r - (c1r - c2r) * k;\n      cag = c1g - (c1g - c2g) * k;\n      cab = c1b - (c1b - c2b) * k;\n    } else {\n      let k;\n      if (y > y3) {\n        k = 1;\n      } else if (y2 === y3) {\n        k = 0;\n      } else {\n        k = (y2 - y) / (y2 - y3);\n      }\n      xa = x2 - (x2 - x3) * k;\n      car = c2r - (c2r - c3r) * k;\n      cag = c2g - (c2g - c3g) * k;\n      cab = c2b - (c2b - c3b) * k;\n    }\n\n    let k;\n    if (y < y1) {\n      k = 0;\n    } else if (y > y3) {\n      k = 1;\n    } else {\n      k = (y1 - y) / (y1 - y3);\n    }\n    xb = x1 - (x1 - x3) * k;\n    cbr = c1r - (c1r - c3r) * k;\n    cbg = c1g - (c1g - c3g) * k;\n    cbb = c1b - (c1b - c3b) * k;\n    const x1_ = Math.round(Math.min(xa, xb));\n    const x2_ = Math.round(Math.max(xa, xb));\n    let j = rowSize * y + x1_ * 4;\n    for (let x = x1_; x <= x2_; x++) {\n      k = (xa - x) / (xa - xb);\n      if (k < 0) {\n        k = 0;\n      } else if (k > 1) {\n        k = 1;\n      }\n      bytes[j++] = (car - (car - cbr) * k) | 0;\n      bytes[j++] = (cag - (cag - cbg) * k) | 0;\n      bytes[j++] = (cab - (cab - cbb) * k) | 0;\n      bytes[j++] = 255;\n    }\n  }\n}\n\nfunction drawFigure(data, figure, context) {\n  const ps = figure.coords;\n  const cs = figure.colors;\n  let i, ii;\n  switch (figure.type) {\n    case \"lattice\":\n      const verticesPerRow = figure.verticesPerRow;\n      const rows = Math.floor(ps.length / verticesPerRow) - 1;\n      const cols = verticesPerRow - 1;\n      for (i = 0; i < rows; i++) {\n        let q = i * verticesPerRow;\n        for (let j = 0; j < cols; j++, q++) {\n          drawTriangle(\n            data,\n            context,\n            ps[q],\n            ps[q + 1],\n            ps[q + verticesPerRow],\n            cs[q],\n            cs[q + 1],\n            cs[q + verticesPerRow]\n          );\n          drawTriangle(\n            data,\n            context,\n            ps[q + verticesPerRow + 1],\n            ps[q + 1],\n            ps[q + verticesPerRow],\n            cs[q + verticesPerRow + 1],\n            cs[q + 1],\n            cs[q + verticesPerRow]\n          );\n        }\n      }\n      break;\n    case \"triangles\":\n      for (i = 0, ii = ps.length; i < ii; i += 3) {\n        drawTriangle(\n          data,\n          context,\n          ps[i],\n          ps[i + 1],\n          ps[i + 2],\n          cs[i],\n          cs[i + 1],\n          cs[i + 2]\n        );\n      }\n      break;\n    default:\n      throw new Error(\"illegal figure\");\n  }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._coords = IR[2];\n    this._colors = IR[3];\n    this._figures = IR[4];\n    this._bounds = IR[5];\n    this._bbox = IR[7];\n    this._background = IR[8];\n    this.matrix = null;\n  }\n\n  _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n    // we will increase scale on some weird factor to let antialiasing take\n    // care of \"rough\" edges\n    const EXPECTED_SCALE = 1.1;\n    // MAX_PATTERN_SIZE is used to avoid OOM situation.\n    const MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n    // We need to keep transparent border around our pattern for fill():\n    // createPattern with 'no-repeat' will bleed edges across entire area.\n    const BORDER_SIZE = 2;\n\n    const offsetX = Math.floor(this._bounds[0]);\n    const offsetY = Math.floor(this._bounds[1]);\n    const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n    const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n\n    const width = Math.min(\n      Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)),\n      MAX_PATTERN_SIZE\n    );\n    const height = Math.min(\n      Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)),\n      MAX_PATTERN_SIZE\n    );\n    const scaleX = boundsWidth / width;\n    const scaleY = boundsHeight / height;\n\n    const context = {\n      coords: this._coords,\n      colors: this._colors,\n      offsetX: -offsetX,\n      offsetY: -offsetY,\n      scaleX: 1 / scaleX,\n      scaleY: 1 / scaleY,\n    };\n\n    const paddedWidth = width + BORDER_SIZE * 2;\n    const paddedHeight = height + BORDER_SIZE * 2;\n\n    const tmpCanvas = cachedCanvases.getCanvas(\n      \"mesh\",\n      paddedWidth,\n      paddedHeight,\n      false\n    );\n    const tmpCtx = tmpCanvas.context;\n\n    const data = tmpCtx.createImageData(width, height);\n    if (backgroundColor) {\n      const bytes = data.data;\n      for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n        bytes[i] = backgroundColor[0];\n        bytes[i + 1] = backgroundColor[1];\n        bytes[i + 2] = backgroundColor[2];\n        bytes[i + 3] = 255;\n      }\n    }\n    for (const figure of this._figures) {\n      drawFigure(data, figure, context);\n    }\n    tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n    const canvas = tmpCanvas.canvas;\n\n    return {\n      canvas,\n      offsetX: offsetX - BORDER_SIZE * scaleX,\n      offsetY: offsetY - BORDER_SIZE * scaleY,\n      scaleX,\n      scaleY,\n    };\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    applyBoundingBox(ctx, this._bbox);\n    let scale;\n    if (pathType === PathType.SHADING) {\n      scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n    } else {\n      // Obtain scale from matrix and current transformation matrix.\n      scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n      if (this.matrix) {\n        const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n        scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n      }\n    }\n\n    // Rasterizing on the main thread since sending/queue large canvases\n    // might cause OOM.\n    const temporaryPatternCanvas = this._createMeshCanvas(\n      scale,\n      pathType === PathType.SHADING ? null : this._background,\n      owner.cachedCanvases\n    );\n\n    if (pathType !== PathType.SHADING) {\n      ctx.setTransform.apply(ctx, owner.baseTransform);\n      if (this.matrix) {\n        ctx.transform.apply(ctx, this.matrix);\n      }\n    }\n\n    ctx.translate(\n      temporaryPatternCanvas.offsetX,\n      temporaryPatternCanvas.offsetY\n    );\n    ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n\n    return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n  }\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n  getPattern() {\n    return \"hotpink\";\n  }\n}\n\nfunction getShadingPattern(IR) {\n  switch (IR[0]) {\n    case \"RadialAxial\":\n      return new RadialAxialShadingPattern(IR);\n    case \"Mesh\":\n      return new MeshShadingPattern(IR);\n    case \"Dummy\":\n      return new DummyShadingPattern();\n  }\n  throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n  COLORED: 1,\n  UNCOLORED: 2,\n};\n\nclass TilingPattern {\n  // 10in @ 300dpi shall be enough.\n  static get MAX_PATTERN_SIZE() {\n    return shadow(this, \"MAX_PATTERN_SIZE\", 3000);\n  }\n\n  constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n    this.operatorList = IR[2];\n    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.color = color;\n    this.ctx = ctx;\n    this.canvasGraphicsFactory = canvasGraphicsFactory;\n    this.baseTransform = baseTransform;\n  }\n\n  createPatternCanvas(owner) {\n    const operatorList = this.operatorList;\n    const bbox = this.bbox;\n    const xstep = this.xstep;\n    const ystep = this.ystep;\n    const paintType = this.paintType;\n    const tilingType = this.tilingType;\n    const color = this.color;\n    const canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n    info(\"TilingType: \" + tilingType);\n\n    // A tiling pattern as defined by PDF spec 8.7.2 is a cell whose size is\n    // described by bbox, and may repeat regularly by shifting the cell by\n    // xstep and ystep.\n    // Because the HTML5 canvas API does not support pattern repetition with\n    // gaps in between, we use the xstep/ystep instead of the bbox's size.\n    //\n    // This has the following consequences (similarly for ystep):\n    //\n    // - If xstep is the same as bbox, then there is no observable difference.\n    //\n    // - If xstep is larger than bbox, then the pattern canvas is partially\n    //   empty: the area bounded by bbox is painted, the outside area is void.\n    //\n    // - If xstep is smaller than bbox, then the pixels between xstep and the\n    //   bbox boundary will be missing. This is INCORRECT behavior.\n    //   \"Figures on adjacent tiles should not overlap\" (PDF spec 8.7.3.1),\n    //   but overlapping cells without common pixels are still valid.\n    //   TODO: Fix the implementation, to allow this scenario to be painted\n    //   correctly.\n\n    const x0 = bbox[0],\n      y0 = bbox[1],\n      x1 = bbox[2],\n      y1 = bbox[3];\n\n    // Obtain scale from matrix and current transformation matrix.\n    const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n    const curMatrixScale = Util.singularValueDecompose2dScale(\n      this.baseTransform\n    );\n    const combinedScale = [\n      matrixScale[0] * curMatrixScale[0],\n      matrixScale[1] * curMatrixScale[1],\n    ];\n\n    // Use width and height values that are as close as possible to the end\n    // result when the pattern is used. Too low value makes the pattern look\n    // blurry. Too large value makes it look too crispy.\n    const dimx = this.getSizeAndScale(\n      xstep,\n      this.ctx.canvas.width,\n      combinedScale[0]\n    );\n    const dimy = this.getSizeAndScale(\n      ystep,\n      this.ctx.canvas.height,\n      combinedScale[1]\n    );\n\n    const tmpCanvas = owner.cachedCanvases.getCanvas(\n      \"pattern\",\n      dimx.size,\n      dimy.size,\n      true\n    );\n    const tmpCtx = tmpCanvas.context;\n    const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n    graphics.groupLevel = owner.groupLevel;\n\n    this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n    let adjustedX0 = x0;\n    let adjustedY0 = y0;\n    let adjustedX1 = x1;\n    let adjustedY1 = y1;\n    // Some bounding boxes have negative x0/y0 cordinates which will cause the\n    // some of the drawing to be off of the canvas. To avoid this shift the\n    // bounding box over.\n    if (x0 < 0) {\n      adjustedX0 = 0;\n      adjustedX1 += Math.abs(x0);\n    }\n    if (y0 < 0) {\n      adjustedY0 = 0;\n      adjustedY1 += Math.abs(y0);\n    }\n    tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n    graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n    this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n\n    graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n\n    graphics.executeOperatorList(operatorList);\n\n    graphics.endDrawing();\n\n    return {\n      canvas: tmpCanvas.canvas,\n      scaleX: dimx.scale,\n      scaleY: dimy.scale,\n      offsetX: adjustedX0,\n      offsetY: adjustedY0,\n    };\n  }\n\n  getSizeAndScale(step, realOutputSize, scale) {\n    // xstep / ystep may be negative -- normalize.\n    step = Math.abs(step);\n    // MAX_PATTERN_SIZE is used to avoid OOM situation.\n    // Use the destination canvas's size if it is bigger than the hard-coded\n    // limit of MAX_PATTERN_SIZE to avoid clipping patterns that cover the\n    // whole canvas.\n    const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n    let size = Math.ceil(step * scale);\n    if (size >= maxSize) {\n      size = maxSize;\n    } else {\n      scale = size / step;\n    }\n    return { scale, size };\n  }\n\n  clipBbox(graphics, x0, y0, x1, y1) {\n    const bboxWidth = x1 - x0;\n    const bboxHeight = y1 - y0;\n    graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n    graphics.clip();\n    graphics.endPath();\n  }\n\n  setFillAndStrokeStyleToContext(graphics, paintType, color) {\n    const context = graphics.ctx,\n      current = graphics.current;\n    switch (paintType) {\n      case PaintType.COLORED:\n        const ctx = this.ctx;\n        context.fillStyle = ctx.fillStyle;\n        context.strokeStyle = ctx.strokeStyle;\n        current.fillColor = ctx.fillStyle;\n        current.strokeColor = ctx.strokeStyle;\n        break;\n      case PaintType.UNCOLORED:\n        const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n        context.fillStyle = cssColor;\n        context.strokeStyle = cssColor;\n        // Set color needed by image masks (fixes issues 3226 and 8741).\n        current.fillColor = cssColor;\n        current.strokeColor = cssColor;\n        break;\n      default:\n        throw new FormatError(`Unsupported paint type: ${paintType}`);\n    }\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n    let matrix = inverse;\n    if (pathType !== PathType.SHADING) {\n      matrix = Util.transform(matrix, owner.baseTransform);\n      if (this.matrix) {\n        matrix = Util.transform(matrix, this.matrix);\n      }\n    }\n\n    const temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n    let domMatrix = new DOMMatrix(matrix);\n    // Rescale and so that the ctx.createPattern call generates a pattern with\n    // the desired size.\n    domMatrix = domMatrix.translate(\n      temporaryPatternCanvas.offsetX,\n      temporaryPatternCanvas.offsetY\n    );\n    domMatrix = domMatrix.scale(\n      1 / temporaryPatternCanvas.scaleX,\n      1 / temporaryPatternCanvas.scaleY\n    );\n\n    const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n    try {\n      pattern.setTransform(domMatrix);\n    } catch (ex) {\n      // Avoid rendering breaking completely in Firefox 78 ESR,\n      // and in Node.js (see issue 13724).\n      warn(`TilingPattern.getPattern: \"${ex?.message}\".`);\n    }\n    return pattern;\n  }\n}\n\nexport { getShadingPattern, PathType, TilingPattern };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @typedef {Object} GlobalWorkerOptionsType\n * @property {Worker | null} workerPort - Defines global port for worker\n *   process. Overrides the `workerSrc` option.\n * @property {string} workerSrc - A string containing the path and filename\n *   of the worker file.\n *\n *   NOTE: The `workerSrc` option should always be set, in order to prevent any\n *         issues when using the PDF.js library.\n */\n\n/** @type {GlobalWorkerOptionsType} */\nconst GlobalWorkerOptions = Object.create(null);\n\nGlobalWorkerOptions.workerPort =\n  GlobalWorkerOptions.workerPort === undefined\n    ? null\n    : GlobalWorkerOptions.workerPort;\n\nGlobalWorkerOptions.workerSrc =\n  GlobalWorkerOptions.workerSrc === undefined\n    ? \"\"\n    : GlobalWorkerOptions.workerSrc;\n\nexport { GlobalWorkerOptions };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n  MissingPDFException,\n  PasswordException,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  warn,\n} from \"./util.js\";\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2,\n};\n\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n  if (\n    !(\n      reason instanceof Error ||\n      (typeof reason === \"object\" && reason !== null)\n    )\n  ) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      throw new Error(\n        'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n      );\n    }\n    warn('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n    return reason;\n  }\n  switch (reason.name) {\n    case \"AbortException\":\n      return new AbortException(reason.message);\n    case \"MissingPDFException\":\n      return new MissingPDFException(reason.message);\n    case \"PasswordException\":\n      return new PasswordException(reason.message, reason.code);\n    case \"UnexpectedResponseException\":\n      return new UnexpectedResponseException(reason.message, reason.status);\n    case \"UnknownErrorException\":\n      return new UnknownErrorException(reason.message, reason.details);\n    default:\n      return new UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n      if (data.stream) {\n        this._processStreamMessage(data);\n        return;\n      }\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n        return;\n      }\n      const action = this.actionHandler[data.action];\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(\n          function (result) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.DATA,\n              callbackId: data.callbackId,\n              data: result,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.ERROR,\n              callbackId: data.callbackId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        return;\n      }\n      if (data.streamId) {\n        this._createStreamSink(data);\n        return;\n      }\n      action(data.data);\n    };\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(\n        typeof handler === \"function\",\n        'MessageHandler.on: Expected \"handler\" to be a function.'\n      );\n    }\n    const ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = handler;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   */\n  send(actionName, data, transfers) {\n    this.comObj.postMessage(\n      {\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        data,\n      },\n      transfers\n    );\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expects that the other side will callback with the response.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {Promise} Promise to be resolved with response data.\n   */\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = createPromiseCapability();\n    this.callbackCapabilities[callbackId] = capability;\n    try {\n      this.comObj.postMessage(\n        {\n          sourceName: this.sourceName,\n          targetName: this.targetName,\n          action: actionName,\n          callbackId,\n          data,\n        },\n        transfers\n      );\n    } catch (ex) {\n      capability.reject(ex);\n    }\n    return capability.promise;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expect that the other side will callback to signal 'start_complete'.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n   *                 internal queue.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {ReadableStream} ReadableStream to read data in chunks.\n   */\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n      sourceName = this.sourceName,\n      targetName = this.targetName,\n      comObj = this.comObj;\n\n    return new ReadableStream(\n      {\n        start: controller => {\n          const startCapability = createPromiseCapability();\n          this.streamControllers[streamId] = {\n            controller,\n            startCall: startCapability,\n            pullCall: null,\n            cancelCall: null,\n            isClosed: false,\n          };\n          comObj.postMessage(\n            {\n              sourceName,\n              targetName,\n              action: actionName,\n              streamId,\n              data,\n              desiredSize: controller.desiredSize,\n            },\n            transfers\n          );\n          // Return Promise for Async process, to signal success/failure.\n          return startCapability.promise;\n        },\n\n        pull: controller => {\n          const pullCapability = createPromiseCapability();\n          this.streamControllers[streamId].pullCall = pullCapability;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL,\n            streamId,\n            desiredSize: controller.desiredSize,\n          });\n          // Returning Promise will not call \"pull\"\n          // again until current pull is resolved.\n          return pullCapability.promise;\n        },\n\n        cancel: reason => {\n          assert(reason instanceof Error, \"cancel must have a valid reason\");\n          const cancelCapability = createPromiseCapability();\n          this.streamControllers[streamId].cancelCall = cancelCapability;\n          this.streamControllers[streamId].isClosed = true;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL,\n            streamId,\n            reason: wrapReason(reason),\n          });\n          // Return Promise to signal success or failure.\n          return cancelCapability.promise;\n        },\n      },\n      queueingStrategy\n    );\n  }\n\n  /**\n   * @private\n   */\n  _createStreamSink(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const self = this,\n      action = this.actionHandler[data.action];\n\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        // Enqueue decreases the desiredSize property of sink,\n        // so when it changes from positive to negative,\n        // set ready as unresolved promise.\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = createPromiseCapability();\n          this.ready = this.sinkCapability.promise;\n        }\n        comObj.postMessage(\n          {\n            sourceName,\n            targetName,\n            stream: StreamKind.ENQUEUE,\n            streamId,\n            chunk,\n          },\n          transfers\n        );\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId,\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        assert(reason instanceof Error, \"error must have a valid reason\");\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      },\n\n      sinkCapability: createPromiseCapability(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null,\n    };\n\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(\n      function () {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          success: true,\n        });\n      },\n      function (reason) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      }\n    );\n  }\n\n  /**\n   * @private\n   */\n  _processStreamMessage(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n      streamSink = this.streamSinks[streamId];\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL:\n        // Ignore any pull after close is called.\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true,\n          });\n          break;\n        }\n        // Pull increases the desiredSize property of sink, so when it changes\n        // from negative to positive, set ready property as resolved promise.\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n        // Reset desiredSize property of sink on every pull.\n        streamSink.desiredSize = data.desiredSize;\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onPull && streamSink.onPull());\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        break;\n      case StreamKind.ENQUEUE:\n        assert(streamController, \"enqueue should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.controller.enqueue(data.chunk);\n        break;\n      case StreamKind.CLOSE:\n        assert(streamController, \"close should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.isClosed = true;\n        streamController.controller.close();\n        this._deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.ERROR:\n        assert(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n        this._deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n        this._deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n\n        new Promise(function (resolve) {\n          resolve(\n            streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n          );\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        streamSink.sinkCapability.reject(wrapReason(data.reason));\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  /**\n   * @private\n   */\n  async _deleteStreamController(streamController, streamId) {\n    // Delete the `streamController` only when the start, pull, and cancel\n    // capabilities have settled, to prevent `TypeError`s.\n    await Promise.allSettled([\n      streamController.startCall && streamController.startCall.promise,\n      streamController.pullCall && streamController.pullCall.promise,\n      streamController.cancelCall && streamController.cancelCall.promise,\n    ]);\n    delete this.streamControllers[streamId];\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n}\n\nexport { MessageHandler };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap } from \"../shared/util.js\";\n\nclass Metadata {\n  #metadataMap;\n\n  #data;\n\n  constructor({ parsedData, rawData }) {\n    this.#metadataMap = parsedData;\n    this.#data = rawData;\n  }\n\n  getRaw() {\n    return this.#data;\n  }\n\n  get(name) {\n    return this.#metadataMap.get(name) ?? null;\n  }\n\n  getAll() {\n    return objectFromMap(this.#metadataMap);\n  }\n\n  has(name) {\n    return this.#metadataMap.has(name);\n  }\n}\n\nexport { Metadata };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { objectFromMap, warn } from \"../shared/util.js\";\n\nclass OptionalContentGroup {\n  constructor(name, intent) {\n    this.visible = true;\n    this.name = name;\n    this.intent = intent;\n  }\n}\n\nclass OptionalContentConfig {\n  constructor(data) {\n    this.name = null;\n    this.creator = null;\n    this._order = null;\n    this._groups = new Map();\n\n    if (data === null) {\n      return;\n    }\n    this.name = data.name;\n    this.creator = data.creator;\n    this._order = data.order;\n    for (const group of data.groups) {\n      this._groups.set(\n        group.id,\n        new OptionalContentGroup(group.name, group.intent)\n      );\n    }\n\n    if (data.baseState === \"OFF\") {\n      for (const group of this._groups) {\n        group.visible = false;\n      }\n    }\n\n    for (const on of data.on) {\n      this._groups.get(on).visible = true;\n    }\n\n    for (const off of data.off) {\n      this._groups.get(off).visible = false;\n    }\n  }\n\n  _evaluateVisibilityExpression(array) {\n    const length = array.length;\n    if (length < 2) {\n      return true;\n    }\n    const operator = array[0];\n    for (let i = 1; i < length; i++) {\n      const element = array[i];\n      let state;\n      if (Array.isArray(element)) {\n        state = this._evaluateVisibilityExpression(element);\n      } else if (this._groups.has(element)) {\n        state = this._groups.get(element).visible;\n      } else {\n        warn(`Optional content group not found: ${element}`);\n        return true;\n      }\n      switch (operator) {\n        case \"And\":\n          if (!state) {\n            return false;\n          }\n          break;\n        case \"Or\":\n          if (state) {\n            return true;\n          }\n          break;\n        case \"Not\":\n          return !state;\n        default:\n          return true;\n      }\n    }\n    return operator === \"And\";\n  }\n\n  isVisible(group) {\n    if (this._groups.size === 0) {\n      return true;\n    }\n    if (!group) {\n      warn(\"Optional content group not defined.\");\n      return true;\n    }\n    if (group.type === \"OCG\") {\n      if (!this._groups.has(group.id)) {\n        warn(`Optional content group not found: ${group.id}`);\n        return true;\n      }\n      return this._groups.get(group.id).visible;\n    } else if (group.type === \"OCMD\") {\n      // Per the spec, the expression should be preferred if available.\n      if (group.expression) {\n        return this._evaluateVisibilityExpression(group.expression);\n      }\n      if (!group.policy || group.policy === \"AnyOn\") {\n        // Default\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this._groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOn\") {\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this._groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      } else if (group.policy === \"AnyOff\") {\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this._groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOff\") {\n        for (const id of group.ids) {\n          if (!this._groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this._groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      }\n      warn(`Unknown optional content policy ${group.policy}.`);\n      return true;\n    }\n    warn(`Unknown group type ${group.type}.`);\n    return true;\n  }\n\n  setVisibility(id, visible = true) {\n    if (!this._groups.has(id)) {\n      warn(`Optional content group not found: ${id}`);\n      return;\n    }\n    this._groups.get(id).visible = !!visible;\n  }\n\n  getOrder() {\n    if (!this._groups.size) {\n      return null;\n    }\n    if (this._order) {\n      return this._order.slice();\n    }\n    return Array.from(this._groups.keys());\n  }\n\n  getGroups() {\n    return this._groups.size > 0 ? objectFromMap(this._groups) : null;\n  }\n\n  getGroup(id) {\n    return this._groups.get(id) || null;\n  }\n}\n\nexport { OptionalContentConfig };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, createPromiseCapability } from \"../shared/util.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n  constructor(params, pdfDataRangeTransport) {\n    assert(\n      pdfDataRangeTransport,\n      'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.'\n    );\n\n    this._queuedChunks = [];\n    this._progressiveDone = params.progressiveDone || false;\n    this._contentDispositionFilename =\n      params.contentDispositionFilename || null;\n\n    const initialData = params.initialData;\n    if (initialData?.length > 0) {\n      const buffer = new Uint8Array(initialData).buffer;\n      this._queuedChunks.push(buffer);\n    }\n\n    this._pdfDataRangeTransport = pdfDataRangeTransport;\n    this._isStreamingSupported = !params.disableStream;\n    this._isRangeSupported = !params.disableRange;\n    this._contentLength = params.length;\n\n    this._fullRequestReader = null;\n    this._rangeReaders = [];\n\n    this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n      this._onReceiveData({ begin, chunk });\n    });\n\n    this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n      this._onProgress({ loaded, total });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n      this._onReceiveData({ chunk });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n      this._onProgressiveDone();\n    });\n\n    this._pdfDataRangeTransport.transportReady();\n  }\n\n  _onReceiveData(args) {\n    const buffer = new Uint8Array(args.chunk).buffer;\n    if (args.begin === undefined) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader._enqueue(buffer);\n      } else {\n        this._queuedChunks.push(buffer);\n      }\n    } else {\n      const found = this._rangeReaders.some(function (rangeReader) {\n        if (rangeReader._begin !== args.begin) {\n          return false;\n        }\n        rangeReader._enqueue(buffer);\n        return true;\n      });\n      assert(\n        found,\n        \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\"\n      );\n    }\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader?._loaded ?? 0;\n  }\n\n  _onProgress(evt) {\n    if (evt.total === undefined) {\n      // Reporting to first range reader, if it exists.\n      const firstReader = this._rangeReaders[0];\n      if (firstReader?.onProgress) {\n        firstReader.onProgress({ loaded: evt.loaded });\n      }\n    } else {\n      const fullReader = this._fullRequestReader;\n      if (fullReader?.onProgress) {\n        fullReader.onProgress({ loaded: evt.loaded, total: evt.total });\n      }\n    }\n  }\n\n  _onProgressiveDone() {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.progressiveDone();\n    }\n    this._progressiveDone = true;\n  }\n\n  _removeRangeReader(reader) {\n    const i = this._rangeReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFDataTransportStream.getFullReader can only be called once.\"\n    );\n    const queuedChunks = this._queuedChunks;\n    this._queuedChunks = null;\n    return new PDFDataTransportStreamReader(\n      this,\n      queuedChunks,\n      this._progressiveDone,\n      this._contentDispositionFilename\n    );\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n    this._pdfDataRangeTransport.requestDataRange(begin, end);\n    this._rangeReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    for (const reader of this._rangeReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n    this._pdfDataRangeTransport.abort();\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n  constructor(\n    stream,\n    queuedChunks,\n    progressiveDone = false,\n    contentDispositionFilename = null\n  ) {\n    this._stream = stream;\n    this._done = progressiveDone || false;\n    this._filename = isPdfFile(contentDispositionFilename)\n      ? contentDispositionFilename\n      : null;\n    this._queuedChunks = queuedChunks || [];\n    this._loaded = 0;\n    for (const chunk of this._queuedChunks) {\n      this._loaded += chunk.byteLength;\n    }\n    this._requests = [];\n    this._headersReady = Promise.resolve();\n    stream._fullRequestReader = this;\n\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return; // Ignore new data.\n    }\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false });\n    } else {\n      this._queuedChunks.push(chunk);\n    }\n    this._loaded += chunk.byteLength;\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._stream._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._stream._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._stream._contentLength;\n  }\n\n  async read() {\n    if (this._queuedChunks.length > 0) {\n      const chunk = this._queuedChunks.shift();\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n  }\n\n  progressiveDone() {\n    if (this._done) {\n      return;\n    }\n    this._done = true;\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFDataTransportStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._begin = begin;\n    this._end = end;\n    this._queuedChunk = null;\n    this._requests = [];\n    this._done = false;\n\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return; // ignore new data\n    }\n    if (this._requests.length === 0) {\n      this._queuedChunk = chunk;\n    } else {\n      const requestsCapability = this._requests.shift();\n      requestsCapability.resolve({ value: chunk, done: false });\n      for (const requestCapability of this._requests) {\n        requestCapability.resolve({ value: undefined, done: true });\n      }\n      this._requests.length = 0;\n    }\n    this._done = true;\n    this._stream._removeRangeReader(this);\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._queuedChunk) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    this._stream._removeRangeReader(this);\n  }\n}\n\nexport { PDFDataTransportStream };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass XfaText {\n  /**\n   * Walk an XFA tree and create an array of text nodes that is compatible\n   * with a regular PDFs TextContent. Currently, only TextItem.str is supported,\n   * all other fields and styles haven't been implemented.\n   *\n   * @param {Object} xfa - An XFA fake DOM object.\n   *\n   * @returns {TextContent}\n   */\n  static textContent(xfa) {\n    const items = [];\n    const output = {\n      items,\n      styles: Object.create(null),\n    };\n    function walk(node) {\n      if (!node) {\n        return;\n      }\n      let str = null;\n      const name = node.name;\n      if (name === \"#text\") {\n        str = node.value;\n      } else if (!XfaText.shouldBuildText(name)) {\n        return;\n      } else if (node?.attributes?.textContent) {\n        str = node.attributes.textContent;\n      } else if (node.value) {\n        str = node.value;\n      }\n      if (str !== null) {\n        items.push({\n          str,\n        });\n      }\n      if (!node.children) {\n        return;\n      }\n      for (const child of node.children) {\n        walk(child);\n      }\n    }\n    walk(xfa);\n    return output;\n  }\n\n  /**\n   * @param {string} name - DOM node name. (lower case)\n   *\n   * @returns {boolean} true if the DOM node should have a corresponding text\n   * node.\n   */\n  static shouldBuildText(name) {\n    return !(\n      name === \"textarea\" ||\n      name === \"input\" ||\n      name === \"option\" ||\n      name === \"select\"\n    );\n  }\n}\n\nexport { XfaText };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport {\n  AnnotationBorderStyleType,\n  AnnotationType,\n  assert,\n  shadow,\n  stringToPDFString,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  DOMSVGFactory,\n  getFilenameFromUrl,\n  PDFDateString,\n} from \"./display_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { ColorConverters } from \"../shared/scripting_utils.js\";\nimport { XfaLayer } from \"./xfa_layer.js\";\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst GetElementsByNameSet = new WeakSet();\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPageProxy} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {Object} svgFactory\n * @property {boolean} [enableScripting]\n * @property {boolean} [hasJSActions]\n * @property {Object} [fieldObjects]\n * @property {Object} [mouseState]\n */\n\nclass AnnotationElementFactory {\n  /**\n   * @param {AnnotationElementParameters} parameters\n   * @returns {AnnotationElement}\n   */\n  static create(parameters) {\n    const subtype = parameters.data.annotationType;\n\n    switch (subtype) {\n      case AnnotationType.LINK:\n        return new LinkAnnotationElement(parameters);\n\n      case AnnotationType.TEXT:\n        return new TextAnnotationElement(parameters);\n\n      case AnnotationType.WIDGET:\n        const fieldType = parameters.data.fieldType;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotationElement(parameters);\n          case \"Btn\":\n            if (parameters.data.radioButton) {\n              return new RadioButtonWidgetAnnotationElement(parameters);\n            } else if (parameters.data.checkBox) {\n              return new CheckboxWidgetAnnotationElement(parameters);\n            }\n            return new PushButtonWidgetAnnotationElement(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotationElement(parameters);\n        }\n        return new WidgetAnnotationElement(parameters);\n\n      case AnnotationType.POPUP:\n        return new PopupAnnotationElement(parameters);\n\n      case AnnotationType.FREETEXT:\n        return new FreeTextAnnotationElement(parameters);\n\n      case AnnotationType.LINE:\n        return new LineAnnotationElement(parameters);\n\n      case AnnotationType.SQUARE:\n        return new SquareAnnotationElement(parameters);\n\n      case AnnotationType.CIRCLE:\n        return new CircleAnnotationElement(parameters);\n\n      case AnnotationType.POLYLINE:\n        return new PolylineAnnotationElement(parameters);\n\n      case AnnotationType.CARET:\n        return new CaretAnnotationElement(parameters);\n\n      case AnnotationType.INK:\n        return new InkAnnotationElement(parameters);\n\n      case AnnotationType.POLYGON:\n        return new PolygonAnnotationElement(parameters);\n\n      case AnnotationType.HIGHLIGHT:\n        return new HighlightAnnotationElement(parameters);\n\n      case AnnotationType.UNDERLINE:\n        return new UnderlineAnnotationElement(parameters);\n\n      case AnnotationType.SQUIGGLY:\n        return new SquigglyAnnotationElement(parameters);\n\n      case AnnotationType.STRIKEOUT:\n        return new StrikeOutAnnotationElement(parameters);\n\n      case AnnotationType.STAMP:\n        return new StampAnnotationElement(parameters);\n\n      case AnnotationType.FILEATTACHMENT:\n        return new FileAttachmentAnnotationElement(parameters);\n\n      default:\n        return new AnnotationElement(parameters);\n    }\n  }\n}\n\nclass AnnotationElement {\n  constructor(\n    parameters,\n    {\n      isRenderable = false,\n      ignoreBorder = false,\n      createQuadrilaterals = false,\n    } = {}\n  ) {\n    this.isRenderable = isRenderable;\n    this.data = parameters.data;\n    this.layer = parameters.layer;\n    this.page = parameters.page;\n    this.viewport = parameters.viewport;\n    this.linkService = parameters.linkService;\n    this.downloadManager = parameters.downloadManager;\n    this.imageResourcesPath = parameters.imageResourcesPath;\n    this.renderForms = parameters.renderForms;\n    this.svgFactory = parameters.svgFactory;\n    this.annotationStorage = parameters.annotationStorage;\n    this.enableScripting = parameters.enableScripting;\n    this.hasJSActions = parameters.hasJSActions;\n    this._fieldObjects = parameters.fieldObjects;\n    this._mouseState = parameters.mouseState;\n\n    if (isRenderable) {\n      this.container = this._createContainer(ignoreBorder);\n    }\n    if (createQuadrilaterals) {\n      this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n    }\n  }\n\n  /**\n   * Create an empty container for the annotation's HTML element.\n   *\n   * @private\n   * @param {boolean} ignoreBorder\n   * @memberof AnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  _createContainer(ignoreBorder = false) {\n    const data = this.data,\n      page = this.page,\n      viewport = this.viewport;\n    const container = document.createElement(\"section\");\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n\n    container.setAttribute(\"data-annotation-id\", data.id);\n\n    // Do *not* modify `data.rect`, since that will corrupt the annotation\n    // position on subsequent calls to `_createContainer` (see issue 6804).\n    const rect = Util.normalizeRect([\n      data.rect[0],\n      page.view[3] - data.rect[1] + page.view[1],\n      data.rect[2],\n      page.view[3] - data.rect[3] + page.view[1],\n    ]);\n\n    if (data.hasOwnCanvas) {\n      const transform = viewport.transform.slice();\n      const [scaleX, scaleY] = Util.singularValueDecompose2dScale(transform);\n      width = Math.ceil(width * scaleX);\n      height = Math.ceil(height * scaleY);\n      rect[0] *= scaleX;\n      rect[1] *= scaleY;\n      // Reset the scale part of the transform matrix (which must be diagonal\n      // or anti-diagonal) in order to avoid to rescale the canvas.\n      // The canvas for the annotation is correctly scaled when it is drawn\n      // (see `beginAnnotation` in canvas.js).\n      for (let i = 0; i < 4; i++) {\n        transform[i] = Math.sign(transform[i]);\n      }\n      container.style.transform = `matrix(${transform.join(\",\")})`;\n    } else {\n      container.style.transform = `matrix(${viewport.transform.join(\",\")})`;\n    }\n\n    container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`;\n\n    if (!ignoreBorder && data.borderStyle.width > 0) {\n      container.style.borderWidth = `${data.borderStyle.width}px`;\n      if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n        // Underline styles only have a bottom border, so we do not need\n        // to adjust for all borders. This yields a similar result as\n        // Adobe Acrobat/Reader.\n        width -= 2 * data.borderStyle.width;\n        height -= 2 * data.borderStyle.width;\n      }\n\n      const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      const verticalRadius = data.borderStyle.verticalCornerRadius;\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        const radius = `${horizontalRadius}px / ${verticalRadius}px`;\n        container.style.borderRadius = radius;\n      }\n\n      switch (data.borderStyle.style) {\n        case AnnotationBorderStyleType.SOLID:\n          container.style.borderStyle = \"solid\";\n          break;\n\n        case AnnotationBorderStyleType.DASHED:\n          container.style.borderStyle = \"dashed\";\n          break;\n\n        case AnnotationBorderStyleType.BEVELED:\n          warn(\"Unimplemented border style: beveled\");\n          break;\n\n        case AnnotationBorderStyleType.INSET:\n          warn(\"Unimplemented border style: inset\");\n          break;\n\n        case AnnotationBorderStyleType.UNDERLINE:\n          container.style.borderBottomStyle = \"solid\";\n          break;\n\n        default:\n          break;\n      }\n\n      const borderColor = data.borderColor || data.color || null;\n      if (borderColor) {\n        container.style.borderColor = Util.makeHexColor(\n          data.color[0] | 0,\n          data.color[1] | 0,\n          data.color[2] | 0\n        );\n      } else {\n        // Transparent (invisible) border, so do not draw it at all.\n        container.style.borderWidth = 0;\n      }\n    }\n\n    container.style.left = `${rect[0]}px`;\n    container.style.top = `${rect[1]}px`;\n\n    if (data.hasOwnCanvas) {\n      container.style.width = container.style.height = \"auto\";\n    } else {\n      container.style.width = `${width}px`;\n      container.style.height = `${height}px`;\n    }\n    return container;\n  }\n\n  /**\n   * Create quadrilaterals from the annotation's quadpoints.\n   *\n   * @private\n   * @param {boolean} ignoreBorder\n   * @memberof AnnotationElement\n   * @returns {Array<HTMLSectionElement>}\n   */\n  _createQuadrilaterals(ignoreBorder = false) {\n    if (!this.data.quadPoints) {\n      return null;\n    }\n\n    const quadrilaterals = [];\n    const savedRect = this.data.rect;\n    for (const quadPoint of this.data.quadPoints) {\n      this.data.rect = [\n        quadPoint[2].x,\n        quadPoint[2].y,\n        quadPoint[1].x,\n        quadPoint[1].y,\n      ];\n      quadrilaterals.push(this._createContainer(ignoreBorder));\n    }\n    this.data.rect = savedRect;\n    return quadrilaterals;\n  }\n\n  /**\n   * Create a popup for the annotation's HTML element. This is used for\n   * annotations that do not have a Popup entry in the dictionary, but\n   * are of a type that works with popups (such as Highlight annotations).\n   *\n   * @private\n   * @param {HTMLDivElement|HTMLImageElement|null} trigger\n   * @param {Object} data\n   * @memberof AnnotationElement\n   */\n  _createPopup(trigger, data) {\n    let container = this.container;\n    if (this.quadrilaterals) {\n      trigger = trigger || this.quadrilaterals;\n      container = this.quadrilaterals[0];\n    }\n\n    // If no trigger element is specified, create it.\n    if (!trigger) {\n      trigger = document.createElement(\"div\");\n      trigger.style.height = container.style.height;\n      trigger.style.width = container.style.width;\n      container.appendChild(trigger);\n    }\n\n    const popupElement = new PopupElement({\n      container,\n      trigger,\n      color: data.color,\n      titleObj: data.titleObj,\n      modificationDate: data.modificationDate,\n      contentsObj: data.contentsObj,\n      richText: data.richText,\n      hideWrapper: true,\n    });\n    const popup = popupElement.render();\n\n    // Position the popup next to the annotation's container.\n    popup.style.left = container.style.width;\n\n    container.appendChild(popup);\n  }\n\n  /**\n   * Render the quadrilaterals of the annotation.\n   *\n   * @private\n   * @param {string} className\n   * @memberof AnnotationElement\n   * @returns {Array<HTMLSectionElement>}\n   */\n  _renderQuadrilaterals(className) {\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"!PRODUCTION || TESTING\")\n    ) {\n      assert(this.quadrilaterals, \"Missing quadrilaterals during rendering\");\n    }\n\n    for (const quadrilateral of this.quadrilaterals) {\n      quadrilateral.className = className;\n    }\n    return this.quadrilaterals;\n  }\n\n  /**\n   * Render the annotation's HTML element(s).\n   *\n   * @public\n   * @memberof AnnotationElement\n   * @returns {HTMLSectionElement|Array<HTMLSectionElement>}\n   */\n  render() {\n    unreachable(\"Abstract method `AnnotationElement.render` called\");\n  }\n\n  /**\n   * @private\n   * @returns {Array}\n   */\n  _getElementsByName(name, skipId = null) {\n    const fields = [];\n\n    if (this._fieldObjects) {\n      const fieldObj = this._fieldObjects[name];\n      if (fieldObj) {\n        for (const { page, id, exportValues } of fieldObj) {\n          if (page === -1) {\n            continue;\n          }\n          if (id === skipId) {\n            continue;\n          }\n          const exportValue =\n            typeof exportValues === \"string\" ? exportValues : null;\n\n          const domElement = document.getElementById(id);\n          if (domElement && !GetElementsByNameSet.has(domElement)) {\n            warn(`_getElementsByName - element not allowed: ${id}`);\n            continue;\n          }\n          fields.push({ id, exportValue, domElement });\n        }\n      }\n      return fields;\n    }\n    // Fallback to a regular DOM lookup, to ensure that the standalone\n    // viewer components won't break.\n    for (const domElement of document.getElementsByName(name)) {\n      const { id, exportValue } = domElement;\n      if (id === skipId) {\n        continue;\n      }\n      if (!GetElementsByNameSet.has(domElement)) {\n        continue;\n      }\n      fields.push({ id, exportValue, domElement });\n    }\n    return fields;\n  }\n\n  static get platform() {\n    const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n\n    return shadow(this, \"platform\", {\n      isWin: platform.includes(\"Win\"),\n      isMac: platform.includes(\"Mac\"),\n    });\n  }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters, options = null) {\n    const isRenderable = !!(\n      parameters.data.url ||\n      parameters.data.dest ||\n      parameters.data.action ||\n      parameters.data.isTooltipOnly ||\n      parameters.data.resetForm ||\n      (parameters.data.actions &&\n        (parameters.data.actions.Action ||\n          parameters.data.actions[\"Mouse Up\"] ||\n          parameters.data.actions[\"Mouse Down\"]))\n    );\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: !!options?.ignoreBorder,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    const { data, linkService } = this;\n    const link = document.createElement(\"a\");\n\n    if (data.url) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n        !linkService.addLinkAttributes\n      ) {\n        warn(\n          \"LinkAnnotationElement.render - missing `addLinkAttributes`-method on the `linkService`-instance.\"\n        );\n      }\n      linkService.addLinkAttributes?.(link, data.url, data.newWindow);\n    } else if (data.action) {\n      this._bindNamedAction(link, data.action);\n    } else if (data.dest) {\n      this._bindLink(link, data.dest);\n    } else {\n      let hasClickAction = false;\n      if (\n        data.actions &&\n        (data.actions.Action ||\n          data.actions[\"Mouse Up\"] ||\n          data.actions[\"Mouse Down\"]) &&\n        this.enableScripting &&\n        this.hasJSActions\n      ) {\n        hasClickAction = true;\n        this._bindJSAction(link, data);\n      }\n\n      if (data.resetForm) {\n        this._bindResetFormAction(link, data.resetForm);\n      } else if (!hasClickAction) {\n        this._bindLink(link, \"\");\n      }\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"linkAnnotation\").map(\n        (quadrilateral, index) => {\n          const linkElement = index === 0 ? link : link.cloneNode();\n          quadrilateral.appendChild(linkElement);\n          return quadrilateral;\n        }\n      );\n    }\n\n    this.container.className = \"linkAnnotation\";\n    this.container.appendChild(link);\n    return this.container;\n  }\n\n  /**\n   * Bind internal links to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} destination\n   * @memberof LinkAnnotationElement\n   */\n  _bindLink(link, destination) {\n    link.href = this.linkService.getDestinationHash(destination);\n    link.onclick = () => {\n      if (destination) {\n        this.linkService.goToDestination(destination);\n      }\n      return false;\n    };\n    if (destination || destination === /* isTooltipOnly = */ \"\") {\n      link.className = \"internalLink\";\n    }\n  }\n\n  /**\n   * Bind named actions to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} action\n   * @memberof LinkAnnotationElement\n   */\n  _bindNamedAction(link, action) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeNamedAction(action);\n      return false;\n    };\n    link.className = \"internalLink\";\n  }\n\n  /**\n   * Bind JS actions to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} data\n   * @memberof LinkAnnotationElement\n   */\n  _bindJSAction(link, data) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    const map = new Map([\n      [\"Action\", \"onclick\"],\n      [\"Mouse Up\", \"onmouseup\"],\n      [\"Mouse Down\", \"onmousedown\"],\n    ]);\n    for (const name of Object.keys(data.actions)) {\n      const jsName = map.get(name);\n      if (!jsName) {\n        continue;\n      }\n      link[jsName] = () => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: data.id,\n            name,\n          },\n        });\n        return false;\n      };\n    }\n\n    if (!link.onclick) {\n      link.onclick = () => false;\n    }\n    link.className = \"internalLink\";\n  }\n\n  _bindResetFormAction(link, resetForm) {\n    const otherClickAction = link.onclick;\n    if (!otherClickAction) {\n      link.href = this.linkService.getAnchorUrl(\"\");\n    }\n    link.className = \"internalLink\";\n\n    if (!this._fieldObjects) {\n      warn(\n        `_bindResetFormAction - \"resetForm\" action not supported, ` +\n          \"ensure that the `fieldObjects` parameter is provided.\"\n      );\n      if (!otherClickAction) {\n        link.onclick = () => false;\n      }\n      return;\n    }\n\n    link.onclick = () => {\n      if (otherClickAction) {\n        otherClickAction();\n      }\n\n      const {\n        fields: resetFormFields,\n        refs: resetFormRefs,\n        include,\n      } = resetForm;\n\n      const allFields = [];\n      if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n        const fieldIds = new Set(resetFormRefs);\n        for (const fieldName of resetFormFields) {\n          const fields = this._fieldObjects[fieldName] || [];\n          for (const { id } of fields) {\n            fieldIds.add(id);\n          }\n        }\n        for (const fields of Object.values(this._fieldObjects)) {\n          for (const field of fields) {\n            if (fieldIds.has(field.id) === include) {\n              allFields.push(field);\n            }\n          }\n        }\n      } else {\n        for (const fields of Object.values(this._fieldObjects)) {\n          allFields.push(...fields);\n        }\n      }\n\n      const storage = this.annotationStorage;\n      const allIds = [];\n      for (const field of allFields) {\n        const { id } = field;\n        allIds.push(id);\n        switch (field.type) {\n          case \"text\": {\n            const value = field.defaultValue || \"\";\n            storage.setValue(id, { value, valueAsString: value });\n            break;\n          }\n          case \"checkbox\":\n          case \"radiobutton\": {\n            const value = field.defaultValue === field.exportValues;\n            storage.setValue(id, { value });\n            break;\n          }\n          case \"combobox\":\n          case \"listbox\": {\n            const value = field.defaultValue || \"\";\n            storage.setValue(id, { value });\n            break;\n          }\n          default:\n            continue;\n        }\n        const domElement = document.getElementById(id);\n        if (!domElement || !GetElementsByNameSet.has(domElement)) {\n          continue;\n        }\n        domElement.dispatchEvent(new Event(\"resetform\"));\n      }\n\n      if (this.enableScripting) {\n        // Update the values in the sandbox.\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: \"app\",\n            ids: allIds,\n            name: \"ResetForm\",\n          },\n        });\n      }\n\n      return false;\n    };\n  }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable });\n  }\n\n  render() {\n    this.container.className = \"textAnnotation\";\n\n    const image = document.createElement(\"img\");\n    image.style.height = this.container.style.height;\n    image.style.width = this.container.style.width;\n    image.src =\n      this.imageResourcesPath +\n      \"annotation-\" +\n      this.data.name.toLowerCase() +\n      \".svg\";\n    image.alt = \"[{{type}} Annotation]\";\n    image.dataset.l10nId = \"text_annotation_type\";\n    image.dataset.l10nArgs = JSON.stringify({ type: this.data.name });\n\n    if (!this.data.hasPopup) {\n      this._createPopup(image, this.data);\n    }\n\n    this.container.appendChild(image);\n    return this.container;\n  }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n  render() {\n    // Show only the container for unsupported field types.\n    if (this.data.alternativeText) {\n      this.container.title = this.data.alternativeText;\n    }\n\n    return this.container;\n  }\n\n  _getKeyModifier(event) {\n    const { isWin, isMac } = AnnotationElement.platform;\n    return (isWin && event.ctrlKey) || (isMac && event.metaKey);\n  }\n\n  _setEventListener(element, baseName, eventName, valueGetter) {\n    if (baseName.includes(\"mouse\")) {\n      // Mouse events\n      element.addEventListener(baseName, event => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event),\n            shift: event.shiftKey,\n            modifier: this._getKeyModifier(event),\n          },\n        });\n      });\n    } else {\n      // Non mouse event\n      element.addEventListener(baseName, event => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: event.target.checked,\n          },\n        });\n      });\n    }\n  }\n\n  _setEventListeners(element, names, getter) {\n    for (const [baseName, eventName] of names) {\n      if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n        this._setEventListener(element, baseName, eventName, getter);\n      }\n    }\n  }\n\n  _setBackgroundColor(element) {\n    const color = this.data.backgroundColor || null;\n    element.style.backgroundColor =\n      color === null\n        ? \"transparent\"\n        : Util.makeHexColor(color[0], color[1], color[2]);\n  }\n\n  _dispatchEventFromSandbox(actions, jsEvent) {\n    const setColor = (jsName, styleName, event) => {\n      const color = event.detail[jsName];\n      event.target.style[styleName] = ColorConverters[`${color[0]}_HTML`](\n        color.slice(1)\n      );\n    };\n\n    const commonActions = {\n      display: event => {\n        const hidden = event.detail.display % 2 === 1;\n        event.target.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          hidden,\n          print: event.detail.display === 0 || event.detail.display === 3,\n        });\n      },\n      print: event => {\n        this.annotationStorage.setValue(this.data.id, {\n          print: event.detail.print,\n        });\n      },\n      hidden: event => {\n        event.target.style.visibility = event.detail.hidden\n          ? \"hidden\"\n          : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          hidden: event.detail.hidden,\n        });\n      },\n      focus: event => {\n        setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n      },\n      userName: event => {\n        // tooltip\n        event.target.title = event.detail.userName;\n      },\n      readonly: event => {\n        if (event.detail.readonly) {\n          event.target.setAttribute(\"readonly\", \"\");\n        } else {\n          event.target.removeAttribute(\"readonly\");\n        }\n      },\n      required: event => {\n        if (event.detail.required) {\n          event.target.setAttribute(\"required\", \"\");\n        } else {\n          event.target.removeAttribute(\"required\");\n        }\n      },\n      bgColor: event => {\n        setColor(\"bgColor\", \"backgroundColor\", event);\n      },\n      fillColor: event => {\n        setColor(\"fillColor\", \"backgroundColor\", event);\n      },\n      fgColor: event => {\n        setColor(\"fgColor\", \"color\", event);\n      },\n      textColor: event => {\n        setColor(\"textColor\", \"color\", event);\n      },\n      borderColor: event => {\n        setColor(\"borderColor\", \"borderColor\", event);\n      },\n      strokeColor: event => {\n        setColor(\"strokeColor\", \"borderColor\", event);\n      },\n    };\n\n    for (const name of Object.keys(jsEvent.detail)) {\n      const action = actions[name] || commonActions[name];\n      if (action) {\n        action(jsEvent);\n      }\n    }\n  }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    const isRenderable =\n      parameters.renderForms ||\n      (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n    super(parameters, { isRenderable });\n  }\n\n  setPropertyOnSiblings(base, key, value, keyInStorage) {\n    const storage = this.annotationStorage;\n    for (const element of this._getElementsByName(\n      base.name,\n      /* skipId = */ base.id\n    )) {\n      if (element.domElement) {\n        element.domElement[key] = value;\n      }\n      storage.setValue(element.id, { [keyInStorage]: value });\n    }\n  }\n\n  render() {\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    this.container.className = \"textWidgetAnnotation\";\n\n    let element = null;\n    if (this.renderForms) {\n      // NOTE: We cannot set the values using `element.value` below, since it\n      //       prevents the AnnotationLayer rasterizer in `test/driver.js`\n      //       from parsing the elements correctly for the reference tests.\n      const storedData = storage.getValue(id, {\n        value: this.data.fieldValue,\n        valueAsString: this.data.fieldValue,\n      });\n      const textContent = storedData.valueAsString || storedData.value || \"\";\n      const elementData = {\n        userValue: null,\n        formattedValue: null,\n        beforeInputSelectionRange: null,\n        beforeInputValue: null,\n      };\n\n      if (this.data.multiLine) {\n        element = document.createElement(\"textarea\");\n        element.textContent = textContent;\n      } else {\n        element = document.createElement(\"input\");\n        element.type = \"text\";\n        element.setAttribute(\"value\", textContent);\n      }\n      GetElementsByNameSet.add(element);\n      element.disabled = this.data.readOnly;\n      element.name = this.data.fieldName;\n      element.tabIndex = DEFAULT_TAB_INDEX;\n\n      elementData.userValue = textContent;\n      element.setAttribute(\"id\", id);\n\n      element.addEventListener(\"input\", event => {\n        storage.setValue(id, { value: event.target.value });\n        this.setPropertyOnSiblings(\n          element,\n          \"value\",\n          event.target.value,\n          \"value\"\n        );\n      });\n\n      element.addEventListener(\"resetform\", event => {\n        const defaultValue = this.data.defaultFieldValue || \"\";\n        element.value = elementData.userValue = defaultValue;\n        delete elementData.formattedValue;\n      });\n\n      let blurListener = event => {\n        if (elementData.formattedValue) {\n          event.target.value = elementData.formattedValue;\n        }\n        // Reset the cursor position to the start of the field (issue 12359).\n        event.target.scrollLeft = 0;\n        elementData.beforeInputSelectionRange = null;\n      };\n\n      if (this.enableScripting && this.hasJSActions) {\n        element.addEventListener(\"focus\", event => {\n          if (elementData.userValue) {\n            event.target.value = elementData.userValue;\n          }\n        });\n\n        element.addEventListener(\"updatefromsandbox\", jsEvent => {\n          const actions = {\n            value(event) {\n              elementData.userValue = event.detail.value || \"\";\n              storage.setValue(id, { value: elementData.userValue.toString() });\n              if (!elementData.formattedValue) {\n                event.target.value = elementData.userValue;\n              }\n            },\n            valueAsString(event) {\n              elementData.formattedValue = event.detail.valueAsString || \"\";\n              if (event.target !== document.activeElement) {\n                // Input hasn't the focus so display formatted string\n                event.target.value = elementData.formattedValue;\n              }\n              storage.setValue(id, {\n                formattedValue: elementData.formattedValue,\n              });\n            },\n            selRange(event) {\n              const [selStart, selEnd] = event.detail.selRange;\n              if (selStart >= 0 && selEnd < event.target.value.length) {\n                event.target.setSelectionRange(selStart, selEnd);\n              }\n            },\n          };\n          this._dispatchEventFromSandbox(actions, jsEvent);\n        });\n\n        // Even if the field hasn't any actions\n        // leaving it can still trigger some actions with Calculate\n        element.addEventListener(\"keydown\", event => {\n          elementData.beforeInputValue = event.target.value;\n          // if the key is one of Escape, Enter or Tab\n          // then the data are committed\n          let commitKey = -1;\n          if (event.key === \"Escape\") {\n            commitKey = 0;\n          } else if (event.key === \"Enter\") {\n            commitKey = 2;\n          } else if (event.key === \"Tab\") {\n            commitKey = 3;\n          }\n          if (commitKey === -1) {\n            return;\n          }\n          // Save the entered value\n          elementData.userValue = event.target.value;\n          this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n            source: this,\n            detail: {\n              id,\n              name: \"Keystroke\",\n              value: event.target.value,\n              willCommit: true,\n              commitKey,\n              selStart: event.target.selectionStart,\n              selEnd: event.target.selectionEnd,\n            },\n          });\n        });\n        const _blurListener = blurListener;\n        blurListener = null;\n        element.addEventListener(\"blur\", event => {\n          if (this._mouseState.isDown) {\n            // Focus out using the mouse: data are committed\n            elementData.userValue = event.target.value;\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value: event.target.value,\n                willCommit: true,\n                commitKey: 1,\n                selStart: event.target.selectionStart,\n                selEnd: event.target.selectionEnd,\n              },\n            });\n          }\n          _blurListener(event);\n        });\n        element.addEventListener(\"mousedown\", event => {\n          elementData.beforeInputValue = event.target.value;\n          elementData.beforeInputSelectionRange = null;\n        });\n        element.addEventListener(\"keyup\", event => {\n          // keyup is triggered after input\n          if (event.target.selectionStart === event.target.selectionEnd) {\n            elementData.beforeInputSelectionRange = null;\n          }\n        });\n        element.addEventListener(\"select\", event => {\n          elementData.beforeInputSelectionRange = [\n            event.target.selectionStart,\n            event.target.selectionEnd,\n          ];\n        });\n\n        if (this.data.actions?.Keystroke) {\n          // We should use beforeinput but this\n          // event isn't available in Firefox\n          element.addEventListener(\"input\", event => {\n            let selStart = -1;\n            let selEnd = -1;\n            if (elementData.beforeInputSelectionRange) {\n              [selStart, selEnd] = elementData.beforeInputSelectionRange;\n            }\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value: elementData.beforeInputValue,\n                change: event.data,\n                willCommit: false,\n                selStart,\n                selEnd,\n              },\n            });\n          });\n        }\n\n        this._setEventListeners(\n          element,\n          [\n            [\"focus\", \"Focus\"],\n            [\"blur\", \"Blur\"],\n            [\"mousedown\", \"Mouse Down\"],\n            [\"mouseenter\", \"Mouse Enter\"],\n            [\"mouseleave\", \"Mouse Exit\"],\n            [\"mouseup\", \"Mouse Up\"],\n          ],\n          event => event.target.value\n        );\n      }\n\n      if (blurListener) {\n        element.addEventListener(\"blur\", blurListener);\n      }\n\n      if (this.data.maxLen !== null) {\n        element.maxLength = this.data.maxLen;\n      }\n\n      if (this.data.comb) {\n        const fieldWidth = this.data.rect[2] - this.data.rect[0];\n        const combWidth = fieldWidth / this.data.maxLen;\n\n        element.classList.add(\"comb\");\n        element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;\n      }\n    } else {\n      element = document.createElement(\"div\");\n      element.textContent = this.data.fieldValue;\n      element.style.verticalAlign = \"middle\";\n      element.style.display = \"table-cell\";\n    }\n\n    this._setTextStyle(element);\n    this._setBackgroundColor(element);\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n\n  /**\n   * Apply text styles to the text in the element.\n   *\n   * @private\n   * @param {HTMLDivElement} element\n   * @memberof TextWidgetAnnotationElement\n   */\n  _setTextStyle(element) {\n    const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n    const { fontSize, fontColor } = this.data.defaultAppearanceData;\n    const style = element.style;\n\n    // TODO: If the font-size is zero, calculate it based on the height and\n    //       width of the element.\n    // Not setting `style.fontSize` will use the default font-size for now.\n    if (fontSize) {\n      style.fontSize = `${fontSize}px`;\n    }\n\n    style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n    if (this.data.textAlignment !== null) {\n      style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n    }\n  }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: parameters.renderForms });\n  }\n\n  render() {\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.exportValue === data.fieldValue,\n    }).value;\n    if (typeof value === \"string\") {\n      // The value has been changed through js and set in annotationStorage.\n      value = value !== \"Off\";\n      storage.setValue(id, { value });\n    }\n\n    this.container.className = \"buttonWidgetAnnotation checkBox\";\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.disabled = data.readOnly;\n    element.type = \"checkbox\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n    element.setAttribute(\"id\", id);\n    element.setAttribute(\"exportValue\", data.exportValue);\n    element.tabIndex = DEFAULT_TAB_INDEX;\n\n    element.addEventListener(\"change\", event => {\n      const { name, checked } = event.target;\n      for (const checkbox of this._getElementsByName(name, /* skipId = */ id)) {\n        const curChecked = checked && checkbox.exportValue === data.exportValue;\n        if (checkbox.domElement) {\n          checkbox.domElement.checked = curChecked;\n        }\n        storage.setValue(checkbox.id, { value: curChecked });\n      }\n      storage.setValue(id, { value: checked });\n    });\n\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue || \"Off\";\n      event.target.checked = defaultValue === data.exportValue;\n    });\n\n    if (this.enableScripting && this.hasJSActions) {\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            event.target.checked = event.detail.value !== \"Off\";\n            storage.setValue(id, { value: event.target.checked });\n          },\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      this._setEventListeners(\n        element,\n        [\n          [\"change\", \"Validate\"],\n          [\"change\", \"Action\"],\n          [\"focus\", \"Focus\"],\n          [\"blur\", \"Blur\"],\n          [\"mousedown\", \"Mouse Down\"],\n          [\"mouseenter\", \"Mouse Enter\"],\n          [\"mouseleave\", \"Mouse Exit\"],\n          [\"mouseup\", \"Mouse Up\"],\n        ],\n        event => event.target.checked\n      );\n    }\n\n    this._setBackgroundColor(element);\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: parameters.renderForms });\n  }\n\n  render() {\n    this.container.className = \"buttonWidgetAnnotation radioButton\";\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.fieldValue === data.buttonValue,\n    }).value;\n    if (typeof value === \"string\") {\n      // The value has been changed through js and set in annotationStorage.\n      value = value !== data.buttonValue;\n      storage.setValue(id, { value });\n    }\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.disabled = data.readOnly;\n    element.type = \"radio\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n    element.setAttribute(\"id\", id);\n    element.tabIndex = DEFAULT_TAB_INDEX;\n\n    element.addEventListener(\"change\", event => {\n      const { name, checked } = event.target;\n      for (const radio of this._getElementsByName(name, /* skipId = */ id)) {\n        storage.setValue(radio.id, { value: false });\n      }\n      storage.setValue(id, { value: checked });\n    });\n\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue;\n      event.target.checked =\n        defaultValue !== null &&\n        defaultValue !== undefined &&\n        defaultValue === data.buttonValue;\n    });\n\n    if (this.enableScripting && this.hasJSActions) {\n      const pdfButtonValue = data.buttonValue;\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value: event => {\n            const checked = pdfButtonValue === event.detail.value;\n            for (const radio of this._getElementsByName(event.target.name)) {\n              const curChecked = checked && radio.id === id;\n              if (radio.domElement) {\n                radio.domElement.checked = curChecked;\n              }\n              storage.setValue(radio.id, { value: curChecked });\n            }\n          },\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      this._setEventListeners(\n        element,\n        [\n          [\"change\", \"Validate\"],\n          [\"change\", \"Action\"],\n          [\"focus\", \"Focus\"],\n          [\"blur\", \"Blur\"],\n          [\"mousedown\", \"Mouse Down\"],\n          [\"mouseenter\", \"Mouse Enter\"],\n          [\"mouseleave\", \"Mouse Exit\"],\n          [\"mouseup\", \"Mouse Up\"],\n        ],\n        event => event.target.checked\n      );\n    }\n\n    this._setBackgroundColor(element);\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { ignoreBorder: parameters.data.hasAppearance });\n  }\n\n  render() {\n    // The rendering and functionality of a push button widget annotation is\n    // equal to that of a link annotation, but may have more functionality, such\n    // as performing actions on form fields (resetting, submitting, et cetera).\n    const container = super.render();\n    container.className = \"buttonWidgetAnnotation pushButton\";\n\n    if (this.data.alternativeText) {\n      container.title = this.data.alternativeText;\n    }\n\n    return container;\n  }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: parameters.renderForms });\n  }\n\n  render() {\n    this.container.className = \"choiceWidgetAnnotation\";\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    // For printing/saving we currently only support choice widgets with one\n    // option selection. Therefore, listboxes (#12189) and comboboxes (#12224)\n    // are not properly printed/saved yet, so we only store the first item in\n    // the field value array instead of the entire array. Once support for those\n    // two field types is implemented, we should use the same pattern as the\n    // other interactive widgets where the return value of `getValue`\n    // is used and the full array of field values is stored.\n    storage.getValue(id, {\n      value:\n        this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined,\n    });\n\n    let { fontSize } = this.data.defaultAppearanceData;\n    if (!fontSize) {\n      fontSize = 9;\n    }\n    const fontSizeStyle = `calc(${fontSize}px * var(--zoom-factor))`;\n\n    const selectElement = document.createElement(\"select\");\n    GetElementsByNameSet.add(selectElement);\n    selectElement.disabled = this.data.readOnly;\n    selectElement.name = this.data.fieldName;\n    selectElement.setAttribute(\"id\", id);\n    selectElement.tabIndex = DEFAULT_TAB_INDEX;\n\n    selectElement.style.fontSize = `${fontSize}px`;\n\n    if (!this.data.combo) {\n      // List boxes have a size and (optionally) multiple selection.\n      selectElement.size = this.data.options.length;\n      if (this.data.multiSelect) {\n        selectElement.multiple = true;\n      }\n    }\n\n    selectElement.addEventListener(\"resetform\", event => {\n      const defaultValue = this.data.defaultFieldValue;\n      for (const option of selectElement.options) {\n        option.selected = option.value === defaultValue;\n      }\n    });\n\n    // Insert the options into the choice field.\n    for (const option of this.data.options) {\n      const optionElement = document.createElement(\"option\");\n      optionElement.textContent = option.displayValue;\n      optionElement.value = option.exportValue;\n      if (this.data.combo) {\n        optionElement.style.fontSize = fontSizeStyle;\n      }\n      if (this.data.fieldValue.includes(option.exportValue)) {\n        optionElement.setAttribute(\"selected\", true);\n      }\n      selectElement.appendChild(optionElement);\n    }\n\n    const getValue = (event, isExport) => {\n      const name = isExport ? \"value\" : \"textContent\";\n      const options = event.target.options;\n      if (!event.target.multiple) {\n        return options.selectedIndex === -1\n          ? null\n          : options[options.selectedIndex][name];\n      }\n      return Array.prototype.filter\n        .call(options, option => option.selected)\n        .map(option => option[name]);\n    };\n\n    const getItems = event => {\n      const options = event.target.options;\n      return Array.prototype.map.call(options, option => {\n        return { displayValue: option.textContent, exportValue: option.value };\n      });\n    };\n\n    if (this.enableScripting && this.hasJSActions) {\n      selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            const value = event.detail.value;\n            const values = new Set(Array.isArray(value) ? value : [value]);\n            for (const option of selectElement.options) {\n              option.selected = values.has(option.value);\n            }\n            storage.setValue(id, {\n              value: getValue(event, /* isExport */ true),\n            });\n          },\n          multipleSelection(event) {\n            selectElement.multiple = true;\n          },\n          remove(event) {\n            const options = selectElement.options;\n            const index = event.detail.remove;\n            options[index].selected = false;\n            selectElement.remove(index);\n            if (options.length > 0) {\n              const i = Array.prototype.findIndex.call(\n                options,\n                option => option.selected\n              );\n              if (i === -1) {\n                options[0].selected = true;\n              }\n            }\n            storage.setValue(id, {\n              value: getValue(event, /* isExport */ true),\n              items: getItems(event),\n            });\n          },\n          clear(event) {\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            storage.setValue(id, { value: null, items: [] });\n          },\n          insert(event) {\n            const { index, displayValue, exportValue } = event.detail.insert;\n            const optionElement = document.createElement(\"option\");\n            optionElement.textContent = displayValue;\n            optionElement.value = exportValue;\n            selectElement.insertBefore(\n              optionElement,\n              selectElement.children[index]\n            );\n            storage.setValue(id, {\n              value: getValue(event, /* isExport */ true),\n              items: getItems(event),\n            });\n          },\n          items(event) {\n            const { items } = event.detail;\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            for (const item of items) {\n              const { displayValue, exportValue } = item;\n              const optionElement = document.createElement(\"option\");\n              optionElement.textContent = displayValue;\n              optionElement.value = exportValue;\n              selectElement.appendChild(optionElement);\n            }\n            if (selectElement.options.length > 0) {\n              selectElement.options[0].selected = true;\n            }\n            storage.setValue(id, {\n              value: getValue(event, /* isExport */ true),\n              items: getItems(event),\n            });\n          },\n          indices(event) {\n            const indices = new Set(event.detail.indices);\n            for (const option of event.target.options) {\n              option.selected = indices.has(option.index);\n            }\n            storage.setValue(id, {\n              value: getValue(event, /* isExport */ true),\n            });\n          },\n          editable(event) {\n            event.target.disabled = !event.detail.editable;\n          },\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      selectElement.addEventListener(\"input\", event => {\n        const exportValue = getValue(event, /* isExport */ true);\n        const value = getValue(event, /* isExport */ false);\n        storage.setValue(id, { value: exportValue });\n\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id,\n            name: \"Keystroke\",\n            value,\n            changeEx: exportValue,\n            willCommit: true,\n            commitKey: 1,\n            keyDown: false,\n          },\n        });\n      });\n\n      this._setEventListeners(\n        selectElement,\n        [\n          [\"focus\", \"Focus\"],\n          [\"blur\", \"Blur\"],\n          [\"mousedown\", \"Mouse Down\"],\n          [\"mouseenter\", \"Mouse Enter\"],\n          [\"mouseleave\", \"Mouse Exit\"],\n          [\"mouseup\", \"Mouse Up\"],\n          [\"input\", \"Action\"],\n        ],\n        event => event.target.checked\n      );\n    } else {\n      selectElement.addEventListener(\"input\", function (event) {\n        storage.setValue(id, { value: getValue(event) });\n      });\n    }\n\n    this._setBackgroundColor(selectElement);\n\n    this.container.appendChild(selectElement);\n    return this.container;\n  }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable });\n  }\n\n  render() {\n    // Do not render popup annotations for parent elements with these types as\n    // they create the popups themselves (because of custom trigger divs).\n    const IGNORE_TYPES = [\n      \"Line\",\n      \"Square\",\n      \"Circle\",\n      \"PolyLine\",\n      \"Polygon\",\n      \"Ink\",\n    ];\n\n    this.container.className = \"popupAnnotation\";\n\n    if (IGNORE_TYPES.includes(this.data.parentType)) {\n      return this.container;\n    }\n\n    const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n    const parentElements = this.layer.querySelectorAll(selector);\n    if (parentElements.length === 0) {\n      return this.container;\n    }\n\n    const popup = new PopupElement({\n      container: this.container,\n      trigger: Array.from(parentElements),\n      color: this.data.color,\n      titleObj: this.data.titleObj,\n      modificationDate: this.data.modificationDate,\n      contentsObj: this.data.contentsObj,\n      richText: this.data.richText,\n    });\n\n    // Position the popup next to the parent annotation's container.\n    // PDF viewers ignore a popup annotation's rectangle.\n    const page = this.page;\n    const rect = Util.normalizeRect([\n      this.data.parentRect[0],\n      page.view[3] - this.data.parentRect[1] + page.view[1],\n      this.data.parentRect[2],\n      page.view[3] - this.data.parentRect[3] + page.view[1],\n    ]);\n    const popupLeft =\n      rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n    const popupTop = rect[1];\n\n    this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`;\n    this.container.style.left = `${popupLeft}px`;\n    this.container.style.top = `${popupTop}px`;\n\n    this.container.appendChild(popup.render());\n    return this.container;\n  }\n}\n\nclass PopupElement {\n  constructor(parameters) {\n    this.container = parameters.container;\n    this.trigger = parameters.trigger;\n    this.color = parameters.color;\n    this.titleObj = parameters.titleObj;\n    this.modificationDate = parameters.modificationDate;\n    this.contentsObj = parameters.contentsObj;\n    this.richText = parameters.richText;\n    this.hideWrapper = parameters.hideWrapper || false;\n\n    this.pinned = false;\n  }\n\n  render() {\n    const BACKGROUND_ENLIGHT = 0.7;\n\n    const wrapper = document.createElement(\"div\");\n    wrapper.className = \"popupWrapper\";\n\n    // For Popup annotations we hide the entire section because it contains\n    // only the popup. However, for Text annotations without a separate Popup\n    // annotation, we cannot hide the entire container as the image would\n    // disappear too. In that special case, hiding the wrapper suffices.\n    this.hideElement = this.hideWrapper ? wrapper : this.container;\n    this.hideElement.hidden = true;\n\n    const popup = document.createElement(\"div\");\n    popup.className = \"popup\";\n\n    const color = this.color;\n    if (color) {\n      // Enlighten the color.\n      const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n      const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n      const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n      popup.style.backgroundColor = Util.makeHexColor(r | 0, g | 0, b | 0);\n    }\n\n    const title = document.createElement(\"h1\");\n    title.dir = this.titleObj.dir;\n    title.textContent = this.titleObj.str;\n    popup.appendChild(title);\n\n    // The modification date is shown in the popup instead of the creation\n    // date if it is available and can be parsed correctly, which is\n    // consistent with other viewers such as Adobe Acrobat.\n    const dateObject = PDFDateString.toDateObject(this.modificationDate);\n    if (dateObject) {\n      const modificationDate = document.createElement(\"span\");\n      modificationDate.className = \"popupDate\";\n      modificationDate.textContent = \"{{date}}, {{time}}\";\n      modificationDate.dataset.l10nId = \"annotation_date_string\";\n      modificationDate.dataset.l10nArgs = JSON.stringify({\n        date: dateObject.toLocaleDateString(),\n        time: dateObject.toLocaleTimeString(),\n      });\n      popup.appendChild(modificationDate);\n    }\n\n    if (\n      this.richText?.str &&\n      (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)\n    ) {\n      XfaLayer.render({\n        xfaHtml: this.richText.html,\n        intent: \"richText\",\n        div: popup,\n      });\n      popup.lastChild.className = \"richText popupContent\";\n    } else {\n      const contents = this._formatContents(this.contentsObj);\n      popup.appendChild(contents);\n    }\n\n    if (!Array.isArray(this.trigger)) {\n      this.trigger = [this.trigger];\n    }\n\n    // Attach the event listeners to the trigger element.\n    for (const element of this.trigger) {\n      element.addEventListener(\"click\", this._toggle.bind(this));\n      element.addEventListener(\"mouseover\", this._show.bind(this, false));\n      element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n    }\n    popup.addEventListener(\"click\", this._hide.bind(this, true));\n\n    wrapper.appendChild(popup);\n    return wrapper;\n  }\n\n  /**\n   * Format the contents of the popup by adding newlines where necessary.\n   *\n   * @private\n   * @param {Object<string, string>} contentsObj\n   * @memberof PopupElement\n   * @returns {HTMLParagraphElement}\n   */\n  _formatContents({ str, dir }) {\n    const p = document.createElement(\"p\");\n    p.className = \"popupContent\";\n    p.dir = dir;\n    const lines = str.split(/(?:\\r\\n?|\\n)/);\n    for (let i = 0, ii = lines.length; i < ii; ++i) {\n      const line = lines[i];\n      p.appendChild(document.createTextNode(line));\n      if (i < ii - 1) {\n        p.appendChild(document.createElement(\"br\"));\n      }\n    }\n    return p;\n  }\n\n  /**\n   * Toggle the visibility of the popup.\n   *\n   * @private\n   * @memberof PopupElement\n   */\n  _toggle() {\n    if (this.pinned) {\n      this._hide(true);\n    } else {\n      this._show(true);\n    }\n  }\n\n  /**\n   * Show the popup.\n   *\n   * @private\n   * @param {boolean} pin\n   * @memberof PopupElement\n   */\n  _show(pin = false) {\n    if (pin) {\n      this.pinned = true;\n    }\n    if (this.hideElement.hidden) {\n      this.hideElement.hidden = false;\n      this.container.style.zIndex += 1;\n    }\n  }\n\n  /**\n   * Hide the popup.\n   *\n   * @private\n   * @param {boolean} unpin\n   * @memberof PopupElement\n   */\n  _hide(unpin = true) {\n    if (unpin) {\n      this.pinned = false;\n    }\n    if (!this.hideElement.hidden && !this.pinned) {\n      this.hideElement.hidden = true;\n      this.container.style.zIndex -= 1;\n    }\n  }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.className = \"freeTextAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.className = \"lineAnnotation\";\n\n    // Create an invisible line with the same starting and ending coordinates\n    // that acts as the trigger for the popup. Only the line itself should\n    // trigger the popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // PDF coordinates are calculated from a bottom left origin, so transform\n    // the line coordinates to a top left origin for the SVG element.\n    const line = this.svgFactory.createElement(\"svg:line\");\n    line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n    line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n    line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n    line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    line.setAttribute(\"stroke\", \"transparent\");\n    line.setAttribute(\"fill\", \"transparent\");\n\n    svg.appendChild(line);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the line instead\n    // of to the entire container (which is the default).\n    this._createPopup(line, data);\n\n    return this.container;\n  }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.className = \"squareAnnotation\";\n\n    // Create an invisible square with the same rectangle that acts as the\n    // trigger for the popup. Only the square itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // The browser draws half of the borders inside the square and half of\n    // the borders outside the square by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    const borderWidth = data.borderStyle.width;\n    const square = this.svgFactory.createElement(\"svg:rect\");\n    square.setAttribute(\"x\", borderWidth / 2);\n    square.setAttribute(\"y\", borderWidth / 2);\n    square.setAttribute(\"width\", width - borderWidth);\n    square.setAttribute(\"height\", height - borderWidth);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    square.setAttribute(\"stroke-width\", borderWidth || 1);\n    square.setAttribute(\"stroke\", \"transparent\");\n    square.setAttribute(\"fill\", \"transparent\");\n\n    svg.appendChild(square);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the square instead\n    // of to the entire container (which is the default).\n    this._createPopup(square, data);\n\n    return this.container;\n  }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.className = \"circleAnnotation\";\n\n    // Create an invisible circle with the same ellipse that acts as the\n    // trigger for the popup. Only the circle itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // The browser draws half of the borders inside the circle and half of\n    // the borders outside the circle by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    const borderWidth = data.borderStyle.width;\n    const circle = this.svgFactory.createElement(\"svg:ellipse\");\n    circle.setAttribute(\"cx\", width / 2);\n    circle.setAttribute(\"cy\", height / 2);\n    circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n    circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    circle.setAttribute(\"stroke-width\", borderWidth || 1);\n    circle.setAttribute(\"stroke\", \"transparent\");\n    circle.setAttribute(\"fill\", \"transparent\");\n\n    svg.appendChild(circle);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the circle instead\n    // of to the entire container (which is the default).\n    this._createPopup(circle, data);\n\n    return this.container;\n  }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n\n    this.containerClassName = \"polylineAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  render() {\n    this.container.className = this.containerClassName;\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup. Only the polyline itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    // Convert the vertices array to a single points string that the SVG\n    // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n    // calculated from a bottom left origin, so transform the polyline\n    // coordinates to a top left origin for the SVG element.\n    let points = [];\n    for (const coordinate of data.vertices) {\n      const x = coordinate.x - data.rect[0];\n      const y = data.rect[3] - coordinate.y;\n      points.push(x + \",\" + y);\n    }\n    points = points.join(\" \");\n\n    const polyline = this.svgFactory.createElement(this.svgElementName);\n    polyline.setAttribute(\"points\", points);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    polyline.setAttribute(\"stroke\", \"transparent\");\n    polyline.setAttribute(\"fill\", \"transparent\");\n\n    svg.appendChild(polyline);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the polyline\n    // instead of to the entire container (which is the default).\n    this._createPopup(polyline, data);\n\n    return this.container;\n  }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n  constructor(parameters) {\n    // Polygons are specific forms of polylines, so reuse their logic.\n    super(parameters);\n\n    this.containerClassName = \"polygonAnnotation\";\n    this.svgElementName = \"svg:polygon\";\n  }\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.className = \"caretAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n\n    this.containerClassName = \"inkAnnotation\";\n\n    // Use the polyline SVG element since it allows us to use coordinates\n    // directly and to draw both straight lines and curves.\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  render() {\n    this.container.className = this.containerClassName;\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup.\n    const data = this.data;\n    const width = data.rect[2] - data.rect[0];\n    const height = data.rect[3] - data.rect[1];\n    const svg = this.svgFactory.create(width, height);\n\n    for (const inkList of data.inkLists) {\n      // Convert the ink list to a single points string that the SVG\n      // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n      // calculated from a bottom left origin, so transform the polyline\n      // coordinates to a top left origin for the SVG element.\n      let points = [];\n      for (const coordinate of inkList) {\n        const x = coordinate.x - data.rect[0];\n        const y = data.rect[3] - coordinate.y;\n        points.push(`${x},${y}`);\n      }\n      points = points.join(\" \");\n\n      const polyline = this.svgFactory.createElement(this.svgElementName);\n      polyline.setAttribute(\"points\", points);\n      // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n      // won't be possible to open/close the popup (note e.g. issue 11122).\n      polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n      polyline.setAttribute(\"stroke\", \"transparent\");\n      polyline.setAttribute(\"fill\", \"transparent\");\n\n      // Create the popup ourselves so that we can bind it to the polyline\n      // instead of to the entire container (which is the default).\n      this._createPopup(polyline, data);\n\n      svg.appendChild(polyline);\n    }\n\n    this.container.append(svg);\n    return this.container;\n  }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"highlightAnnotation\");\n    }\n\n    this.container.className = \"highlightAnnotation\";\n    return this.container;\n  }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"underlineAnnotation\");\n    }\n\n    this.container.className = \"underlineAnnotation\";\n    return this.container;\n  }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"squigglyAnnotation\");\n    }\n\n    this.container.className = \"squigglyAnnotation\";\n    return this.container;\n  }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, {\n      isRenderable,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n\n    if (this.quadrilaterals) {\n      return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n    }\n\n    this.container.className = \"strikeoutAnnotation\";\n    return this.container;\n  }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const isRenderable = !!(\n      parameters.data.hasPopup ||\n      parameters.data.titleObj?.str ||\n      parameters.data.contentsObj?.str ||\n      parameters.data.richText?.str\n    );\n    super(parameters, { isRenderable, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.className = \"stampAnnotation\";\n\n    if (!this.data.hasPopup) {\n      this._createPopup(null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true });\n\n    const { filename, content } = this.data.file;\n    this.filename = getFilenameFromUrl(filename);\n    this.content = content;\n\n    this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n      source: this,\n      id: stringToPDFString(filename),\n      filename,\n      content,\n    });\n  }\n\n  render() {\n    this.container.className = \"fileAttachmentAnnotation\";\n\n    const trigger = document.createElement(\"div\");\n    trigger.style.height = this.container.style.height;\n    trigger.style.width = this.container.style.width;\n    trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n    if (\n      !this.data.hasPopup &&\n      (this.data.titleObj?.str ||\n        this.data.contentsObj?.str ||\n        this.data.richText)\n    ) {\n      this._createPopup(trigger, this.data);\n    }\n\n    this.container.appendChild(trigger);\n    return this.container;\n  }\n\n  /**\n   * Download the file attachment associated with this annotation.\n   *\n   * @private\n   * @memberof FileAttachmentAnnotationElement\n   */\n  _download() {\n    this.downloadManager?.openOrDownloadData(\n      this.container,\n      this.content,\n      this.filename\n    );\n  }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPageProxy} page\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {boolean} [enableScripting] - Enable embedded script execution.\n * @property {boolean} [hasJSActions] - Some fields have JS actions.\n *   The default value is `false`.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n */\n\nclass AnnotationLayer {\n  /**\n   * Render a new annotation layer with all annotation elements.\n   *\n   * @public\n   * @param {AnnotationLayerParameters} parameters\n   * @memberof AnnotationLayer\n   */\n  static render(parameters) {\n    const sortedAnnotations = [],\n      popupAnnotations = [];\n    // Ensure that Popup annotations are handled last, since they're dependant\n    // upon the parent annotation having already been rendered (please refer to\n    // the `PopupAnnotationElement.render` method); fixes issue 11362.\n    for (const data of parameters.annotations) {\n      if (!data) {\n        continue;\n      }\n      if (data.annotationType === AnnotationType.POPUP) {\n        popupAnnotations.push(data);\n        continue;\n      }\n      sortedAnnotations.push(data);\n    }\n    if (popupAnnotations.length) {\n      sortedAnnotations.push(...popupAnnotations);\n    }\n\n    const div = parameters.div;\n\n    for (const data of sortedAnnotations) {\n      const element = AnnotationElementFactory.create({\n        data,\n        layer: div,\n        page: parameters.page,\n        viewport: parameters.viewport,\n        linkService: parameters.linkService,\n        downloadManager: parameters.downloadManager,\n        imageResourcesPath: parameters.imageResourcesPath || \"\",\n        renderForms: parameters.renderForms !== false,\n        svgFactory: new DOMSVGFactory(),\n        annotationStorage:\n          parameters.annotationStorage || new AnnotationStorage(),\n        enableScripting: parameters.enableScripting,\n        hasJSActions: parameters.hasJSActions,\n        fieldObjects: parameters.fieldObjects,\n        mouseState: parameters.mouseState || { isDown: false },\n      });\n      if (element.isRenderable) {\n        const rendered = element.render();\n        if (data.hidden) {\n          rendered.style.visibility = \"hidden\";\n        }\n        if (Array.isArray(rendered)) {\n          for (const renderedElement of rendered) {\n            div.appendChild(renderedElement);\n          }\n        } else {\n          if (element instanceof PopupAnnotationElement) {\n            // Popup annotation elements should not be on top of other\n            // annotation elements to prevent interfering with mouse events.\n            div.prepend(rendered);\n          } else {\n            div.appendChild(rendered);\n          }\n        }\n      }\n    }\n\n    this.#setAnnotationCanvasMap(div, parameters.annotationCanvasMap);\n  }\n\n  /**\n   * Update the annotation elements on existing annotation layer.\n   *\n   * @public\n   * @param {AnnotationLayerParameters} parameters\n   * @memberof AnnotationLayer\n   */\n  static update(parameters) {\n    const { page, viewport, annotations, annotationCanvasMap, div } =\n      parameters;\n    const transform = viewport.transform;\n    const matrix = `matrix(${transform.join(\",\")})`;\n\n    let scale, ownMatrix;\n    for (const data of annotations) {\n      const elements = div.querySelectorAll(\n        `[data-annotation-id=\"${data.id}\"]`\n      );\n      if (elements) {\n        for (const element of elements) {\n          if (data.hasOwnCanvas) {\n            const rect = Util.normalizeRect([\n              data.rect[0],\n              page.view[3] - data.rect[1] + page.view[1],\n              data.rect[2],\n              page.view[3] - data.rect[3] + page.view[1],\n            ]);\n\n            if (!ownMatrix) {\n              // When an annotation has its own canvas, then\n              // the scale has been already applied to the canvas,\n              // so we musn't scale it twice.\n              scale = Math.abs(transform[0] || transform[1]);\n              const ownTransform = transform.slice();\n              for (let i = 0; i < 4; i++) {\n                ownTransform[i] = Math.sign(ownTransform[i]);\n              }\n              ownMatrix = `matrix(${ownTransform.join(\",\")})`;\n            }\n\n            const left = rect[0] * scale;\n            const top = rect[1] * scale;\n            element.style.left = `${left}px`;\n            element.style.top = `${top}px`;\n            element.style.transformOrigin = `${-left}px ${-top}px`;\n            element.style.transform = ownMatrix;\n          } else {\n            element.style.transform = matrix;\n          }\n        }\n      }\n    }\n\n    this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n    div.hidden = false;\n  }\n\n  static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n    if (!annotationCanvasMap) {\n      return;\n    }\n    for (const [id, canvas] of annotationCanvasMap) {\n      const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n      if (!element) {\n        continue;\n      }\n\n      const { firstChild } = element;\n      if (firstChild.nodeName === \"CANVAS\") {\n        element.replaceChild(canvas, firstChild);\n      } else {\n        element.insertBefore(canvas, firstChild);\n      }\n    }\n    annotationCanvasMap.clear();\n  }\n}\n\nexport { AnnotationLayer };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * PLEASE NOTE: This file is currently imported in both the `../display/` and\n *              `../scripting_api/` folders, hence be EXTREMELY careful about\n *              introducing any dependencies here since that can lead to an\n *              unexpected/unnecessary size increase of the *built* files.\n */\n\nfunction makeColorComp(n) {\n  return Math.floor(Math.max(0, Math.min(1, n)) * 255)\n    .toString(16)\n    .padStart(2, \"0\");\n}\n\n// PDF specifications section 10.3\nclass ColorConverters {\n  static CMYK_G([c, y, m, k]) {\n    return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n  }\n\n  static G_CMYK([g]) {\n    return [\"CMYK\", 0, 0, 0, 1 - g];\n  }\n\n  static G_RGB([g]) {\n    return [\"RGB\", g, g, g];\n  }\n\n  static G_HTML([g]) {\n    const G = makeColorComp(g);\n    return `#${G}${G}${G}`;\n  }\n\n  static RGB_G([r, g, b]) {\n    return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n  }\n\n  static RGB_HTML([r, g, b]) {\n    const R = makeColorComp(r);\n    const G = makeColorComp(g);\n    const B = makeColorComp(b);\n    return `#${R}${G}${B}`;\n  }\n\n  static T_HTML() {\n    return \"#00000000\";\n  }\n\n  static CMYK_RGB([c, y, m, k]) {\n    return [\n      \"RGB\",\n      1 - Math.min(1, c + k),\n      1 - Math.min(1, m + k),\n      1 - Math.min(1, y + k),\n    ];\n  }\n\n  static CMYK_HTML(components) {\n    return this.RGB_HTML(this.CMYK_RGB(components));\n  }\n\n  static RGB_CMYK([r, g, b]) {\n    const c = 1 - r;\n    const m = 1 - g;\n    const y = 1 - b;\n    const k = Math.min(c, m, y);\n    return [\"CMYK\", c, m, y, k];\n  }\n}\n\nexport { ColorConverters };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { warn } from \"../shared/util.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\n/**\n * @typedef {Object} XfaLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Object} xfaHtml\n * @property {AnnotationStorage} [annotationStorage]\n * @property {IPDFLinkService} linkService\n * @property {string} [intent] - (default value is 'display').\n */\n\nclass XfaLayer {\n  static setupStorage(html, id, element, storage, intent) {\n    const storedData = storage.getValue(id, { value: null });\n    switch (element.name) {\n      case \"textarea\":\n        if (storedData.value !== null) {\n          html.textContent = storedData.value;\n        }\n        if (intent === \"print\") {\n          break;\n        }\n        html.addEventListener(\"input\", event => {\n          storage.setValue(id, { value: event.target.value });\n        });\n        break;\n      case \"input\":\n        if (\n          element.attributes.type === \"radio\" ||\n          element.attributes.type === \"checkbox\"\n        ) {\n          if (storedData.value === element.attributes.xfaOn) {\n            html.setAttribute(\"checked\", true);\n          } else if (storedData.value === element.attributes.xfaOff) {\n            // The checked attribute may have been set when opening the file,\n            // unset through the UI and we're here because of printing.\n            html.removeAttribute(\"checked\");\n          }\n          if (intent === \"print\") {\n            break;\n          }\n          html.addEventListener(\"change\", event => {\n            storage.setValue(id, {\n              value: event.target.checked\n                ? event.target.getAttribute(\"xfaOn\")\n                : event.target.getAttribute(\"xfaOff\"),\n            });\n          });\n        } else {\n          if (storedData.value !== null) {\n            html.setAttribute(\"value\", storedData.value);\n          }\n          if (intent === \"print\") {\n            break;\n          }\n          html.addEventListener(\"input\", event => {\n            storage.setValue(id, { value: event.target.value });\n          });\n        }\n        break;\n      case \"select\":\n        if (storedData.value !== null) {\n          for (const option of element.children) {\n            if (option.attributes.value === storedData.value) {\n              option.attributes.selected = true;\n            }\n          }\n        }\n        html.addEventListener(\"input\", event => {\n          const options = event.target.options;\n          const value =\n            options.selectedIndex === -1\n              ? \"\"\n              : options[options.selectedIndex].value;\n          storage.setValue(id, { value });\n        });\n        break;\n    }\n  }\n\n  static setAttributes({ html, element, storage = null, intent, linkService }) {\n    const { attributes } = element;\n    const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n    if (attributes.type === \"radio\") {\n      // Avoid to have a radio group when printing with the same as one\n      // already displayed.\n      attributes.name = `${attributes.name}-${intent}`;\n    }\n    for (const [key, value] of Object.entries(attributes)) {\n      // We don't need to add dataId in the html object but it can\n      // be useful to know its value when writing printing tests:\n      // in this case, don't skip dataId to have its value.\n      if (value === null || value === undefined || key === \"dataId\") {\n        continue;\n      }\n\n      if (key !== \"style\") {\n        if (key === \"textContent\") {\n          html.textContent = value;\n        } else if (key === \"class\") {\n          if (value.length) {\n            html.setAttribute(key, value.join(\" \"));\n          }\n        } else {\n          if (isHTMLAnchorElement && (key === \"href\" || key === \"newWindow\")) {\n            continue; // Handled below.\n          }\n          html.setAttribute(key, value);\n        }\n      } else {\n        Object.assign(html.style, value);\n      }\n    }\n\n    if (isHTMLAnchorElement) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n        !linkService.addLinkAttributes\n      ) {\n        warn(\n          \"XfaLayer.setAttribute - missing `addLinkAttributes`-method on the `linkService`-instance.\"\n        );\n      }\n      linkService.addLinkAttributes?.(\n        html,\n        attributes.href,\n        attributes.newWindow\n      );\n    }\n\n    // Set the value after the others to be sure overwrite\n    // any other values.\n    if (storage && attributes.dataId) {\n      this.setupStorage(html, attributes.dataId, element, storage);\n    }\n  }\n\n  /**\n   * Render the XFA layer.\n   *\n   * @param {XfaLayerParameters} parameters\n   */\n  static render(parameters) {\n    const storage = parameters.annotationStorage;\n    const linkService = parameters.linkService;\n    const root = parameters.xfaHtml;\n    const intent = parameters.intent || \"display\";\n    const rootHtml = document.createElement(root.name);\n    if (root.attributes) {\n      this.setAttributes({\n        html: rootHtml,\n        element: root,\n        intent,\n        linkService,\n      });\n    }\n    const stack = [[root, -1, rootHtml]];\n\n    const rootDiv = parameters.div;\n    rootDiv.appendChild(rootHtml);\n\n    if (parameters.viewport) {\n      const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n      rootDiv.style.transform = transform;\n    }\n\n    // Set defaults.\n    if (intent !== \"richText\") {\n      rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n    }\n\n    // Text nodes used for the text highlighter.\n    const textDivs = [];\n\n    while (stack.length > 0) {\n      const [parent, i, html] = stack[stack.length - 1];\n      if (i + 1 === parent.children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = parent.children[++stack[stack.length - 1][1]];\n      if (child === null) {\n        continue;\n      }\n\n      const { name } = child;\n      if (name === \"#text\") {\n        const node = document.createTextNode(child.value);\n        textDivs.push(node);\n        html.appendChild(node);\n        continue;\n      }\n\n      let childHtml;\n      if (child?.attributes?.xmlns) {\n        childHtml = document.createElementNS(child.attributes.xmlns, name);\n      } else {\n        childHtml = document.createElement(name);\n      }\n\n      html.appendChild(childHtml);\n      if (child.attributes) {\n        this.setAttributes({\n          html: childHtml,\n          element: child,\n          storage,\n          intent,\n          linkService,\n        });\n      }\n\n      if (child.children && child.children.length > 0) {\n        stack.push([child, -1, childHtml]);\n      } else if (child.value) {\n        const node = document.createTextNode(child.value);\n        if (XfaText.shouldBuildText(name)) {\n          textDivs.push(node);\n        }\n        childHtml.appendChild(node);\n      }\n    }\n\n    /**\n     * TODO: re-enable that stuff once we've JS implementation.\n     * See https://bugzilla.mozilla.org/show_bug.cgi?id=1719465.\n     *\n     * for (const el of rootDiv.querySelectorAll(\n     * \".xfaDisabled input, .xfaDisabled textarea\"\n     * )) {\n     * el.setAttribute(\"disabled\", true);\n     * }\n     * for (const el of rootDiv.querySelectorAll(\n     * \".xfaReadOnly input, .xfaReadOnly textarea\"\n     * )) {\n     * el.setAttribute(\"readOnly\", true);\n     * }\n     */\n\n    for (const el of rootDiv.querySelectorAll(\n      \".xfaNonInteractive input, .xfaNonInteractive textarea\"\n    )) {\n      el.setAttribute(\"readOnly\", true);\n    }\n\n    return {\n      textDivs,\n    };\n  }\n\n  /**\n   * Update the XFA layer.\n   *\n   * @param {XfaLayerParameters} parameters\n   */\n  static update(parameters) {\n    const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n    parameters.div.style.transform = transform;\n    parameters.div.hidden = false;\n  }\n}\n\nexport { XfaLayer };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  createPromiseCapability,\n  Util,\n} from \"../shared/util.js\";\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {import(\"./api\").TextContent} [textContent] - Text content to\n *   render (the object is returned by the page's `getTextContent` method).\n * @property {ReadableStream} [textContentStream] - Text content stream to\n *   render (the stream is returned by the page's `streamTextContent` method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {import(\"./display_utils\").PageViewport} viewport - The target\n *   viewport to properly layout the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that are correspond\n *   to the text items of the textContent input. This is output and shall be\n *   initially be set to empty array.\n * @property {Array<string>} [textContentItemsStr] - Strings that correspond to\n *    the `str` property of the text items of textContent input. This is output\n *   and shall be initially be set to empty array.\n * @property {number} [timeout] - Delay in milliseconds before rendering of the\n *   text runs occurs.\n * @property {boolean} [enhanceTextSelection] - Whether to turn on the text\n *   selection enhancement.\n */\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n  const cachedAscent = ascentCache.get(fontFamily);\n  if (cachedAscent) {\n    return cachedAscent;\n  }\n\n  ctx.save();\n  ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n  const metrics = ctx.measureText(\"\");\n\n  // Both properties aren't available by default in Firefox.\n  let ascent = metrics.fontBoundingBoxAscent;\n  let descent = Math.abs(metrics.fontBoundingBoxDescent);\n  if (ascent) {\n    ctx.restore();\n    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n    return ratio;\n  }\n\n  // Try basic heuristic to guess ascent/descent.\n  // Draw a g with baseline at 0,0 and then get the line\n  // number where a pixel has non-null red component (starting\n  // from bottom).\n  ctx.strokeStyle = \"red\";\n  ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n  ctx.strokeText(\"g\", 0, 0);\n  let pixels = ctx.getImageData(\n    0,\n    0,\n    DEFAULT_FONT_SIZE,\n    DEFAULT_FONT_SIZE\n  ).data;\n  descent = 0;\n  for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n    if (pixels[i] > 0) {\n      descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n      break;\n    }\n  }\n\n  // Draw an A with baseline at 0,DEFAULT_FONT_SIZE and then get the line\n  // number where a pixel has non-null red component (starting\n  // from top).\n  ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n  ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n  pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n  ascent = 0;\n  for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n    if (pixels[i] > 0) {\n      ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n      break;\n    }\n  }\n\n  ctx.restore();\n\n  if (ascent) {\n    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n    return ratio;\n  }\n\n  ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n  return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n  // Initialize all used properties to keep the caches monomorphic.\n  const textDiv = document.createElement(\"span\");\n  const textDivProperties = task._enhanceTextSelection\n    ? {\n        angle: 0,\n        canvasWidth: 0,\n        hasText: geom.str !== \"\",\n        hasEOL: geom.hasEOL,\n        originalTransform: null,\n        paddingBottom: 0,\n        paddingLeft: 0,\n        paddingRight: 0,\n        paddingTop: 0,\n        scale: 1,\n      }\n    : {\n        angle: 0,\n        canvasWidth: 0,\n        hasText: geom.str !== \"\",\n        hasEOL: geom.hasEOL,\n      };\n\n  task._textDivs.push(textDiv);\n\n  const tx = Util.transform(task._viewport.transform, geom.transform);\n  let angle = Math.atan2(tx[1], tx[0]);\n  const style = styles[geom.fontName];\n  if (style.vertical) {\n    angle += Math.PI / 2;\n  }\n  const fontHeight = Math.hypot(tx[2], tx[3]);\n  const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n\n  let left, top;\n  if (angle === 0) {\n    left = tx[4];\n    top = tx[5] - fontAscent;\n  } else {\n    left = tx[4] + fontAscent * Math.sin(angle);\n    top = tx[5] - fontAscent * Math.cos(angle);\n  }\n  // Setting the style properties individually, rather than all at once,\n  // should be OK since the `textDiv` isn't appended to the document yet.\n  textDiv.style.left = `${left}px`;\n  textDiv.style.top = `${top}px`;\n  textDiv.style.fontSize = `${fontHeight}px`;\n  textDiv.style.fontFamily = style.fontFamily;\n\n  // Keeps screen readers from pausing on every new text span.\n  textDiv.setAttribute(\"role\", \"presentation\");\n\n  textDiv.textContent = geom.str;\n  // geom.dir may be 'ttb' for vertical texts.\n  textDiv.dir = geom.dir;\n\n  // `fontName` is only used by the FontInspector, and we only use `dataset`\n  // here to make the font name available in the debugger.\n  if (task._fontInspectorEnabled) {\n    textDiv.dataset.fontName = geom.fontName;\n  }\n  if (angle !== 0) {\n    textDivProperties.angle = angle * (180 / Math.PI);\n  }\n  // We don't bother scaling single-char text divs, because it has very\n  // little effect on text highlighting. This makes scrolling on docs with\n  // lots of such divs a lot faster.\n  let shouldScaleText = false;\n  if (\n    geom.str.length > 1 ||\n    (task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str))\n  ) {\n    shouldScaleText = true;\n  } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n    const absScaleX = Math.abs(geom.transform[0]),\n      absScaleY = Math.abs(geom.transform[3]);\n    // When the horizontal/vertical scaling differs significantly, also scale\n    // even single-char text to improve highlighting (fixes issue11713.pdf).\n    if (\n      absScaleX !== absScaleY &&\n      Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5\n    ) {\n      shouldScaleText = true;\n    }\n  }\n  if (shouldScaleText) {\n    if (style.vertical) {\n      textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n    } else {\n      textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n    }\n  }\n  task._textDivProperties.set(textDiv, textDivProperties);\n  if (task._textContentStream) {\n    task._layoutText(textDiv);\n  }\n\n  if (task._enhanceTextSelection && textDivProperties.hasText) {\n    let angleCos = 1,\n      angleSin = 0;\n    if (angle !== 0) {\n      angleCos = Math.cos(angle);\n      angleSin = Math.sin(angle);\n    }\n    const divWidth =\n      (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n    const divHeight = fontHeight;\n\n    let m, b;\n    if (angle !== 0) {\n      m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n      b = Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n    } else {\n      b = [left, top, left + divWidth, top + divHeight];\n    }\n\n    task._bounds.push({\n      left: b[0],\n      top: b[1],\n      right: b[2],\n      bottom: b[3],\n      div: textDiv,\n      size: [divWidth, divHeight],\n      m,\n    });\n  }\n}\n\nfunction render(task) {\n  if (task._canceled) {\n    return;\n  }\n  const textDivs = task._textDivs;\n  const capability = task._capability;\n  const textDivsLength = textDivs.length;\n\n  // No point in rendering many divs as it would make the browser\n  // unusable even after the divs are rendered.\n  if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n    task._renderingDone = true;\n    capability.resolve();\n    return;\n  }\n\n  if (!task._textContentStream) {\n    for (let i = 0; i < textDivsLength; i++) {\n      task._layoutText(textDivs[i]);\n    }\n  }\n\n  task._renderingDone = true;\n  capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n  let result = 0;\n  for (let i = 0; i < count; i++) {\n    const t = ts[offset++];\n    if (t > 0) {\n      result = result ? Math.min(t, result) : t;\n    }\n  }\n  return result;\n}\n\nfunction expand(task) {\n  const bounds = task._bounds;\n  const viewport = task._viewport;\n\n  const expanded = expandBounds(viewport.width, viewport.height, bounds);\n  for (let i = 0; i < expanded.length; i++) {\n    const div = bounds[i].div;\n    const divProperties = task._textDivProperties.get(div);\n    if (divProperties.angle === 0) {\n      divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n      divProperties.paddingTop = bounds[i].top - expanded[i].top;\n      divProperties.paddingRight = expanded[i].right - bounds[i].right;\n      divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n      task._textDivProperties.set(div, divProperties);\n      continue;\n    }\n    // Box is rotated -- trying to find padding so rotated div will not\n    // exceed its expanded bounds.\n    const e = expanded[i],\n      b = bounds[i];\n    const m = b.m,\n      c = m[0],\n      s = m[1];\n    // Finding intersections with expanded box.\n    const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n    const ts = new Float64Array(64);\n    for (let j = 0, jj = points.length; j < jj; j++) {\n      const t = Util.applyTransform(points[j], m);\n      ts[j + 0] = c && (e.left - t[0]) / c;\n      ts[j + 4] = s && (e.top - t[1]) / s;\n      ts[j + 8] = c && (e.right - t[0]) / c;\n      ts[j + 12] = s && (e.bottom - t[1]) / s;\n\n      ts[j + 16] = s && (e.left - t[0]) / -s;\n      ts[j + 20] = c && (e.top - t[1]) / c;\n      ts[j + 24] = s && (e.right - t[0]) / -s;\n      ts[j + 28] = c && (e.bottom - t[1]) / c;\n\n      ts[j + 32] = c && (e.left - t[0]) / -c;\n      ts[j + 36] = s && (e.top - t[1]) / -s;\n      ts[j + 40] = c && (e.right - t[0]) / -c;\n      ts[j + 44] = s && (e.bottom - t[1]) / -s;\n\n      ts[j + 48] = s && (e.left - t[0]) / s;\n      ts[j + 52] = c && (e.top - t[1]) / -c;\n      ts[j + 56] = s && (e.right - t[0]) / s;\n      ts[j + 60] = c && (e.bottom - t[1]) / -c;\n    }\n    // Not based on math, but to simplify calculations, using cos and sin\n    // absolute values to not exceed the box (it can but insignificantly).\n    const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n    divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n    divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n    divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n    divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n    task._textDivProperties.set(div, divProperties);\n  }\n}\n\nfunction expandBounds(width, height, boxes) {\n  const bounds = boxes.map(function (box, i) {\n    return {\n      x1: box.left,\n      y1: box.top,\n      x2: box.right,\n      y2: box.bottom,\n      index: i,\n      x1New: undefined,\n      x2New: undefined,\n    };\n  });\n  expandBoundsLTR(width, bounds);\n\n  const expanded = new Array(boxes.length);\n  for (const b of bounds) {\n    const i = b.index;\n    expanded[i] = {\n      left: b.x1New,\n      top: 0,\n      right: b.x2New,\n      bottom: 0,\n    };\n  }\n\n  // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n  // array and objects.\n  boxes.map(function (box, i) {\n    const e = expanded[i],\n      b = bounds[i];\n    b.x1 = box.top;\n    b.y1 = width - e.right;\n    b.x2 = box.bottom;\n    b.y2 = width - e.left;\n    b.index = i;\n    b.x1New = undefined;\n    b.x2New = undefined;\n  });\n  expandBoundsLTR(height, bounds);\n\n  for (const b of bounds) {\n    const i = b.index;\n    expanded[i].top = b.x1New;\n    expanded[i].bottom = b.x2New;\n  }\n  return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n  // Sorting by x1 coordinate and walk by the bounds in the same order.\n  bounds.sort(function (a, b) {\n    return a.x1 - b.x1 || a.index - b.index;\n  });\n\n  // First we see on the horizon is a fake boundary.\n  const fakeBoundary = {\n    x1: -Infinity,\n    y1: -Infinity,\n    x2: 0,\n    y2: Infinity,\n    index: -1,\n    x1New: 0,\n    x2New: 0,\n  };\n  const horizon = [\n    {\n      start: -Infinity,\n      end: Infinity,\n      boundary: fakeBoundary,\n    },\n  ];\n\n  for (const boundary of bounds) {\n    // Searching for the affected part of horizon.\n    // TODO red-black tree or simple binary search\n    let i = 0;\n    while (i < horizon.length && horizon[i].end <= boundary.y1) {\n      i++;\n    }\n    let j = horizon.length - 1;\n    while (j >= 0 && horizon[j].start >= boundary.y2) {\n      j--;\n    }\n\n    let horizonPart, affectedBoundary;\n    let q,\n      k,\n      maxXNew = -Infinity;\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n      let xNew;\n      if (affectedBoundary.x2 > boundary.x1) {\n        // In the middle of the previous element, new x shall be at the\n        // boundary start. Extending if further if the affected boundary\n        // placed on top of the current one.\n        xNew =\n          affectedBoundary.index > boundary.index\n            ? affectedBoundary.x1New\n            : boundary.x1;\n      } else if (affectedBoundary.x2New === undefined) {\n        // We have some space in between, new x in middle will be a fair\n        // choice.\n        xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n      } else {\n        // Affected boundary has x2new set, using it as new x.\n        xNew = affectedBoundary.x2New;\n      }\n      if (xNew > maxXNew) {\n        maxXNew = xNew;\n      }\n    }\n\n    // Set new x1 for current boundary.\n    boundary.x1New = maxXNew;\n\n    // Adjusts new x2 for the affected boundaries.\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n      if (affectedBoundary.x2New === undefined) {\n        // Was not set yet, choosing new x if possible.\n        if (affectedBoundary.x2 > boundary.x1) {\n          // Current and affected boundaries intersect. If affected boundary\n          // is placed on top of the current, shrinking the affected.\n          if (affectedBoundary.index > boundary.index) {\n            affectedBoundary.x2New = affectedBoundary.x2;\n          }\n        } else {\n          affectedBoundary.x2New = maxXNew;\n        }\n      } else if (affectedBoundary.x2New > maxXNew) {\n        // Affected boundary is touching new x, pushing it back.\n        affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n      }\n    }\n\n    // Fixing the horizon.\n    const changedHorizon = [];\n    let lastBoundary = null;\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n      // Checking which boundary will be visible.\n      const useBoundary =\n        affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n      if (lastBoundary === useBoundary) {\n        // Merging with previous.\n        changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n      } else {\n        changedHorizon.push({\n          start: horizonPart.start,\n          end: horizonPart.end,\n          boundary: useBoundary,\n        });\n        lastBoundary = useBoundary;\n      }\n    }\n    if (horizon[i].start < boundary.y1) {\n      changedHorizon[0].start = boundary.y1;\n      changedHorizon.unshift({\n        start: horizon[i].start,\n        end: boundary.y1,\n        boundary: horizon[i].boundary,\n      });\n    }\n    if (boundary.y2 < horizon[j].end) {\n      changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n      changedHorizon.push({\n        start: boundary.y2,\n        end: horizon[j].end,\n        boundary: horizon[j].boundary,\n      });\n    }\n\n    // Set x2 new of boundary that is no longer visible (see overlapping case\n    // above).\n    // TODO more efficient, e.g. via reference counting.\n    for (q = i; q <= j; q++) {\n      horizonPart = horizon[q];\n      affectedBoundary = horizonPart.boundary;\n      if (affectedBoundary.x2New !== undefined) {\n        continue;\n      }\n      let used = false;\n      for (\n        k = i - 1;\n        !used && k >= 0 && horizon[k].start >= affectedBoundary.y1;\n        k--\n      ) {\n        used = horizon[k].boundary === affectedBoundary;\n      }\n      for (\n        k = j + 1;\n        !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2;\n        k++\n      ) {\n        used = horizon[k].boundary === affectedBoundary;\n      }\n      for (k = 0; !used && k < changedHorizon.length; k++) {\n        used = changedHorizon[k].boundary === affectedBoundary;\n      }\n      if (!used) {\n        affectedBoundary.x2New = maxXNew;\n      }\n    }\n\n    Array.prototype.splice.apply(\n      horizon,\n      [i, j - i + 1].concat(changedHorizon)\n    );\n  }\n\n  // Set new x2 for all unset boundaries.\n  for (const horizonPart of horizon) {\n    const affectedBoundary = horizonPart.boundary;\n    if (affectedBoundary.x2New === undefined) {\n      affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n    }\n  }\n}\n\nclass TextLayerRenderTask {\n  constructor({\n    textContent,\n    textContentStream,\n    container,\n    viewport,\n    textDivs,\n    textContentItemsStr,\n    enhanceTextSelection,\n  }) {\n    this._textContent = textContent;\n    this._textContentStream = textContentStream;\n    this._container = container;\n    this._document = container.ownerDocument;\n    this._viewport = viewport;\n    this._textDivs = textDivs || [];\n    this._textContentItemsStr = textContentItemsStr || [];\n    this._enhanceTextSelection = !!enhanceTextSelection;\n    this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n\n    this._reader = null;\n    this._layoutTextLastFontSize = null;\n    this._layoutTextLastFontFamily = null;\n    this._layoutTextCtx = null;\n    this._textDivProperties = new WeakMap();\n    this._renderingDone = false;\n    this._canceled = false;\n    this._capability = createPromiseCapability();\n    this._renderTimer = null;\n    this._bounds = [];\n\n    // Always clean-up the temporary canvas once rendering is no longer pending.\n    this._capability.promise\n      .finally(() => {\n        if (!this._enhanceTextSelection) {\n          // The `textDiv` properties are no longer needed.\n          this._textDivProperties = null;\n        }\n\n        if (this._layoutTextCtx) {\n          // Zeroing the width and height cause Firefox to release graphics\n          // resources immediately, which can greatly reduce memory consumption.\n          this._layoutTextCtx.canvas.width = 0;\n          this._layoutTextCtx.canvas.height = 0;\n          this._layoutTextCtx = null;\n        }\n      })\n      .catch(() => {\n        // Avoid \"Uncaught promise\" messages in the console.\n      });\n  }\n\n  /**\n   * Promise for textLayer rendering task completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this._capability.promise;\n  }\n\n  /**\n   * Cancel rendering of the textLayer.\n   */\n  cancel() {\n    this._canceled = true;\n    if (this._reader) {\n      this._reader\n        .cancel(new AbortException(\"TextLayer task cancelled.\"))\n        .catch(() => {\n          // Avoid \"Uncaught promise\" messages in the console.\n        });\n      this._reader = null;\n    }\n    if (this._renderTimer !== null) {\n      clearTimeout(this._renderTimer);\n      this._renderTimer = null;\n    }\n    this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n  }\n\n  /**\n   * @private\n   */\n  _processItems(items, styleCache) {\n    for (let i = 0, len = items.length; i < len; i++) {\n      if (items[i].str === undefined) {\n        if (\n          items[i].type === \"beginMarkedContentProps\" ||\n          items[i].type === \"beginMarkedContent\"\n        ) {\n          const parent = this._container;\n          this._container = document.createElement(\"span\");\n          this._container.classList.add(\"markedContent\");\n          if (items[i].id !== null) {\n            this._container.setAttribute(\"id\", `${items[i].id}`);\n          }\n          parent.appendChild(this._container);\n        } else if (items[i].type === \"endMarkedContent\") {\n          this._container = this._container.parentNode;\n        }\n        continue;\n      }\n      this._textContentItemsStr.push(items[i].str);\n      appendText(this, items[i], styleCache, this._layoutTextCtx);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _layoutText(textDiv) {\n    const textDivProperties = this._textDivProperties.get(textDiv);\n\n    let transform = \"\";\n    if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n      const { fontSize, fontFamily } = textDiv.style;\n\n      // Only build font string and set to context if different from last.\n      if (\n        fontSize !== this._layoutTextLastFontSize ||\n        fontFamily !== this._layoutTextLastFontFamily\n      ) {\n        this._layoutTextCtx.font = `${fontSize} ${fontFamily}`;\n        this._layoutTextLastFontSize = fontSize;\n        this._layoutTextLastFontFamily = fontFamily;\n      }\n      // Only measure the width for multi-char text divs, see `appendText`.\n      const { width } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n      if (width > 0) {\n        const scale = textDivProperties.canvasWidth / width;\n        if (this._enhanceTextSelection) {\n          textDivProperties.scale = scale;\n        }\n        transform = `scaleX(${scale})`;\n      }\n    }\n    if (textDivProperties.angle !== 0) {\n      transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n    }\n    if (transform.length > 0) {\n      if (this._enhanceTextSelection) {\n        textDivProperties.originalTransform = transform;\n      }\n      textDiv.style.transform = transform;\n    }\n\n    if (textDivProperties.hasText) {\n      this._container.appendChild(textDiv);\n    }\n    if (textDivProperties.hasEOL) {\n      const br = document.createElement(\"br\");\n      br.setAttribute(\"role\", \"presentation\");\n      this._container.appendChild(br);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _render(timeout = 0) {\n    const capability = createPromiseCapability();\n    let styleCache = Object.create(null);\n\n    // The temporary canvas is used to measure text length in the DOM.\n    const canvas = this._document.createElement(\"canvas\");\n    canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n\n    if (\n      typeof PDFJSDev === \"undefined\" ||\n      PDFJSDev.test(\"MOZCENTRAL || GENERIC\")\n    ) {\n      canvas.mozOpaque = true;\n    }\n    this._layoutTextCtx = canvas.getContext(\"2d\", { alpha: false });\n\n    if (this._textContent) {\n      const textItems = this._textContent.items;\n      const textStyles = this._textContent.styles;\n      this._processItems(textItems, textStyles);\n      capability.resolve();\n    } else if (this._textContentStream) {\n      const pump = () => {\n        this._reader.read().then(({ value, done }) => {\n          if (done) {\n            capability.resolve();\n            return;\n          }\n\n          Object.assign(styleCache, value.styles);\n          this._processItems(value.items, styleCache);\n          pump();\n        }, capability.reject);\n      };\n\n      this._reader = this._textContentStream.getReader();\n      pump();\n    } else {\n      throw new Error(\n        'Neither \"textContent\" nor \"textContentStream\" parameters specified.'\n      );\n    }\n\n    capability.promise.then(() => {\n      styleCache = null;\n      if (!timeout) {\n        // Render right away\n        render(this);\n      } else {\n        // Schedule\n        this._renderTimer = setTimeout(() => {\n          render(this);\n          this._renderTimer = null;\n        }, timeout);\n      }\n    }, this._capability.reject);\n  }\n\n  /**\n   * @param {boolean} [expandDivs]\n   */\n  expandTextDivs(expandDivs = false) {\n    if (!this._enhanceTextSelection || !this._renderingDone) {\n      return;\n    }\n    if (this._bounds !== null) {\n      expand(this);\n      this._bounds = null;\n    }\n    const transformBuf = [],\n      paddingBuf = [];\n\n    for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n      const div = this._textDivs[i];\n      const divProps = this._textDivProperties.get(div);\n\n      if (!divProps.hasText) {\n        continue;\n      }\n      if (expandDivs) {\n        transformBuf.length = 0;\n        paddingBuf.length = 0;\n\n        if (divProps.originalTransform) {\n          transformBuf.push(divProps.originalTransform);\n        }\n        if (divProps.paddingTop > 0) {\n          paddingBuf.push(`${divProps.paddingTop}px`);\n          transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n        } else {\n          paddingBuf.push(0);\n        }\n        if (divProps.paddingRight > 0) {\n          paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n        } else {\n          paddingBuf.push(0);\n        }\n        if (divProps.paddingBottom > 0) {\n          paddingBuf.push(`${divProps.paddingBottom}px`);\n        } else {\n          paddingBuf.push(0);\n        }\n        if (divProps.paddingLeft > 0) {\n          paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n          transformBuf.push(\n            `translateX(${-divProps.paddingLeft / divProps.scale}px)`\n          );\n        } else {\n          paddingBuf.push(0);\n        }\n\n        div.style.padding = paddingBuf.join(\" \");\n        if (transformBuf.length) {\n          div.style.transform = transformBuf.join(\" \");\n        }\n      } else {\n        div.style.padding = null;\n        div.style.transform = divProps.originalTransform;\n      }\n    }\n  }\n}\n\n/**\n * @param {TextLayerRenderParameters} renderParameters\n * @returns {TextLayerRenderTask}\n */\nfunction renderTextLayer(renderParameters) {\n  const task = new TextLayerRenderTask({\n    textContent: renderParameters.textContent,\n    textContentStream: renderParameters.textContentStream,\n    container: renderParameters.container,\n    viewport: renderParameters.viewport,\n    textDivs: renderParameters.textDivs,\n    textContentItemsStr: renderParameters.textContentItemsStr,\n    enhanceTextSelection: renderParameters.enhanceTextSelection,\n  });\n  task._render(renderParameters.timeout);\n  return task;\n}\n\nexport { renderTextLayer };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n  createObjectURL,\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  isNum,\n  OPS,\n  TextRenderingMode,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { DOMSVGFactory } from \"./display_utils.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\n\n/** @type {any} */\nlet SVGGraphics = class {\n  constructor() {\n    unreachable(\"Not implemented: SVGGraphics\");\n  }\n};\n\nif (\n  typeof PDFJSDev === \"undefined\" ||\n  PDFJSDev.test(\"!PRODUCTION || GENERIC\")\n) {\n  const SVG_DEFAULTS = {\n    fontStyle: \"normal\",\n    fontWeight: \"normal\",\n    fillColor: \"#000000\",\n  };\n  const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n  const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n  const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n  const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n  const convertImgDataToPng = (function () {\n    const PNG_HEADER = new Uint8Array([\n      0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,\n    ]);\n    const CHUNK_WRAPPER_SIZE = 12;\n\n    const crcTable = new Int32Array(256);\n    for (let i = 0; i < 256; i++) {\n      let c = i;\n      for (let h = 0; h < 8; h++) {\n        if (c & 1) {\n          c = 0xedb88320 ^ ((c >> 1) & 0x7fffffff);\n        } else {\n          c = (c >> 1) & 0x7fffffff;\n        }\n      }\n      crcTable[i] = c;\n    }\n\n    function crc32(data, start, end) {\n      let crc = -1;\n      for (let i = start; i < end; i++) {\n        const a = (crc ^ data[i]) & 0xff;\n        const b = crcTable[a];\n        crc = (crc >>> 8) ^ b;\n      }\n      return crc ^ -1;\n    }\n\n    function writePngChunk(type, body, data, offset) {\n      let p = offset;\n      const len = body.length;\n\n      data[p] = (len >> 24) & 0xff;\n      data[p + 1] = (len >> 16) & 0xff;\n      data[p + 2] = (len >> 8) & 0xff;\n      data[p + 3] = len & 0xff;\n      p += 4;\n\n      data[p] = type.charCodeAt(0) & 0xff;\n      data[p + 1] = type.charCodeAt(1) & 0xff;\n      data[p + 2] = type.charCodeAt(2) & 0xff;\n      data[p + 3] = type.charCodeAt(3) & 0xff;\n      p += 4;\n\n      data.set(body, p);\n      p += body.length;\n\n      const crc = crc32(data, offset + 4, p);\n      data[p] = (crc >> 24) & 0xff;\n      data[p + 1] = (crc >> 16) & 0xff;\n      data[p + 2] = (crc >> 8) & 0xff;\n      data[p + 3] = crc & 0xff;\n    }\n\n    function adler32(data, start, end) {\n      let a = 1;\n      let b = 0;\n      for (let i = start; i < end; ++i) {\n        a = (a + (data[i] & 0xff)) % 65521;\n        b = (b + a) % 65521;\n      }\n      return (b << 16) | a;\n    }\n\n    /**\n     * @param {Uint8Array} literals The input data.\n     * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n     *   This is the required format for compressed streams in the PNG format:\n     *   http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n     */\n    function deflateSync(literals) {\n      if (!isNodeJS) {\n        // zlib is certainly not available outside of Node.js. We can either use\n        // the pako library for client-side DEFLATE compression, or use the\n        // canvas API of the browser to obtain a more optimal PNG file.\n        return deflateSyncUncompressed(literals);\n      }\n      try {\n        // NOTE: This implementation is far from perfect, but already way better\n        // than not applying any compression.\n        //\n        // A better algorithm will try to choose a good predictor/filter and\n        // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n        //\n        // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n        // Node v3.0.0   Buffer inherits from Uint8Array.\n        // Node v8.0.0   zlib.deflateSync accepts Uint8Array as input.\n        let input;\n        // eslint-disable-next-line no-undef\n        if (parseInt(process.versions.node) >= 8) {\n          input = literals;\n        } else {\n          // eslint-disable-next-line no-undef\n          input = Buffer.from(literals);\n        }\n        const output = __non_webpack_require__(\"zlib\").deflateSync(input, {\n          level: 9,\n        });\n        return output instanceof Uint8Array ? output : new Uint8Array(output);\n      } catch (e) {\n        warn(\n          \"Not compressing PNG because zlib.deflateSync is unavailable: \" + e\n        );\n      }\n\n      return deflateSyncUncompressed(literals);\n    }\n\n    // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n    function deflateSyncUncompressed(literals) {\n      let len = literals.length;\n      const maxBlockLength = 0xffff;\n\n      const deflateBlocks = Math.ceil(len / maxBlockLength);\n      const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n      let pi = 0;\n      idat[pi++] = 0x78; // compression method and flags\n      idat[pi++] = 0x9c; // flags\n\n      let pos = 0;\n      while (len > maxBlockLength) {\n        // writing non-final DEFLATE blocks type 0 and length of 65535\n        idat[pi++] = 0x00;\n        idat[pi++] = 0xff;\n        idat[pi++] = 0xff;\n        idat[pi++] = 0x00;\n        idat[pi++] = 0x00;\n        idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n        pi += maxBlockLength;\n        pos += maxBlockLength;\n        len -= maxBlockLength;\n      }\n\n      // writing non-final DEFLATE blocks type 0\n      idat[pi++] = 0x01;\n      idat[pi++] = len & 0xff;\n      idat[pi++] = (len >> 8) & 0xff;\n      idat[pi++] = ~len & 0xffff & 0xff;\n      idat[pi++] = ((~len & 0xffff) >> 8) & 0xff;\n      idat.set(literals.subarray(pos), pi);\n      pi += literals.length - pos;\n\n      const adler = adler32(literals, 0, literals.length); // checksum\n      idat[pi++] = (adler >> 24) & 0xff;\n      idat[pi++] = (adler >> 16) & 0xff;\n      idat[pi++] = (adler >> 8) & 0xff;\n      idat[pi++] = adler & 0xff;\n      return idat;\n    }\n\n    function encode(imgData, kind, forceDataSchema, isMask) {\n      const width = imgData.width;\n      const height = imgData.height;\n      let bitDepth, colorType, lineSize;\n      const bytes = imgData.data;\n\n      switch (kind) {\n        case ImageKind.GRAYSCALE_1BPP:\n          colorType = 0;\n          bitDepth = 1;\n          lineSize = (width + 7) >> 3;\n          break;\n        case ImageKind.RGB_24BPP:\n          colorType = 2;\n          bitDepth = 8;\n          lineSize = width * 3;\n          break;\n        case ImageKind.RGBA_32BPP:\n          colorType = 6;\n          bitDepth = 8;\n          lineSize = width * 4;\n          break;\n        default:\n          throw new Error(\"invalid format\");\n      }\n\n      // prefix every row with predictor 0\n      const literals = new Uint8Array((1 + lineSize) * height);\n      let offsetLiterals = 0,\n        offsetBytes = 0;\n      for (let y = 0; y < height; ++y) {\n        literals[offsetLiterals++] = 0; // no prediction\n        literals.set(\n          bytes.subarray(offsetBytes, offsetBytes + lineSize),\n          offsetLiterals\n        );\n        offsetBytes += lineSize;\n        offsetLiterals += lineSize;\n      }\n\n      if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n        // inverting for image masks\n        offsetLiterals = 0;\n        for (let y = 0; y < height; y++) {\n          offsetLiterals++; // skipping predictor\n          for (let i = 0; i < lineSize; i++) {\n            literals[offsetLiterals++] ^= 0xff;\n          }\n        }\n      }\n\n      const ihdr = new Uint8Array([\n        (width >> 24) & 0xff,\n        (width >> 16) & 0xff,\n        (width >> 8) & 0xff,\n        width & 0xff,\n        (height >> 24) & 0xff,\n        (height >> 16) & 0xff,\n        (height >> 8) & 0xff,\n        height & 0xff,\n        bitDepth, // bit depth\n        colorType, // color type\n        0x00, // compression method\n        0x00, // filter method\n        0x00, // interlace method\n      ]);\n      const idat = deflateSync(literals);\n\n      // PNG consists of: header, IHDR+data, IDAT+data, and IEND.\n      const pngLength =\n        PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n      const data = new Uint8Array(pngLength);\n      let offset = 0;\n      data.set(PNG_HEADER, offset);\n      offset += PNG_HEADER.length;\n      writePngChunk(\"IHDR\", ihdr, data, offset);\n      offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n      writePngChunk(\"IDATA\", idat, data, offset);\n      offset += CHUNK_WRAPPER_SIZE + idat.length;\n      writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n\n      return createObjectURL(data, \"image/png\", forceDataSchema);\n    }\n\n    // eslint-disable-next-line no-shadow\n    return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n      const kind =\n        imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind;\n      return encode(imgData, kind, forceDataSchema, isMask);\n    };\n  })();\n\n  class SVGExtraState {\n    constructor() {\n      this.fontSizeScale = 1;\n      this.fontWeight = SVG_DEFAULTS.fontWeight;\n      this.fontSize = 0;\n\n      this.textMatrix = IDENTITY_MATRIX;\n      this.fontMatrix = FONT_IDENTITY_MATRIX;\n      this.leading = 0;\n      this.textRenderingMode = TextRenderingMode.FILL;\n      this.textMatrixScale = 1;\n\n      // Current point (in user coordinates)\n      this.x = 0;\n      this.y = 0;\n\n      // Start of text line (in text coordinates)\n      this.lineX = 0;\n      this.lineY = 0;\n\n      // Character and word spacing\n      this.charSpacing = 0;\n      this.wordSpacing = 0;\n      this.textHScale = 1;\n      this.textRise = 0;\n\n      // Default foreground and background colors\n      this.fillColor = SVG_DEFAULTS.fillColor;\n      this.strokeColor = \"#000000\";\n\n      this.fillAlpha = 1;\n      this.strokeAlpha = 1;\n      this.lineWidth = 1;\n      this.lineJoin = \"\";\n      this.lineCap = \"\";\n      this.miterLimit = 0;\n\n      this.dashArray = [];\n      this.dashPhase = 0;\n\n      this.dependencies = [];\n\n      // Clipping\n      this.activeClipUrl = null;\n      this.clipGroup = null;\n\n      this.maskId = \"\";\n    }\n\n    clone() {\n      return Object.create(this);\n    }\n\n    setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    }\n  }\n\n  // eslint-disable-next-line no-inner-declarations\n  function opListToTree(opList) {\n    let opTree = [];\n    const tmp = [];\n\n    for (const opListElement of opList) {\n      if (opListElement.fn === \"save\") {\n        opTree.push({ fnId: 92, fn: \"group\", items: [] });\n        tmp.push(opTree);\n        opTree = opTree[opTree.length - 1].items;\n        continue;\n      }\n\n      if (opListElement.fn === \"restore\") {\n        opTree = tmp.pop();\n      } else {\n        opTree.push(opListElement);\n      }\n    }\n    return opTree;\n  }\n\n  /**\n   * Format a float number as a string.\n   *\n   * @param value {number} - The float number to format.\n   * @returns {string}\n   */\n  // eslint-disable-next-line no-inner-declarations\n  function pf(value) {\n    if (Number.isInteger(value)) {\n      return value.toString();\n    }\n    const s = value.toFixed(10);\n    let i = s.length - 1;\n    if (s[i] !== \"0\") {\n      return s;\n    }\n\n    // Remove trailing zeros.\n    do {\n      i--;\n    } while (s[i] === \"0\");\n    return s.substring(0, s[i] === \".\" ? i : i + 1);\n  }\n\n  /**\n   * Format a transform matrix as a string. The standard rotation, scale and\n   * translation matrices are replaced by their shorter forms, and for\n   * identity matrices an empty string is returned to save memory.\n   *\n   * @param m {Array} - The transform matrix to format.\n   * @returns {string}\n   */\n  // eslint-disable-next-line no-inner-declarations\n  function pm(m) {\n    if (m[4] === 0 && m[5] === 0) {\n      if (m[1] === 0 && m[2] === 0) {\n        if (m[0] === 1 && m[3] === 1) {\n          return \"\";\n        }\n        return `scale(${pf(m[0])} ${pf(m[3])})`;\n      }\n      if (m[0] === m[3] && m[1] === -m[2]) {\n        const a = (Math.acos(m[0]) * 180) / Math.PI;\n        return `rotate(${pf(a)})`;\n      }\n    } else {\n      if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n        return `translate(${pf(m[4])} ${pf(m[5])})`;\n      }\n    }\n    return (\n      `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` +\n      `${pf(m[5])})`\n    );\n  }\n\n  // The counts below are relevant for all pages, so they have to be global\n  // instead of being members of `SVGGraphics` (which is recreated for\n  // each page).\n  let clipCount = 0;\n  let maskCount = 0;\n  let shadingCount = 0;\n\n  SVGGraphics = class {\n    constructor(commonObjs, objs, forceDataSchema = false) {\n      this.svgFactory = new DOMSVGFactory();\n\n      this.current = new SVGExtraState();\n      this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n      this.transformStack = [];\n      this.extraStack = [];\n      this.commonObjs = commonObjs;\n      this.objs = objs;\n      this.pendingClip = null;\n      this.pendingEOFill = false;\n\n      this.embedFonts = false;\n      this.embeddedFonts = Object.create(null);\n      this.cssStyle = null;\n      this.forceDataSchema = !!forceDataSchema;\n\n      // In `src/shared/util.js` the operator names are mapped to IDs.\n      // The list below represents the reverse of that, i.e., it maps IDs\n      // to operator names.\n      this._operatorIdMapping = [];\n      for (const op in OPS) {\n        this._operatorIdMapping[OPS[op]] = op;\n      }\n    }\n\n    save() {\n      this.transformStack.push(this.transformMatrix);\n      const old = this.current;\n      this.extraStack.push(old);\n      this.current = old.clone();\n    }\n\n    restore() {\n      this.transformMatrix = this.transformStack.pop();\n      this.current = this.extraStack.pop();\n      this.pendingClip = null;\n      this.tgrp = null;\n    }\n\n    group(items) {\n      this.save();\n      this.executeOpTree(items);\n      this.restore();\n    }\n\n    loadDependencies(operatorList) {\n      const fnArray = operatorList.fnArray;\n      const argsArray = operatorList.argsArray;\n\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        if (fnArray[i] !== OPS.dependency) {\n          continue;\n        }\n\n        for (const obj of argsArray[i]) {\n          const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n          const promise = new Promise(resolve => {\n            objsPool.get(obj, resolve);\n          });\n          this.current.dependencies.push(promise);\n        }\n      }\n      return Promise.all(this.current.dependencies);\n    }\n\n    transform(a, b, c, d, e, f) {\n      const transformMatrix = [a, b, c, d, e, f];\n      this.transformMatrix = Util.transform(\n        this.transformMatrix,\n        transformMatrix\n      );\n      this.tgrp = null;\n    }\n\n    getSVG(operatorList, viewport) {\n      this.viewport = viewport;\n\n      const svgElement = this._initialize(viewport);\n      return this.loadDependencies(operatorList).then(() => {\n        this.transformMatrix = IDENTITY_MATRIX;\n        this.executeOpTree(this.convertOpList(operatorList));\n        return svgElement;\n      });\n    }\n\n    convertOpList(operatorList) {\n      const operatorIdMapping = this._operatorIdMapping;\n      const argsArray = operatorList.argsArray;\n      const fnArray = operatorList.fnArray;\n      const opList = [];\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        const fnId = fnArray[i];\n        opList.push({\n          fnId,\n          fn: operatorIdMapping[fnId],\n          args: argsArray[i],\n        });\n      }\n      return opListToTree(opList);\n    }\n\n    executeOpTree(opTree) {\n      for (const opTreeElement of opTree) {\n        const fn = opTreeElement.fn;\n        const fnId = opTreeElement.fnId;\n        const args = opTreeElement.args;\n\n        switch (fnId | 0) {\n          case OPS.beginText:\n            this.beginText();\n            break;\n          case OPS.dependency:\n            // Handled in `loadDependencies`, so no warning should be shown.\n            break;\n          case OPS.setLeading:\n            this.setLeading(args);\n            break;\n          case OPS.setLeadingMoveText:\n            this.setLeadingMoveText(args[0], args[1]);\n            break;\n          case OPS.setFont:\n            this.setFont(args);\n            break;\n          case OPS.showText:\n            this.showText(args[0]);\n            break;\n          case OPS.showSpacedText:\n            this.showText(args[0]);\n            break;\n          case OPS.endText:\n            this.endText();\n            break;\n          case OPS.moveText:\n            this.moveText(args[0], args[1]);\n            break;\n          case OPS.setCharSpacing:\n            this.setCharSpacing(args[0]);\n            break;\n          case OPS.setWordSpacing:\n            this.setWordSpacing(args[0]);\n            break;\n          case OPS.setHScale:\n            this.setHScale(args[0]);\n            break;\n          case OPS.setTextMatrix:\n            this.setTextMatrix(\n              args[0],\n              args[1],\n              args[2],\n              args[3],\n              args[4],\n              args[5]\n            );\n            break;\n          case OPS.setTextRise:\n            this.setTextRise(args[0]);\n            break;\n          case OPS.setTextRenderingMode:\n            this.setTextRenderingMode(args[0]);\n            break;\n          case OPS.setLineWidth:\n            this.setLineWidth(args[0]);\n            break;\n          case OPS.setLineJoin:\n            this.setLineJoin(args[0]);\n            break;\n          case OPS.setLineCap:\n            this.setLineCap(args[0]);\n            break;\n          case OPS.setMiterLimit:\n            this.setMiterLimit(args[0]);\n            break;\n          case OPS.setFillRGBColor:\n            this.setFillRGBColor(args[0], args[1], args[2]);\n            break;\n          case OPS.setStrokeRGBColor:\n            this.setStrokeRGBColor(args[0], args[1], args[2]);\n            break;\n          case OPS.setStrokeColorN:\n            this.setStrokeColorN(args);\n            break;\n          case OPS.setFillColorN:\n            this.setFillColorN(args);\n            break;\n          case OPS.shadingFill:\n            this.shadingFill(args[0]);\n            break;\n          case OPS.setDash:\n            this.setDash(args[0], args[1]);\n            break;\n          case OPS.setRenderingIntent:\n            this.setRenderingIntent(args[0]);\n            break;\n          case OPS.setFlatness:\n            this.setFlatness(args[0]);\n            break;\n          case OPS.setGState:\n            this.setGState(args[0]);\n            break;\n          case OPS.fill:\n            this.fill();\n            break;\n          case OPS.eoFill:\n            this.eoFill();\n            break;\n          case OPS.stroke:\n            this.stroke();\n            break;\n          case OPS.fillStroke:\n            this.fillStroke();\n            break;\n          case OPS.eoFillStroke:\n            this.eoFillStroke();\n            break;\n          case OPS.clip:\n            this.clip(\"nonzero\");\n            break;\n          case OPS.eoClip:\n            this.clip(\"evenodd\");\n            break;\n          case OPS.paintSolidColorImageMask:\n            this.paintSolidColorImageMask();\n            break;\n          case OPS.paintImageXObject:\n            this.paintImageXObject(args[0]);\n            break;\n          case OPS.paintInlineImageXObject:\n            this.paintInlineImageXObject(args[0]);\n            break;\n          case OPS.paintImageMaskXObject:\n            this.paintImageMaskXObject(args[0]);\n            break;\n          case OPS.paintFormXObjectBegin:\n            this.paintFormXObjectBegin(args[0], args[1]);\n            break;\n          case OPS.paintFormXObjectEnd:\n            this.paintFormXObjectEnd();\n            break;\n          case OPS.closePath:\n            this.closePath();\n            break;\n          case OPS.closeStroke:\n            this.closeStroke();\n            break;\n          case OPS.closeFillStroke:\n            this.closeFillStroke();\n            break;\n          case OPS.closeEOFillStroke:\n            this.closeEOFillStroke();\n            break;\n          case OPS.nextLine:\n            this.nextLine();\n            break;\n          case OPS.transform:\n            this.transform(\n              args[0],\n              args[1],\n              args[2],\n              args[3],\n              args[4],\n              args[5]\n            );\n            break;\n          case OPS.constructPath:\n            this.constructPath(args[0], args[1]);\n            break;\n          case OPS.endPath:\n            this.endPath();\n            break;\n          case 92:\n            this.group(opTreeElement.items);\n            break;\n          default:\n            warn(`Unimplemented operator ${fn}`);\n            break;\n        }\n      }\n    }\n\n    setWordSpacing(wordSpacing) {\n      this.current.wordSpacing = wordSpacing;\n    }\n\n    setCharSpacing(charSpacing) {\n      this.current.charSpacing = charSpacing;\n    }\n\n    nextLine() {\n      this.moveText(0, this.current.leading);\n    }\n\n    setTextMatrix(a, b, c, d, e, f) {\n      const current = this.current;\n      current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n      current.textMatrixScale = Math.hypot(a, b);\n\n      current.x = current.lineX = 0;\n      current.y = current.lineY = 0;\n\n      current.xcoords = [];\n      current.ycoords = [];\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(\n        null,\n        \"font-size\",\n        `${pf(current.fontSize)}px`\n      );\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n\n      current.txtElement = this.svgFactory.createElement(\"svg:text\");\n      current.txtElement.appendChild(current.tspan);\n    }\n\n    beginText() {\n      const current = this.current;\n      current.x = current.lineX = 0;\n      current.y = current.lineY = 0;\n      current.textMatrix = IDENTITY_MATRIX;\n      current.lineMatrix = IDENTITY_MATRIX;\n      current.textMatrixScale = 1;\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.txtElement = this.svgFactory.createElement(\"svg:text\");\n      current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n      current.xcoords = [];\n      current.ycoords = [];\n    }\n\n    moveText(x, y) {\n      const current = this.current;\n      current.x = current.lineX += x;\n      current.y = current.lineY += y;\n\n      current.xcoords = [];\n      current.ycoords = [];\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(\n        null,\n        \"font-size\",\n        `${pf(current.fontSize)}px`\n      );\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n    }\n\n    showText(glyphs) {\n      const current = this.current;\n      const font = current.font;\n      const fontSize = current.fontSize;\n      if (fontSize === 0) {\n        return;\n      }\n\n      const fontSizeScale = current.fontSizeScale;\n      const charSpacing = current.charSpacing;\n      const wordSpacing = current.wordSpacing;\n      const fontDirection = current.fontDirection;\n      const textHScale = current.textHScale * fontDirection;\n      const vertical = font.vertical;\n      const spacingDir = vertical ? 1 : -1;\n      const defaultVMetrics = font.defaultVMetrics;\n      const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n      let x = 0;\n      for (const glyph of glyphs) {\n        if (glyph === null) {\n          // Word break\n          x += fontDirection * wordSpacing;\n          continue;\n        } else if (isNum(glyph)) {\n          x += (spacingDir * glyph * fontSize) / 1000;\n          continue;\n        }\n\n        const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        const character = glyph.fontChar;\n        let scaledX, scaledY;\n        let width = glyph.width;\n        if (vertical) {\n          let vx;\n          const vmetric = glyph.vmetric || defaultVMetrics;\n          vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n          vx = -vx * widthAdvanceScale;\n          const vy = vmetric[2] * widthAdvanceScale;\n\n          width = vmetric ? -vmetric[0] : width;\n          scaledX = vx / fontSizeScale;\n          scaledY = (x + vy) / fontSizeScale;\n        } else {\n          scaledX = x / fontSizeScale;\n          scaledY = 0;\n        }\n\n        if (glyph.isInFont || font.missingFile) {\n          current.xcoords.push(current.x + scaledX);\n          if (vertical) {\n            current.ycoords.push(-current.y + scaledY);\n          }\n          current.tspan.textContent += character;\n        } else {\n          // TODO: To assist with text selection, we should replace the missing\n          // character with a space character if charWidth is not zero.\n          // But we cannot just do \"character = ' '\", because the ' ' character\n          // might actually map to a different glyph.\n        }\n\n        let charWidth;\n        if (vertical) {\n          charWidth = width * widthAdvanceScale - spacing * fontDirection;\n        } else {\n          charWidth = width * widthAdvanceScale + spacing * fontDirection;\n        }\n\n        x += charWidth;\n      }\n      current.tspan.setAttributeNS(\n        null,\n        \"x\",\n        current.xcoords.map(pf).join(\" \")\n      );\n      if (vertical) {\n        current.tspan.setAttributeNS(\n          null,\n          \"y\",\n          current.ycoords.map(pf).join(\" \")\n        );\n      } else {\n        current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      }\n\n      if (vertical) {\n        current.y -= x;\n      } else {\n        current.x += x * textHScale;\n      }\n\n      current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n      current.tspan.setAttributeNS(\n        null,\n        \"font-size\",\n        `${pf(current.fontSize)}px`\n      );\n      if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n        current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n      }\n      if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n        current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n      }\n\n      const fillStrokeMode =\n        current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n      if (\n        fillStrokeMode === TextRenderingMode.FILL ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n          current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n        }\n        if (current.fillAlpha < 1) {\n          current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n        }\n      } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n        // Workaround for Firefox: We must set fill=\"transparent\" because\n        // fill=\"none\" would generate an empty clipping path.\n        current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n      } else {\n        current.tspan.setAttributeNS(null, \"fill\", \"none\");\n      }\n\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        const lineWidthScale = 1 / (current.textMatrixScale || 1);\n        this._setStrokeAttributes(current.tspan, lineWidthScale);\n      }\n\n      // Include the text rise in the text matrix since the `pm` function\n      // creates the SVG element's `translate` entry (work on a copy to avoid\n      // altering the original text matrix).\n      let textMatrix = current.textMatrix;\n      if (current.textRise !== 0) {\n        textMatrix = textMatrix.slice();\n        textMatrix[5] += current.textRise;\n      }\n\n      current.txtElement.setAttributeNS(\n        null,\n        \"transform\",\n        `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`\n      );\n      current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n      current.txtElement.appendChild(current.tspan);\n      current.txtgrp.appendChild(current.txtElement);\n\n      this._ensureTransformGroup().appendChild(current.txtElement);\n    }\n\n    setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    }\n\n    addFontStyle(fontObj) {\n      if (!fontObj.data) {\n        throw new Error(\n          \"addFontStyle: No font data available, \" +\n            'ensure that the \"fontExtraProperties\" API parameter is set.'\n        );\n      }\n      if (!this.cssStyle) {\n        this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n        this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n        this.defs.appendChild(this.cssStyle);\n      }\n\n      const url = createObjectURL(\n        fontObj.data,\n        fontObj.mimetype,\n        this.forceDataSchema\n      );\n      this.cssStyle.textContent +=\n        `@font-face { font-family: \"${fontObj.loadedName}\";` +\n        ` src: url(${url}); }\\n`;\n    }\n\n    setFont(details) {\n      const current = this.current;\n      const fontObj = this.commonObjs.get(details[0]);\n      let size = details[1];\n      current.font = fontObj;\n\n      if (\n        this.embedFonts &&\n        !fontObj.missingFile &&\n        !this.embeddedFonts[fontObj.loadedName]\n      ) {\n        this.addFontStyle(fontObj);\n        this.embeddedFonts[fontObj.loadedName] = fontObj;\n      }\n      current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n      let bold = \"normal\";\n      if (fontObj.black) {\n        bold = \"900\";\n      } else if (fontObj.bold) {\n        bold = \"bold\";\n      }\n      const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n      current.fontSize = size;\n      current.fontFamily = fontObj.loadedName;\n      current.fontWeight = bold;\n      current.fontStyle = italic;\n\n      current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n      current.xcoords = [];\n      current.ycoords = [];\n    }\n\n    endText() {\n      const current = this.current;\n      if (\n        current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG &&\n        current.txtElement?.hasChildNodes()\n      ) {\n        // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n        current.element = current.txtElement;\n        this.clip(\"nonzero\");\n        this.endPath();\n      }\n    }\n\n    // Path properties\n    setLineWidth(width) {\n      if (width > 0) {\n        this.current.lineWidth = width;\n      }\n    }\n\n    setLineCap(style) {\n      this.current.lineCap = LINE_CAP_STYLES[style];\n    }\n\n    setLineJoin(style) {\n      this.current.lineJoin = LINE_JOIN_STYLES[style];\n    }\n\n    setMiterLimit(limit) {\n      this.current.miterLimit = limit;\n    }\n\n    setStrokeAlpha(strokeAlpha) {\n      this.current.strokeAlpha = strokeAlpha;\n    }\n\n    setStrokeRGBColor(r, g, b) {\n      this.current.strokeColor = Util.makeHexColor(r, g, b);\n    }\n\n    setFillAlpha(fillAlpha) {\n      this.current.fillAlpha = fillAlpha;\n    }\n\n    setFillRGBColor(r, g, b) {\n      this.current.fillColor = Util.makeHexColor(r, g, b);\n      this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n      this.current.xcoords = [];\n      this.current.ycoords = [];\n    }\n\n    setStrokeColorN(args) {\n      this.current.strokeColor = this._makeColorN_Pattern(args);\n    }\n\n    setFillColorN(args) {\n      this.current.fillColor = this._makeColorN_Pattern(args);\n    }\n\n    shadingFill(args) {\n      const width = this.viewport.width;\n      const height = this.viewport.height;\n      const inv = Util.inverseTransform(this.transformMatrix);\n      const bl = Util.applyTransform([0, 0], inv);\n      const br = Util.applyTransform([0, height], inv);\n      const ul = Util.applyTransform([width, 0], inv);\n      const ur = Util.applyTransform([width, height], inv);\n      const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n      const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n      const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n      const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", x0);\n      rect.setAttributeNS(null, \"y\", y0);\n      rect.setAttributeNS(null, \"width\", x1 - x0);\n      rect.setAttributeNS(null, \"height\", y1 - y0);\n      rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n      if (this.current.fillAlpha < 1) {\n        rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n      }\n      this._ensureTransformGroup().appendChild(rect);\n    }\n\n    /**\n     * @private\n     */\n    _makeColorN_Pattern(args) {\n      if (args[0] === \"TilingPattern\") {\n        return this._makeTilingPattern(args);\n      }\n      return this._makeShadingPattern(args);\n    }\n\n    /**\n     * @private\n     */\n    _makeTilingPattern(args) {\n      const color = args[1];\n      const operatorList = args[2];\n      const matrix = args[3] || IDENTITY_MATRIX;\n      const [x0, y0, x1, y1] = args[4];\n      const xstep = args[5];\n      const ystep = args[6];\n      const paintType = args[7];\n\n      const tilingId = `shading${shadingCount++}`;\n      const [tx0, ty0, tx1, ty1] = Util.normalizeRect([\n        ...Util.applyTransform([x0, y0], matrix),\n        ...Util.applyTransform([x1, y1], matrix),\n      ]);\n      const [xscale, yscale] = Util.singularValueDecompose2dScale(matrix);\n      const txstep = xstep * xscale;\n      const tystep = ystep * yscale;\n\n      const tiling = this.svgFactory.createElement(\"svg:pattern\");\n      tiling.setAttributeNS(null, \"id\", tilingId);\n      tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n      tiling.setAttributeNS(null, \"width\", txstep);\n      tiling.setAttributeNS(null, \"height\", tystep);\n      tiling.setAttributeNS(null, \"x\", `${tx0}`);\n      tiling.setAttributeNS(null, \"y\", `${ty0}`);\n\n      // Save current state.\n      const svg = this.svg;\n      const transformMatrix = this.transformMatrix;\n      const fillColor = this.current.fillColor;\n      const strokeColor = this.current.strokeColor;\n\n      const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n      this.svg = bbox;\n      this.transformMatrix = matrix;\n      if (paintType === 2) {\n        const cssColor = Util.makeHexColor(...color);\n        this.current.fillColor = cssColor;\n        this.current.strokeColor = cssColor;\n      }\n      this.executeOpTree(this.convertOpList(operatorList));\n\n      // Restore saved state.\n      this.svg = svg;\n      this.transformMatrix = transformMatrix;\n      this.current.fillColor = fillColor;\n      this.current.strokeColor = strokeColor;\n\n      tiling.appendChild(bbox.childNodes[0]);\n      this.defs.appendChild(tiling);\n      return `url(#${tilingId})`;\n    }\n\n    /**\n     * @private\n     */\n    _makeShadingPattern(args) {\n      if (typeof args === \"string\") {\n        args = this.objs.get(args);\n      }\n      switch (args[0]) {\n        case \"RadialAxial\":\n          const shadingId = `shading${shadingCount++}`;\n          const colorStops = args[3];\n          let gradient;\n\n          switch (args[1]) {\n            case \"axial\":\n              const point0 = args[4];\n              const point1 = args[5];\n              gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n              gradient.setAttributeNS(null, \"id\", shadingId);\n              gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n              gradient.setAttributeNS(null, \"x1\", point0[0]);\n              gradient.setAttributeNS(null, \"y1\", point0[1]);\n              gradient.setAttributeNS(null, \"x2\", point1[0]);\n              gradient.setAttributeNS(null, \"y2\", point1[1]);\n              break;\n            case \"radial\":\n              const focalPoint = args[4];\n              const circlePoint = args[5];\n              const focalRadius = args[6];\n              const circleRadius = args[7];\n              gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n              gradient.setAttributeNS(null, \"id\", shadingId);\n              gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n              gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n              gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n              gradient.setAttributeNS(null, \"r\", circleRadius);\n              gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n              gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n              gradient.setAttributeNS(null, \"fr\", focalRadius);\n              break;\n            default:\n              throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n          }\n          for (const colorStop of colorStops) {\n            const stop = this.svgFactory.createElement(\"svg:stop\");\n            stop.setAttributeNS(null, \"offset\", colorStop[0]);\n            stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n            gradient.appendChild(stop);\n          }\n          this.defs.appendChild(gradient);\n          return `url(#${shadingId})`;\n        case \"Mesh\":\n          warn(\"Unimplemented pattern Mesh\");\n          return null;\n        case \"Dummy\":\n          return \"hotpink\";\n        default:\n          throw new Error(`Unknown IR type: ${args[0]}`);\n      }\n    }\n\n    setDash(dashArray, dashPhase) {\n      this.current.dashArray = dashArray;\n      this.current.dashPhase = dashPhase;\n    }\n\n    constructPath(ops, args) {\n      const current = this.current;\n      let x = current.x,\n        y = current.y;\n      let d = [];\n      let j = 0;\n\n      for (const op of ops) {\n        switch (op | 0) {\n          case OPS.rectangle:\n            x = args[j++];\n            y = args[j++];\n            const width = args[j++];\n            const height = args[j++];\n            const xw = x + width;\n            const yh = y + height;\n            d.push(\n              \"M\",\n              pf(x),\n              pf(y),\n              \"L\",\n              pf(xw),\n              pf(y),\n              \"L\",\n              pf(xw),\n              pf(yh),\n              \"L\",\n              pf(x),\n              pf(yh),\n              \"Z\"\n            );\n            break;\n          case OPS.moveTo:\n            x = args[j++];\n            y = args[j++];\n            d.push(\"M\", pf(x), pf(y));\n            break;\n          case OPS.lineTo:\n            x = args[j++];\n            y = args[j++];\n            d.push(\"L\", pf(x), pf(y));\n            break;\n          case OPS.curveTo:\n            x = args[j + 4];\n            y = args[j + 5];\n            d.push(\n              \"C\",\n              pf(args[j]),\n              pf(args[j + 1]),\n              pf(args[j + 2]),\n              pf(args[j + 3]),\n              pf(x),\n              pf(y)\n            );\n            j += 6;\n            break;\n          case OPS.curveTo2:\n            d.push(\n              \"C\",\n              pf(x),\n              pf(y),\n              pf(args[j]),\n              pf(args[j + 1]),\n              pf(args[j + 2]),\n              pf(args[j + 3])\n            );\n            x = args[j + 2];\n            y = args[j + 3];\n            j += 4;\n            break;\n          case OPS.curveTo3:\n            x = args[j + 2];\n            y = args[j + 3];\n            d.push(\n              \"C\",\n              pf(args[j]),\n              pf(args[j + 1]),\n              pf(x),\n              pf(y),\n              pf(x),\n              pf(y)\n            );\n            j += 4;\n            break;\n          case OPS.closePath:\n            d.push(\"Z\");\n            break;\n        }\n      }\n\n      d = d.join(\" \");\n\n      if (\n        current.path &&\n        ops.length > 0 &&\n        ops[0] !== OPS.rectangle &&\n        ops[0] !== OPS.moveTo\n      ) {\n        // If a path does not start with an OPS.rectangle or OPS.moveTo, it has\n        // probably been divided into two OPS.constructPath operators by\n        // OperatorList. Append the commands to the previous path element.\n        d = current.path.getAttributeNS(null, \"d\") + d;\n      } else {\n        current.path = this.svgFactory.createElement(\"svg:path\");\n        this._ensureTransformGroup().appendChild(current.path);\n      }\n\n      current.path.setAttributeNS(null, \"d\", d);\n      current.path.setAttributeNS(null, \"fill\", \"none\");\n\n      // Saving a reference in current.element so that it can be addressed\n      // in 'fill' and 'stroke'\n      current.element = current.path;\n      current.setCurrentPoint(x, y);\n    }\n\n    endPath() {\n      const current = this.current;\n\n      // Painting operators end a path.\n      current.path = null;\n\n      if (!this.pendingClip) {\n        return;\n      }\n      if (!current.element) {\n        this.pendingClip = null;\n        return;\n      }\n\n      // Add the current path to a clipping path.\n      const clipId = `clippath${clipCount++}`;\n      const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n      clipPath.setAttributeNS(null, \"id\", clipId);\n      clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n      // A deep clone is needed when text is used as a clipping path.\n      const clipElement = current.element.cloneNode(true);\n      if (this.pendingClip === \"evenodd\") {\n        clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n      } else {\n        clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n      }\n      this.pendingClip = null;\n      clipPath.appendChild(clipElement);\n      this.defs.appendChild(clipPath);\n\n      if (current.activeClipUrl) {\n        // The previous clipping group content can go out of order -- resetting\n        // cached clipGroups.\n        current.clipGroup = null;\n        for (const prev of this.extraStack) {\n          prev.clipGroup = null;\n        }\n        // Intersect with the previous clipping path.\n        clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n      }\n      current.activeClipUrl = `url(#${clipId})`;\n\n      this.tgrp = null;\n    }\n\n    clip(type) {\n      this.pendingClip = type;\n    }\n\n    closePath() {\n      const current = this.current;\n      if (current.path) {\n        const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n        current.path.setAttributeNS(null, \"d\", d);\n      }\n    }\n\n    setLeading(leading) {\n      this.current.leading = -leading;\n    }\n\n    setTextRise(textRise) {\n      this.current.textRise = textRise;\n    }\n\n    setTextRenderingMode(textRenderingMode) {\n      this.current.textRenderingMode = textRenderingMode;\n    }\n\n    setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    }\n\n    setRenderingIntent(intent) {\n      // This operation is ignored since we haven't found a use case for it yet.\n    }\n\n    setFlatness(flatness) {\n      // This operation is ignored since we haven't found a use case for it yet.\n    }\n\n    setGState(states) {\n      for (const [key, value] of states) {\n        switch (key) {\n          case \"LW\":\n            this.setLineWidth(value);\n            break;\n          case \"LC\":\n            this.setLineCap(value);\n            break;\n          case \"LJ\":\n            this.setLineJoin(value);\n            break;\n          case \"ML\":\n            this.setMiterLimit(value);\n            break;\n          case \"D\":\n            this.setDash(value[0], value[1]);\n            break;\n          case \"RI\":\n            this.setRenderingIntent(value);\n            break;\n          case \"FL\":\n            this.setFlatness(value);\n            break;\n          case \"Font\":\n            this.setFont(value);\n            break;\n          case \"CA\":\n            this.setStrokeAlpha(value);\n            break;\n          case \"ca\":\n            this.setFillAlpha(value);\n            break;\n          default:\n            warn(`Unimplemented graphic state operator ${key}`);\n            break;\n        }\n      }\n    }\n\n    fill() {\n      const current = this.current;\n      if (current.element) {\n        current.element.setAttributeNS(null, \"fill\", current.fillColor);\n        current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n        this.endPath();\n      }\n    }\n\n    stroke() {\n      const current = this.current;\n      if (current.element) {\n        this._setStrokeAttributes(current.element);\n        current.element.setAttributeNS(null, \"fill\", \"none\");\n        this.endPath();\n      }\n    }\n\n    /**\n     * @private\n     */\n    _setStrokeAttributes(element, lineWidthScale = 1) {\n      const current = this.current;\n      let dashArray = current.dashArray;\n      if (lineWidthScale !== 1 && dashArray.length > 0) {\n        dashArray = dashArray.map(function (value) {\n          return lineWidthScale * value;\n        });\n      }\n      element.setAttributeNS(null, \"stroke\", current.strokeColor);\n      element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n      element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n      element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n      element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n      element.setAttributeNS(\n        null,\n        \"stroke-width\",\n        pf(lineWidthScale * current.lineWidth) + \"px\"\n      );\n      element.setAttributeNS(\n        null,\n        \"stroke-dasharray\",\n        dashArray.map(pf).join(\" \")\n      );\n      element.setAttributeNS(\n        null,\n        \"stroke-dashoffset\",\n        pf(lineWidthScale * current.dashPhase) + \"px\"\n      );\n    }\n\n    eoFill() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n      }\n      this.fill();\n    }\n\n    fillStroke() {\n      // Order is important since stroke wants fill to be none.\n      // First stroke, then if fill needed, it will be overwritten.\n      this.stroke();\n      this.fill();\n    }\n\n    eoFillStroke() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n      }\n      this.fillStroke();\n    }\n\n    closeStroke() {\n      this.closePath();\n      this.stroke();\n    }\n\n    closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    }\n\n    closeEOFillStroke() {\n      this.closePath();\n      this.eoFillStroke();\n    }\n\n    paintSolidColorImageMask() {\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", \"0\");\n      rect.setAttributeNS(null, \"y\", \"0\");\n      rect.setAttributeNS(null, \"width\", \"1px\");\n      rect.setAttributeNS(null, \"height\", \"1px\");\n      rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n      this._ensureTransformGroup().appendChild(rect);\n    }\n\n    paintImageXObject(objId) {\n      const imgData = objId.startsWith(\"g_\")\n        ? this.commonObjs.get(objId)\n        : this.objs.get(objId);\n      if (!imgData) {\n        warn(`Dependent image with object ID ${objId} is not ready yet`);\n        return;\n      }\n      this.paintInlineImageXObject(imgData);\n    }\n\n    paintInlineImageXObject(imgData, mask) {\n      const width = imgData.width;\n      const height = imgData.height;\n\n      const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n      const cliprect = this.svgFactory.createElement(\"svg:rect\");\n      cliprect.setAttributeNS(null, \"x\", \"0\");\n      cliprect.setAttributeNS(null, \"y\", \"0\");\n      cliprect.setAttributeNS(null, \"width\", pf(width));\n      cliprect.setAttributeNS(null, \"height\", pf(height));\n      this.current.element = cliprect;\n      this.clip(\"nonzero\");\n\n      const imgEl = this.svgFactory.createElement(\"svg:image\");\n      imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n      imgEl.setAttributeNS(null, \"x\", \"0\");\n      imgEl.setAttributeNS(null, \"y\", pf(-height));\n      imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n      imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n      imgEl.setAttributeNS(\n        null,\n        \"transform\",\n        `scale(${pf(1 / width)} ${pf(-1 / height)})`\n      );\n      if (mask) {\n        mask.appendChild(imgEl);\n      } else {\n        this._ensureTransformGroup().appendChild(imgEl);\n      }\n    }\n\n    paintImageMaskXObject(imgData) {\n      const current = this.current;\n      const width = imgData.width;\n      const height = imgData.height;\n      const fillColor = current.fillColor;\n\n      current.maskId = `mask${maskCount++}`;\n      const mask = this.svgFactory.createElement(\"svg:mask\");\n      mask.setAttributeNS(null, \"id\", current.maskId);\n\n      const rect = this.svgFactory.createElement(\"svg:rect\");\n      rect.setAttributeNS(null, \"x\", \"0\");\n      rect.setAttributeNS(null, \"y\", \"0\");\n      rect.setAttributeNS(null, \"width\", pf(width));\n      rect.setAttributeNS(null, \"height\", pf(height));\n      rect.setAttributeNS(null, \"fill\", fillColor);\n      rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n\n      this.defs.appendChild(mask);\n      this._ensureTransformGroup().appendChild(rect);\n\n      this.paintInlineImageXObject(imgData, mask);\n    }\n\n    paintFormXObjectBegin(matrix, bbox) {\n      if (Array.isArray(matrix) && matrix.length === 6) {\n        this.transform(\n          matrix[0],\n          matrix[1],\n          matrix[2],\n          matrix[3],\n          matrix[4],\n          matrix[5]\n        );\n      }\n\n      if (bbox) {\n        const width = bbox[2] - bbox[0];\n        const height = bbox[3] - bbox[1];\n\n        const cliprect = this.svgFactory.createElement(\"svg:rect\");\n        cliprect.setAttributeNS(null, \"x\", bbox[0]);\n        cliprect.setAttributeNS(null, \"y\", bbox[1]);\n        cliprect.setAttributeNS(null, \"width\", pf(width));\n        cliprect.setAttributeNS(null, \"height\", pf(height));\n        this.current.element = cliprect;\n        this.clip(\"nonzero\");\n        this.endPath();\n      }\n    }\n\n    paintFormXObjectEnd() {}\n\n    /**\n     * @private\n     */\n    _initialize(viewport) {\n      const svg = this.svgFactory.create(viewport.width, viewport.height);\n\n      // Create the definitions element.\n      const definitions = this.svgFactory.createElement(\"svg:defs\");\n      svg.appendChild(definitions);\n      this.defs = definitions;\n\n      // Create the root group element, which acts a container for all other\n      // groups and applies the viewport transform.\n      const rootGroup = this.svgFactory.createElement(\"svg:g\");\n      rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n      svg.appendChild(rootGroup);\n\n      // For the construction of the SVG image we are only interested in the\n      // root group, so we expose it as the entry point of the SVG image for\n      // the other code in this class.\n      this.svg = rootGroup;\n\n      return svg;\n    }\n\n    /**\n     * @private\n     */\n    _ensureClipGroup() {\n      if (!this.current.clipGroup) {\n        const clipGroup = this.svgFactory.createElement(\"svg:g\");\n        clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n        this.svg.appendChild(clipGroup);\n        this.current.clipGroup = clipGroup;\n      }\n      return this.current.clipGroup;\n    }\n\n    /**\n     * @private\n     */\n    _ensureTransformGroup() {\n      if (!this.tgrp) {\n        this.tgrp = this.svgFactory.createElement(\"svg:g\");\n        this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n        if (this.current.activeClipUrl) {\n          this._ensureClipGroup().appendChild(this.tgrp);\n        } else {\n          this.svg.appendChild(this.tgrp);\n        }\n      }\n      return this.tgrp;\n    }\n  };\n}\n\nexport { SVGGraphics };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n  MissingPDFException,\n} from \"../shared/util.js\";\nimport {\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./node_stream.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nconst fs = __non_webpack_require__(\"fs\");\nconst http = __non_webpack_require__(\"http\");\nconst https = __non_webpack_require__(\"https\");\nconst url = __non_webpack_require__(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n  const parsedUrl = url.parse(sourceUrl);\n  if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n    return parsedUrl;\n  }\n  // Prepending 'file:///' to Windows absolute path.\n  if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n    return url.parse(`file:///${sourceUrl}`);\n  }\n  // Changes protocol to 'file:' if url refers to filesystem.\n  if (!parsedUrl.host) {\n    parsedUrl.protocol = \"file:\";\n  }\n  return parsedUrl;\n}\n\nclass PDFNodeStream {\n  constructor(source) {\n    this.source = source;\n    this.url = parseUrl(source.url);\n    this.isHttp =\n      this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n    // Check if url refers to filesystem.\n    this.isFsUrl = this.url.protocol === \"file:\";\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader?._loaded ?? 0;\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFNodeStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = this.isFsUrl\n      ? new PDFNodeStreamFsFullReader(this)\n      : new PDFNodeStreamFullReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(start, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const rangeReader = this.isFsUrl\n      ? new PDFNodeStreamFsRangeReader(this, start, end)\n      : new PDFNodeStreamRangeReader(this, start, end);\n    this._rangeRequestReaders.push(rangeReader);\n    return rangeReader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\nclass BaseFullReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    const source = stream.source;\n    this._contentLength = source.length; // optional\n    this._loaded = 0;\n    this._filename = null;\n\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._readableStream = null;\n    this._readCapability = createPromiseCapability();\n    this._headersCapability = createPromiseCapability();\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = createPromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength,\n      });\n    }\n    // Ensure that `read()` method returns ArrayBuffer.\n    const buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"end\", () => {\n      // Destroy readable to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    // We need to stop reading when range is supported and streaming is\n    // disabled.\n    if (!this._isStreamingSupported && this._isRangeSupported) {\n      this._error(new AbortException(\"streaming is disabled\"));\n    }\n\n    // Destroy ReadableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nclass BaseRangeReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    this._loaded = 0;\n    this._readableStream = null;\n    this._readCapability = createPromiseCapability();\n    const source = stream.source;\n    this._isStreamingSupported = !source.disableStream;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = createPromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    if (this.onProgress) {\n      this.onProgress({ loaded: this._loaded });\n    }\n    // Ensure that `read()` method returns ArrayBuffer.\n    const buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"end\", () => {\n      // Destroy readableStream to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    // Destroy readableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n  return {\n    protocol: parsedUrl.protocol,\n    auth: parsedUrl.auth,\n    host: parsedUrl.hostname,\n    port: parsedUrl.port,\n    path: parsedUrl.path,\n    method: \"GET\",\n    headers,\n  };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      this._headersCapability.resolve();\n      this._setReadableStream(response);\n\n      const getResponseHeader = name => {\n        // Make sure that headers name are in lower case, as mentioned\n        // here: https://nodejs.org/api/http.html#http_message_headers.\n        return this._readableStream.headers[name.toLowerCase()];\n      };\n      const { allowRangeRequests, suggestedLength } =\n        validateRangeRequestCapabilities({\n          getResponseHeader,\n          isHttp: stream.isHttp,\n          rangeChunkSize: this._rangeChunkSize,\n          disableRange: this._disableRange,\n        });\n\n      this._isRangeSupported = allowRangeRequests;\n      // Setting right content length.\n      this._contentLength = suggestedLength || this._contentLength;\n\n      this._filename = extractFilenameFromHeader(getResponseHeader);\n    };\n\n    this._request = null;\n    if (this._url.protocol === \"http:\") {\n      this._request = http.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse\n      );\n    } else {\n      this._request = https.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse\n      );\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n      this._headersCapability.reject(reason);\n    });\n    // Note: `request.end(data)` is used to write `data` to request body\n    // and notify end of request. But one should always call `request.end()`\n    // even if there is no data to write -- (to notify the end of request).\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    this._httpHeaders = {};\n    for (const property in stream.httpHeaders) {\n      const value = stream.httpHeaders[property];\n      if (typeof value === \"undefined\") {\n        continue;\n      }\n      this._httpHeaders[property] = value;\n    }\n    this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        return;\n      }\n      this._setReadableStream(response);\n    };\n\n    this._request = null;\n    if (this._url.protocol === \"http:\") {\n      this._request = http.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse\n      );\n    } else {\n      this._request = https.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse\n      );\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n    });\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    fs.lstat(path, (error, stat) => {\n      if (error) {\n        if (error.code === \"ENOENT\") {\n          error = new MissingPDFException(`Missing PDF \"${path}\".`);\n        }\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      // Setting right content length.\n      this._contentLength = stat.size;\n\n      this._setReadableStream(fs.createReadStream(path));\n      this._headersCapability.resolve();\n    });\n  }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    this._setReadableStream(fs.createReadStream(path, { start, end: end - 1 }));\n  }\n}\n\nexport { PDFNodeStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  MissingPDFException,\n  UnexpectedResponseException,\n} from \"../shared/util.js\";\nimport { getFilenameFromContentDispositionHeader } from \"./content_disposition.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\nfunction validateRangeRequestCapabilities({\n  getResponseHeader,\n  isHttp,\n  rangeChunkSize,\n  disableRange,\n}) {\n  assert(rangeChunkSize > 0, \"Range chunk size must be larger than zero\");\n  const returnValues = {\n    allowRangeRequests: false,\n    suggestedLength: undefined,\n  };\n\n  const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n  if (!Number.isInteger(length)) {\n    return returnValues;\n  }\n\n  returnValues.suggestedLength = length;\n\n  if (length <= 2 * rangeChunkSize) {\n    // The file size is smaller than the size of two chunks, so it does not\n    // make any sense to abort the request and retry with a range request.\n    return returnValues;\n  }\n\n  if (disableRange || !isHttp) {\n    return returnValues;\n  }\n  if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n    return returnValues;\n  }\n\n  const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n  if (contentEncoding !== \"identity\") {\n    return returnValues;\n  }\n\n  returnValues.allowRangeRequests = true;\n  return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n  const contentDisposition = getResponseHeader(\"Content-Disposition\");\n  if (contentDisposition) {\n    let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n    if (filename.includes(\"%\")) {\n      try {\n        filename = decodeURIComponent(filename);\n      } catch (ex) {}\n    }\n    if (isPdfFile(filename)) {\n      return filename;\n    }\n  }\n  return null;\n}\n\nfunction createResponseStatusError(status, url) {\n  if (status === 404 || (status === 0 && url.startsWith(\"file:\"))) {\n    return new MissingPDFException('Missing PDF \"' + url + '\".');\n  }\n  return new UnexpectedResponseException(\n    `Unexpected server response (${status}) while retrieving PDF \"${url}\".`,\n    status\n  );\n}\n\nfunction validateResponseStatus(status) {\n  return status === 200 || status === 206;\n}\n\nexport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToBytes } from \"../shared/util.js\";\n\n// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Support UTF-8 decoding when TextDecoder is unsupported.\n// - Move return to the end of the function to prevent Babel from dropping the\n//   function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @returns {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n  let needsEncodingFixup = true;\n\n  // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n  let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = unescape(filename);\n    filename = rfc5987decode(filename);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n  // filename*n*=part\n  // filename*n=part\n  tmp = rfc2231getparam(contentDisposition);\n  if (tmp) {\n    // RFC 2047, section\n    const filename = rfc2047decode(tmp);\n    return fixupEncoding(filename);\n  }\n\n  // filename=value (RFC 5987, section 4.1).\n  tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // After this line there are only function declarations. We cannot put\n  // \"return\" here for readability because babel would then drop the function\n  // declarations...\n  function toParamRegExp(attributePattern, flags) {\n    return new RegExp(\n      \"(?:^|;)\\\\s*\" +\n        attributePattern +\n        \"\\\\s*=\\\\s*\" +\n        // Captures: value = token | quoted-string\n        // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n        \"(\" +\n        '[^\";\\\\s][^;\\\\s]*' +\n        \"|\" +\n        '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n        \")\",\n      flags\n    );\n  }\n  function textdecode(encoding, value) {\n    if (encoding) {\n      if (!/^[\\x00-\\xFF]+$/.test(value)) {\n        return value;\n      }\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const buffer = stringToBytes(value);\n        value = decoder.decode(buffer);\n        needsEncodingFixup = false;\n      } catch (e) {\n        // TextDecoder constructor threw - unrecognized encoding.\n        // Or TextDecoder API is not available (in IE / Edge).\n        if (/^utf-?8$/i.test(encoding)) {\n          // UTF-8 is commonly used, try to support it in another way:\n          try {\n            value = decodeURIComponent(escape(value));\n            needsEncodingFixup = false;\n          } catch (err) {}\n        }\n      }\n    }\n    return value;\n  }\n  function fixupEncoding(value) {\n    if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n      // Maybe multi-byte UTF-8.\n      value = textdecode(\"utf-8\", value);\n      if (needsEncodingFixup) {\n        // Try iso-8859-1 encoding.\n        value = textdecode(\"iso-8859-1\", value);\n      }\n    }\n    return value;\n  }\n  function rfc2231getparam(contentDispositionStr) {\n    const matches = [];\n    let match;\n    // Iterate over all filename*n= and filename*n*= with n being an integer\n    // of at least zero. Any non-zero number must not start with '0'.\n    const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n    while ((match = iter.exec(contentDispositionStr)) !== null) {\n      let [, n, quot, part] = match; // eslint-disable-line prefer-const\n      n = parseInt(n, 10);\n      if (n in matches) {\n        // Ignore anything after the invalid second filename*0.\n        if (n === 0) {\n          break;\n        }\n        continue;\n      }\n      matches[n] = [quot, part];\n    }\n    const parts = [];\n    for (let n = 0; n < matches.length; ++n) {\n      if (!(n in matches)) {\n        // Numbers must be consecutive. Truncate when there is a hole.\n        break;\n      }\n      let [quot, part] = matches[n]; // eslint-disable-line prefer-const\n      part = rfc2616unquote(part);\n      if (quot) {\n        part = unescape(part);\n        if (n === 0) {\n          part = rfc5987decode(part);\n        }\n      }\n      parts.push(part);\n    }\n    return parts.join(\"\");\n  }\n  function rfc2616unquote(value) {\n    if (value.startsWith('\"')) {\n      const parts = value.slice(1).split('\\\\\"');\n      // Find the first unescaped \" and terminate there.\n      for (let i = 0; i < parts.length; ++i) {\n        const quotindex = parts[i].indexOf('\"');\n        if (quotindex !== -1) {\n          parts[i] = parts[i].slice(0, quotindex);\n          parts.length = i + 1; // Truncates and stop the iteration.\n        }\n        parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n      }\n      value = parts.join('\"');\n    }\n    return value;\n  }\n  function rfc5987decode(extvalue) {\n    // Decodes \"ext-value\" from RFC 5987.\n    const encodingend = extvalue.indexOf(\"'\");\n    if (encodingend === -1) {\n      // Some servers send \"filename*=\" without encoding 'language' prefix,\n      // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n      // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n      return extvalue;\n    }\n    const encoding = extvalue.slice(0, encodingend);\n    const langvalue = extvalue.slice(encodingend + 1);\n    // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n    const value = langvalue.replace(/^[^']*'/, \"\");\n    return textdecode(encoding, value);\n  }\n  function rfc2047decode(value) {\n    // RFC 2047-decode the result. Firefox tried to drop support for it, but\n    // backed out because some servers use it - https://bugzil.la/875615\n    // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n    // We are more strict and only recognize RFC 2047-encoding if the value\n    // starts with \"=?\", since then it is likely that the full value is\n    // RFC 2047-encoded.\n\n    // Firefox also decodes words even where RFC 2047 section 5 states:\n    // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n    if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n      return value;\n    }\n    // RFC 2047, section 2.4\n    // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n    // charset = token (but let's restrict to characters that denote a\n    //       possibly valid encoding).\n    // encoding = q or b\n    // encoded-text = any printable ASCII character other than ? or space.\n    //        ... but Firefox permits ? and space.\n    return value.replace(\n      /=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n      function (matches, charset, encoding, text) {\n        if (encoding === \"q\" || encoding === \"Q\") {\n          // RFC 2047 section 4.2.\n          text = text.replace(/_/g, \" \");\n          text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n            return String.fromCharCode(parseInt(hex, 16));\n          });\n          return textdecode(charset, text);\n        } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n        try {\n          text = atob(text);\n        } catch (e) {}\n        return textdecode(charset, text);\n      }\n    );\n  }\n\n  return \"\";\n}\n\nexport { getFilenameFromContentDispositionHeader };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  createPromiseCapability,\n  stringToBytes,\n} from \"../shared/util.js\";\nimport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./network.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n  const data = xhr.response;\n  if (typeof data !== \"string\") {\n    return data;\n  }\n  const array = stringToBytes(data);\n  return array.buffer;\n}\n\nclass NetworkManager {\n  constructor(url, args = {}) {\n    this.url = url;\n    this.isHttp = /^https?:/i.test(url);\n    this.httpHeaders = (this.isHttp && args.httpHeaders) || Object.create(null);\n    this.withCredentials = args.withCredentials || false;\n    this.getXhr =\n      args.getXhr ||\n      function NetworkManager_getXhr() {\n        return new XMLHttpRequest();\n      };\n\n    this.currXhrId = 0;\n    this.pendingRequests = Object.create(null);\n  }\n\n  requestRange(begin, end, listeners) {\n    const args = {\n      begin,\n      end,\n    };\n    for (const prop in listeners) {\n      args[prop] = listeners[prop];\n    }\n    return this.request(args);\n  }\n\n  requestFull(listeners) {\n    return this.request(listeners);\n  }\n\n  request(args) {\n    const xhr = this.getXhr();\n    const xhrId = this.currXhrId++;\n    const pendingRequest = (this.pendingRequests[xhrId] = { xhr });\n\n    xhr.open(\"GET\", this.url);\n    xhr.withCredentials = this.withCredentials;\n    for (const property in this.httpHeaders) {\n      const value = this.httpHeaders[property];\n      if (typeof value === \"undefined\") {\n        continue;\n      }\n      xhr.setRequestHeader(property, value);\n    }\n    if (this.isHttp && \"begin\" in args && \"end\" in args) {\n      xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n      pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n    } else {\n      pendingRequest.expectedStatus = OK_RESPONSE;\n    }\n    xhr.responseType = \"arraybuffer\";\n\n    if (args.onError) {\n      xhr.onerror = function (evt) {\n        args.onError(xhr.status);\n      };\n    }\n    xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n    xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n    pendingRequest.onHeadersReceived = args.onHeadersReceived;\n    pendingRequest.onDone = args.onDone;\n    pendingRequest.onError = args.onError;\n    pendingRequest.onProgress = args.onProgress;\n\n    xhr.send(null);\n\n    return xhrId;\n  }\n\n  onProgress(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      return; // Maybe abortRequest was called...\n    }\n    pendingRequest.onProgress?.(evt);\n  }\n\n  onStateChange(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      return; // Maybe abortRequest was called...\n    }\n\n    const xhr = pendingRequest.xhr;\n    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n      pendingRequest.onHeadersReceived();\n      delete pendingRequest.onHeadersReceived;\n    }\n\n    if (xhr.readyState !== 4) {\n      return;\n    }\n\n    if (!(xhrId in this.pendingRequests)) {\n      // The XHR request might have been aborted in onHeadersReceived()\n      // callback, in which case we should abort request.\n      return;\n    }\n\n    delete this.pendingRequests[xhrId];\n\n    // Success status == 0 can be on ftp, file and other protocols.\n    if (xhr.status === 0 && this.isHttp) {\n      pendingRequest.onError?.(xhr.status);\n      return;\n    }\n    const xhrStatus = xhr.status || OK_RESPONSE;\n\n    // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n    // \"A server MAY ignore the Range header\". This means it's possible to\n    // get a 200 rather than a 206 response from a range request.\n    const ok_response_on_range_request =\n      xhrStatus === OK_RESPONSE &&\n      pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n    if (\n      !ok_response_on_range_request &&\n      xhrStatus !== pendingRequest.expectedStatus\n    ) {\n      pendingRequest.onError?.(xhr.status);\n      return;\n    }\n\n    const chunk = getArrayBuffer(xhr);\n    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n      const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n      const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n      pendingRequest.onDone({\n        begin: parseInt(matches[1], 10),\n        chunk,\n      });\n    } else if (chunk) {\n      pendingRequest.onDone({\n        begin: 0,\n        chunk,\n      });\n    } else {\n      pendingRequest.onError?.(xhr.status);\n    }\n  }\n\n  getRequestXhr(xhrId) {\n    return this.pendingRequests[xhrId].xhr;\n  }\n\n  isPendingRequest(xhrId) {\n    return xhrId in this.pendingRequests;\n  }\n\n  abortRequest(xhrId) {\n    const xhr = this.pendingRequests[xhrId].xhr;\n    delete this.pendingRequests[xhrId];\n    xhr.abort();\n  }\n}\n\n/** @implements {IPDFStream} */\nclass PDFNetworkStream {\n  constructor(source) {\n    this._source = source;\n    this._manager = new NetworkManager(source.url, {\n      httpHeaders: source.httpHeaders,\n      withCredentials: source.withCredentials,\n    });\n    this._rangeChunkSize = source.rangeChunkSize;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  _onRangeRequestReaderClosed(reader) {\n    const i = this._rangeRequestReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeRequestReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFNetworkStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFNetworkStreamFullRequestReader(\n      this._manager,\n      this._source\n    );\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFNetworkStreamRangeRequestReader(\n      this._manager,\n      begin,\n      end\n    );\n    reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    this._fullRequestReader?.cancel(reason);\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFNetworkStreamFullRequestReader {\n  constructor(manager, source) {\n    this._manager = manager;\n\n    const args = {\n      onHeadersReceived: this._onHeadersReceived.bind(this),\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this),\n    };\n    this._url = source.url;\n    this._fullRequestId = manager.requestFull(args);\n    this._headersReceivedCapability = createPromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._contentLength = source.length; // Optional\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = false;\n    this._isRangeSupported = false;\n\n    this._cachedChunks = [];\n    this._requests = [];\n    this._done = false;\n    this._storedError = undefined;\n    this._filename = null;\n\n    this.onProgress = null;\n  }\n\n  _onHeadersReceived() {\n    const fullRequestXhrId = this._fullRequestId;\n    const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n    const getResponseHeader = name => {\n      return fullRequestXhr.getResponseHeader(name);\n    };\n    const { allowRangeRequests, suggestedLength } =\n      validateRangeRequestCapabilities({\n        getResponseHeader,\n        isHttp: this._manager.isHttp,\n        rangeChunkSize: this._rangeChunkSize,\n        disableRange: this._disableRange,\n      });\n\n    if (allowRangeRequests) {\n      this._isRangeSupported = true;\n    }\n    // Setting right content length.\n    this._contentLength = suggestedLength || this._contentLength;\n\n    this._filename = extractFilenameFromHeader(getResponseHeader);\n\n    if (this._isRangeSupported) {\n      // NOTE: by cancelling the full request, and then issuing range\n      // requests, there will be an issue for sites where you can only\n      // request the pdf once. However, if this is the case, then the\n      // server should not be returning that it can support range requests.\n      this._manager.abortRequest(fullRequestXhrId);\n    }\n\n    this._headersReceivedCapability.resolve();\n  }\n\n  _onDone(data) {\n    if (data) {\n      if (this._requests.length > 0) {\n        const requestCapability = this._requests.shift();\n        requestCapability.resolve({ value: data.chunk, done: false });\n      } else {\n        this._cachedChunks.push(data.chunk);\n      }\n    }\n    this._done = true;\n    if (this._cachedChunks.length > 0) {\n      return;\n    }\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n  }\n\n  _onError(status) {\n    this._storedError = createResponseStatusError(status, this._url);\n    this._headersReceivedCapability.reject(this._storedError);\n    for (const requestCapability of this._requests) {\n      requestCapability.reject(this._storedError);\n    }\n    this._requests.length = 0;\n    this._cachedChunks.length = 0;\n  }\n\n  _onProgress(evt) {\n    this.onProgress?.({\n      loaded: evt.loaded,\n      total: evt.lengthComputable ? evt.total : this._contentLength,\n    });\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get headersReady() {\n    return this._headersReceivedCapability.promise;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._cachedChunks.length > 0) {\n      const chunk = this._cachedChunks.shift();\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    this._headersReceivedCapability.reject(reason);\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    if (this._manager.isPendingRequest(this._fullRequestId)) {\n      this._manager.abortRequest(this._fullRequestId);\n    }\n    this._fullRequestReader = null;\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFNetworkStreamRangeRequestReader {\n  constructor(manager, begin, end) {\n    this._manager = manager;\n\n    const args = {\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this),\n    };\n    this._url = manager.url;\n    this._requestId = manager.requestRange(begin, end, args);\n    this._requests = [];\n    this._queuedChunk = null;\n    this._done = false;\n    this._storedError = undefined;\n\n    this.onProgress = null;\n    this.onClosed = null;\n  }\n\n  _close() {\n    this.onClosed?.(this);\n  }\n\n  _onDone(data) {\n    const chunk = data.chunk;\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false });\n    } else {\n      this._queuedChunk = chunk;\n    }\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    this._close();\n  }\n\n  _onError(status) {\n    this._storedError = createResponseStatusError(status, this._url);\n    for (const requestCapability of this._requests) {\n      requestCapability.reject(this._storedError);\n    }\n    this._requests.length = 0;\n    this._queuedChunk = null;\n  }\n\n  _onProgress(evt) {\n    if (!this.isStreamingSupported) {\n      this.onProgress?.({ loaded: evt.loaded });\n    }\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._queuedChunk !== null) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    if (this._manager.isPendingRequest(this._requestId)) {\n      this._manager.abortRequest(this._requestId);\n    }\n    this._close();\n  }\n}\n\nexport { PDFNetworkStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  createPromiseCapability,\n} from \"../shared/util.js\";\nimport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./fetch_stream.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n  return {\n    method: \"GET\",\n    headers,\n    signal: abortController?.signal,\n    mode: \"cors\",\n    credentials: withCredentials ? \"include\" : \"same-origin\",\n    redirect: \"follow\",\n  };\n}\n\nfunction createHeaders(httpHeaders) {\n  const headers = new Headers();\n  for (const property in httpHeaders) {\n    const value = httpHeaders[property];\n    if (typeof value === \"undefined\") {\n      continue;\n    }\n    headers.append(property, value);\n  }\n  return headers;\n}\n\n/** @implements {IPDFStream} */\nclass PDFFetchStream {\n  constructor(source) {\n    this.source = source;\n    this.isHttp = /^https?:/i.test(source.url);\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader?._loaded ?? 0;\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFFetchStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFFetchStreamReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new PDFFetchStreamRangeReader(this, begin, end);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFFetchStreamReader {\n  constructor(stream) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    this._filename = null;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._contentLength = source.length;\n    this._headersCapability = createPromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    if (typeof AbortController !== \"undefined\") {\n      this._abortController = new AbortController();\n    }\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._headers = createHeaders(this._stream.httpHeaders);\n\n    const url = source.url;\n    fetch(\n      url,\n      createFetchOptions(\n        this._headers,\n        this._withCredentials,\n        this._abortController\n      )\n    )\n      .then(response => {\n        if (!validateResponseStatus(response.status)) {\n          throw createResponseStatusError(response.status, url);\n        }\n        this._reader = response.body.getReader();\n        this._headersCapability.resolve();\n\n        const getResponseHeader = name => {\n          return response.headers.get(name);\n        };\n        const { allowRangeRequests, suggestedLength } =\n          validateRangeRequestCapabilities({\n            getResponseHeader,\n            isHttp: this._stream.isHttp,\n            rangeChunkSize: this._rangeChunkSize,\n            disableRange: this._disableRange,\n          });\n\n        this._isRangeSupported = allowRangeRequests;\n        // Setting right content length.\n        this._contentLength = suggestedLength || this._contentLength;\n\n        this._filename = extractFilenameFromHeader(getResponseHeader);\n\n        // We need to stop reading when range is supported and streaming is\n        // disabled.\n        if (!this._isStreamingSupported && this._isRangeSupported) {\n          this.cancel(new AbortException(\"Streaming is disabled.\"));\n        }\n      })\n      .catch(this._headersCapability.reject);\n\n    this.onProgress = null;\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._headersCapability.promise;\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value, done };\n    }\n    this._loaded += value.byteLength;\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength,\n      });\n    }\n    const buffer = new Uint8Array(value).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n    if (this._abortController) {\n      this._abortController.abort();\n    }\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFFetchStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._readCapability = createPromiseCapability();\n    this._isStreamingSupported = !source.disableStream;\n\n    if (typeof AbortController !== \"undefined\") {\n      this._abortController = new AbortController();\n    }\n\n    this._headers = createHeaders(this._stream.httpHeaders);\n    this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n    const url = source.url;\n    fetch(\n      url,\n      createFetchOptions(\n        this._headers,\n        this._withCredentials,\n        this._abortController\n      )\n    )\n      .then(response => {\n        if (!validateResponseStatus(response.status)) {\n          throw createResponseStatusError(response.status, url);\n        }\n        this._readCapability.resolve();\n        this._reader = response.body.getReader();\n      })\n      .catch(this._readCapability.reject);\n\n    this.onProgress = null;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value, done };\n    }\n    this._loaded += value.byteLength;\n    if (this.onProgress) {\n      this.onProgress({ loaded: this._loaded });\n    }\n    const buffer = new Uint8Array(value).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n    if (this._abortController) {\n      this._abortController.abort();\n    }\n  }\n}\n\nexport { PDFFetchStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_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, __w_pdfjs_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","__w_pdfjs_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable sort-exports/sort-exports */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/api\").PDFDocumentLoadingTask} PDFDocumentLoadingTask */\n/** @typedef {import(\"./display/api\").PDFDocumentProxy} PDFDocumentProxy */\n/** @typedef {import(\"./display/api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display/api\").RenderTask} RenderTask */\n\nimport {\n  addLinkAttributes,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getXfaPageViewport,\n  isPdfFile,\n  isValidFetchUrl,\n  LinkTarget,\n  loadScript,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n} from \"./display/display_utils.js\";\nimport {\n  AnnotationMode,\n  CMapCompressionType,\n  createObjectURL,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  InvalidPDFException,\n  MissingPDFException,\n  OPS,\n  PasswordResponses,\n  PermissionFlag,\n  removeNullCharacters,\n  shadow,\n  UnexpectedResponseException,\n  UNSUPPORTED_FEATURES,\n  Util,\n  VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n  build,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFWorker,\n  setPDFNetworkStreamFactory,\n  version,\n} from \"./display/api.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { isNodeJS } from \"./shared/is_node.js\";\nimport { renderTextLayer } from \"./display/text_layer.js\";\nimport { SVGGraphics } from \"./display/svg.js\";\nimport { XfaLayer } from \"./display/xfa_layer.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nif (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n  const streamsPromise = Promise.all([\n    import(\"pdfjs/display/network.js\"),\n    import(\"pdfjs/display/fetch_stream.js\"),\n  ]);\n\n  setPDFNetworkStreamFactory(async params => {\n    const [{ PDFNetworkStream }, { PDFFetchStream }] = await streamsPromise;\n    if (isValidFetchUrl(params.url)) {\n      return new PDFFetchStream(params);\n    }\n    return new PDFNetworkStream(params);\n  });\n} else if (PDFJSDev.test(\"GENERIC || CHROME\")) {\n  if (PDFJSDev.test(\"GENERIC\") && isNodeJS) {\n    const { PDFNodeStream } = require(\"./display/node_stream.js\");\n\n    setPDFNetworkStreamFactory(params => {\n      return new PDFNodeStream(params);\n    });\n  } else {\n    const { PDFNetworkStream } = require(\"./display/network.js\");\n    const { PDFFetchStream } = require(\"./display/fetch_stream.js\");\n\n    setPDFNetworkStreamFactory(params => {\n      if (isValidFetchUrl(params.url)) {\n        return new PDFFetchStream(params);\n      }\n      return new PDFNetworkStream(params);\n    });\n  }\n}\n\nexport {\n  // From \"./display/display_utils.js\":\n  addLinkAttributes,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  isPdfFile,\n  LinkTarget,\n  loadScript,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n  getXfaPageViewport,\n  // From \"./shared/util.js\":\n  AnnotationMode,\n  CMapCompressionType,\n  createObjectURL,\n  createPromiseCapability,\n  createValidAbsoluteUrl,\n  InvalidPDFException,\n  MissingPDFException,\n  OPS,\n  PasswordResponses,\n  PermissionFlag,\n  removeNullCharacters,\n  shadow,\n  UnexpectedResponseException,\n  UNSUPPORTED_FEATURES,\n  Util,\n  VerbosityLevel,\n  // From \"./display/api.js\":\n  build,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFWorker,\n  version,\n  // From \"./display/annotation_layer.js\":\n  AnnotationLayer,\n  // From \"./display/worker_options.js\":\n  GlobalWorkerOptions,\n  // From \"./display/text_layer.js\":\n  renderTextLayer,\n  // From \"./display/svg.js\":\n  SVGGraphics,\n  // From \"./display/xfa_layer.js\":\n  XfaLayer,\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n  for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n    validators[_key] = arguments[_key];\n  }\n\n  function allPropTypes() {\n    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    var error = null;\n\n    validators.forEach(function (validator) {\n      if (error != null) {\n        return;\n      }\n\n      var result = validator.apply(undefined, args);\n      if (result != null) {\n        error = result;\n      }\n    });\n\n    return error;\n  }\n\n  return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    var componentNameSafe = componentName || '<<anonymous>>';\n    var propFullNameSafe = propFullName || propName;\n\n    if (props[propName] == null) {\n      if (isRequired) {\n        return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n      }\n\n      return null;\n    }\n\n    for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n      args[_key - 6] = arguments[_key];\n    }\n\n    return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>\n */\n'use strict'\n\nfunction Cache(maxSize) {\n  this._maxSize = maxSize\n  this.clear()\n}\nCache.prototype.clear = function () {\n  this._size = 0\n  this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n  return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n  this._size >= this._maxSize && this.clear()\n  if (!(key in this._values)) this._size++\n\n  return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n  DIGIT_REGEX = /^\\d+$/,\n  LEAD_DIGIT_REGEX = /^\\d/,\n  SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n  CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n  MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n  setCache = new Cache(MAX_CACHE_SIZE),\n  getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n  Cache: Cache,\n\n  split: split,\n\n  normalizePath: normalizePath,\n\n  setter: function (path) {\n    var parts = normalizePath(path)\n\n    return (\n      setCache.get(path) ||\n      setCache.set(path, function setter(obj, value) {\n        var index = 0\n        var len = parts.length\n        var data = obj\n\n        while (index < len - 1) {\n          var part = parts[index]\n          if (\n            part === '__proto__' ||\n            part === 'constructor' ||\n            part === 'prototype'\n          ) {\n            return obj\n          }\n\n          data = data[parts[index++]]\n        }\n        data[parts[index]] = value\n      })\n    )\n  },\n\n  getter: function (path, safe) {\n    var parts = normalizePath(path)\n    return (\n      getCache.get(path) ||\n      getCache.set(path, function getter(data) {\n        var index = 0,\n          len = parts.length\n        while (index < len) {\n          if (data != null || !safe) data = data[parts[index++]]\n          else return\n        }\n        return data\n      })\n    )\n  },\n\n  join: function (segments) {\n    return segments.reduce(function (path, part) {\n      return (\n        path +\n        (isQuoted(part) || DIGIT_REGEX.test(part)\n          ? '[' + part + ']'\n          : (path ? '.' : '') + part)\n      )\n    }, '')\n  },\n\n  forEach: function (path, cb, thisArg) {\n    forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n  },\n}\n\nfunction normalizePath(path) {\n  return (\n    pathCache.get(path) ||\n    pathCache.set(\n      path,\n      split(path).map(function (part) {\n        return part.replace(CLEAN_QUOTES_REGEX, '$2')\n      })\n    )\n  )\n}\n\nfunction split(path) {\n  return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n  var len = parts.length,\n    part,\n    idx,\n    isArray,\n    isBracket\n\n  for (idx = 0; idx < len; idx++) {\n    part = parts[idx]\n\n    if (part) {\n      if (shouldBeQuoted(part)) {\n        part = '\"' + part + '\"'\n      }\n\n      isBracket = isQuoted(part)\n      isArray = !isBracket && /^\\d+$/.test(part)\n\n      iter.call(thisArg, part, isBracket, isArray, idx, parts)\n    }\n  }\n}\n\nfunction isQuoted(str) {\n  return (\n    typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n  )\n}\n\nfunction hasLeadingNumber(part) {\n  return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n  return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n  return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_createClass=function(){function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}}(),_apexcharts=require(\"apexcharts/dist/apexcharts.common\"),_apexcharts2=_interopRequireDefault(_apexcharts),_react=require(\"react\"),_react2=_interopRequireDefault(_react),_propTypes=require(\"prop-types\"),_propTypes2=_interopRequireDefault(_propTypes);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _objectWithoutProperties(e,t){var r={};for(var n in e)0<=t.indexOf(n)||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}window.ApexCharts=_apexcharts2.default;var Charts=function(){function r(e){_classCallCheck(this,r);var t=_possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e));return _react2.default.createRef?t.chartRef=_react2.default.createRef():t.setRef=function(e){return t.chartRef=e},t.chart=null,t}return _inherits(r,_react.Component),_createClass(r,[{key:\"render\",value:function(){var e=this.props,t=(e.type,e.height,e.width,e.series,e.options,_objectWithoutProperties(e,[\"type\",\"height\",\"width\",\"series\",\"options\"]));return _react2.default.createElement(\"div\",_extends({ref:_react2.default.createRef?this.chartRef:this.setRef},t))}},{key:\"componentDidMount\",value:function(){var e=_react2.default.createRef?this.chartRef.current:this.chartRef;this.chart=new _apexcharts2.default(e,this.getConfig()),this.chart.render()}},{key:\"getConfig\",value:function(){var e=this.props,t=e.type,r=e.height,n=e.width,o=e.series,i=e.options,a={chart:{type:t,height:r,width:n},series:o};return this.extend(i,a)}},{key:\"isObject\",value:function(e){return e&&\"object\"===(void 0===e?\"undefined\":_typeof(e))&&!Array.isArray(e)&&null!=e}},{key:\"extend\",value:function(t,r){var n=this;\"function\"!=typeof Object.assign&&(Object.assign=function(e){if(null==e)throw new TypeError(\"Cannot convert undefined or null to object\");for(var t=Object(e),r=1;r<arguments.length;r++){var n=arguments[r];if(null!=n)for(var o in n)n.hasOwnProperty(o)&&(t[o]=n[o])}return t});var o=Object.assign({},t);return this.isObject(t)&&this.isObject(r)&&Object.keys(r).forEach(function(e){n.isObject(r[e])&&e in t?o[e]=n.extend(t[e],r[e]):Object.assign(o,_defineProperty({},e,r[e]))}),o}},{key:\"componentDidUpdate\",value:function(e){if(!this.chart)return null;var t=this.props,r=t.options,n=t.series,o=t.height,i=t.width,a=JSON.stringify(e.options),s=JSON.stringify(e.series),c=JSON.stringify(r),u=JSON.stringify(n);a===c&&s===u&&o===e.height&&i===e.width||(s===u?this.chart.updateOptions(this.getConfig()):a===c&&o===e.height&&i===e.width?this.chart.updateSeries(n):this.chart.updateOptions(this.getConfig()))}},{key:\"componentWillUnmount\",value:function(){this.chart&&\"function\"==typeof this.chart.destroy&&this.chart.destroy()}}]),r}();(exports.default=Charts).propTypes={type:_propTypes2.default.string.isRequired,width:_propTypes2.default.any,height:_propTypes2.default.any,series:_propTypes2.default.array.isRequired,options:_propTypes2.default.object.isRequired},Charts.defaultProps={type:\"line\",width:\"100%\",height:\"auto\"};","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addYears\"),require(\"date-fns/subMinutes\"),require(\"date-fns/subHours\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarWeeks\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addYears\",\"date-fns/subMinutes\",\"date-fns/subHours\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarWeeks\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addYears,null,null,e.subDays,e.subWeeks,e.subMonths,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,null,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,null,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper)}(this,(function(e,t,r,a,n,o,s,i,p,l,d,c,u,f,h,m,y,v,D,w,g,k,b,S,C,_,M,P,E,N,O,Y,x,I,T,L,R,F,A,q,W,B,K,H,j,Q,V,U,$,z,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe){\"use strict\";function le(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=le(t),ce=le(a),ue=le(n),fe=le(o),he=le(s),me=le(i),ye=le(p),ve=le(l),De=le(d),we=le(c),ge=le(u),ke=le(m),be=le(y),Se=le(v),Ce=le(D),_e=le(w),Me=le(g),Pe=le(k),Ee=le(b),Ne=le(S),Oe=le(C),Ye=le(_),xe=le(M),Ie=le(P),Te=le(E),Le=le(N),Re=le(O),Fe=le(Y),Ae=le(x),qe=le(I),We=le(T),Be=le(L),Ke=le(R),He=le(F),je=le(A),Qe=le(W),Ve=le(B),Ue=le(K),$e=le(H),ze=le(j),Ge=le(Q),Je=le(V),Xe=le(z),Ze=le(G),et=le(J),tt=le(X),rt=le(Z),at=le(ee),nt=le(te),ot=le(re),st=le(ae),it=le(ne),pt=le(oe),lt=le(se),dt=le(ie);function ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function ut(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ct(Object(r),!0).forEach((function(t){vt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ct(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ft(e){return(ft=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function ht(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function mt(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function yt(e,t,r){return t&&mt(e.prototype,t),r&&mt(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function vt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Dt(){return(Dt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}function wt(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");Object.defineProperty(e,\"prototype\",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&kt(e,t)}function gt(e){return(gt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function kt(e,t){return(kt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function bt(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function St(e,t){if(t&&(\"object\"==typeof t||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return bt(e)}function Ct(e){var t=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,a=gt(e);if(t){var n=gt(this).constructor;r=Reflect.construct(a,arguments,n)}else r=a.apply(this,arguments);return St(this,r)}}function _t(e){return function(e){if(Array.isArray(e))return Mt(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return Mt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===r&&e.constructor&&(r=e.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(e);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Mt(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Mt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}function Pt(e,t){switch(e){case\"P\":return t.date({width:\"short\"});case\"PP\":return t.date({width:\"medium\"});case\"PPP\":return t.date({width:\"long\"});case\"PPPP\":default:return t.date({width:\"full\"})}}function Et(e,t){switch(e){case\"p\":return t.time({width:\"short\"});case\"pp\":return t.time({width:\"medium\"});case\"ppp\":return t.time({width:\"long\"});case\"pppp\":default:return t.time({width:\"full\"})}}var Nt={p:Et,P:function(e,t){var r,a=e.match(/(P+)(p+)?/)||[],n=a[1],o=a[2];if(!o)return Pt(e,t);switch(n){case\"P\":r=t.dateTime({width:\"short\"});break;case\"PP\":r=t.dateTime({width:\"medium\"});break;case\"PPP\":r=t.dateTime({width:\"long\"});break;case\"PPPP\":default:r=t.dateTime({width:\"full\"})}return r.replace(\"{{date}}\",Pt(n,t)).replace(\"{{time}}\",Et(o,t))}},Ot=12,Yt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;function xt(e){var t=e?\"string\"==typeof e||e instanceof String?pt.default(e):st.default(e):new Date;return Tt(t)?t:null}function It(e,t,r,a,n){var o=null,s=Xt(r)||Xt(Jt()),i=!0;return Array.isArray(t)?(t.forEach((function(t){var r=it.default(e,t,new Date,{locale:s});a&&(i=Tt(r,n)&&e===he.default(r,t,{awareOfUnicodeTokens:!0})),Tt(r,n)&&i&&(o=r)})),o):(o=it.default(e,t,new Date,{locale:s}),a?i=Tt(o)&&e===he.default(o,t,{awareOfUnicodeTokens:!0}):Tt(o)||(t=t.match(Yt).map((function(e){var t=e[0];return\"p\"===t||\"P\"===t?s?(0,Nt[t])(e,s.formatLong):t:e})).join(\"\"),e.length>0&&(o=it.default(e,t.slice(0,e.length),new Date)),Tt(o)||(o=new Date(e))),Tt(o)&&i?o:null)}function Tt(e,t){return t=t||new Date(\"1/1/1000\"),fe.default(e)&&!nt.default(e,t)}function Lt(e,t,r){if(\"en\"===r)return he.default(e,t,{awareOfUnicodeTokens:!0});var a=Xt(r);return r&&!a&&console.warn('A locale object was not found for the provided string [\"'.concat(r,'\"].')),!a&&Jt()&&Xt(Jt())&&(a=Xt(Jt())),he.default(e,t,{locale:a||null,awareOfUnicodeTokens:!0})}function Rt(e,t){var r=t.dateFormat,a=t.locale;return e&&Lt(e,Array.isArray(r)?r[0]:r,a)||\"\"}function Ft(e,t){var r=t.hour,a=void 0===r?0:r,n=t.minute,o=void 0===n?0:n,s=t.second,i=void 0===s?0:s;return Fe.default(Re.default(Le.default(e,i),o),a)}function At(e,t){var r=t&&Xt(t)||Jt()&&Xt(Jt());return Oe.default(e,r?{locale:r}:null)}function qt(e,t){return Lt(e,\"ddd\",t)}function Wt(e){return Ve.default(e)}function Bt(e,t,r){var a=Xt(t||Jt());return Ue.default(e,{locale:a,weekStartsOn:r})}function Kt(e){return $e.default(e)}function Ht(e){return Ge.default(e)}function jt(e){return ze.default(e)}function Qt(e,t){return e&&t?tt.default(e,t):!e&&!t}function Vt(e,t){return e&&t?et.default(e,t):!e&&!t}function Ut(e,t){return e&&t?rt.default(e,t):!e&&!t}function $t(e,t){return e&&t?Ze.default(e,t):!e&&!t}function zt(e,t){return e&&t?Xe.default(e,t):!e&&!t}function Gt(e,t,r){var a,n=Ve.default(t),o=Je.default(r);try{a=ot.default(e,{start:n,end:o})}catch(e){a=!1}return a}function Jt(){return(\"undefined\"!=typeof window?window:global).__localeId__}function Xt(e){if(\"string\"==typeof e){var t=\"undefined\"!=typeof window?window:global;return t.__localeData__?t.__localeData__[e]:null}return e}function Zt(e,t){return Lt(Ae.default(xt(),e),\"LLLL\",t)}function er(e,t){return Lt(Ae.default(xt(),e),\"LLL\",t)}function tr(e,t){return Lt(qe.default(xt(),e),\"QQQ\",t)}function rr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return $t(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return $t(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})}))||p&&!p(xt(e))||!1}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})})):r&&r.some((function(t){return $t(e,t)}))||!1}function nr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Vt(e,t)}))||o&&!o.some((function(t){return Vt(e,t)}))||s&&!s(xt(e))||!1}function or(e,t,r,a){var n=Ie.default(e),o=Ye.default(e),s=Ie.default(t),i=Ye.default(t),p=Ie.default(a);return n===s&&n===p?o<=r&&r<=i:n<s?p===n&&o<=r||p===s&&i>=r||p<s&&p>n:void 0}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Ut(e,t)}))||o&&!o.some((function(t){return Ut(e,t)}))||s&&!s(xt(e))||!1}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=new Date(e,0,1);return lr(n,{minDate:r,maxDate:a})||!1}function pr(e,t,r,a){var n=Ie.default(e),o=xe.default(e),s=Ie.default(t),i=xe.default(t),p=Ie.default(a);return n===s&&n===p?o<=r&&r<=i:n<s?p===n&&o<=r||p===s&&i>=r||p<s&&p>n:void 0}function lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&He.default(e,r)<0||a&&He.default(e,a)>0}function dr(e,t){return t.some((function(t){return Pe.default(t)===Pe.default(e)&&Me.default(t)===Me.default(e)}))}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&dr(e,r)||a&&!dr(e,a)||n&&!n(e)||!1}function ur(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=xt(),s=Fe.default(Re.default(o,Me.default(e)),Pe.default(e)),i=Fe.default(Re.default(o,Me.default(r)),Pe.default(r)),p=Fe.default(Re.default(o,Me.default(a)),Pe.default(a));try{n=!ot.default(s,{start:i,end:p})}catch(e){n=!1}return n}function fr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Se.default(e,1);return r&&je.default(r,n)>0||a&&a.every((function(e){return je.default(e,n)>0}))||!1}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=we.default(e,1);return r&&je.default(n,r)>0||a&&a.every((function(e){return je.default(n,e)>0}))||!1}function mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Ce.default(e,1);return r&&Qe.default(r,n)>0||a&&a.every((function(e){return Qe.default(e,n)>0}))||!1}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ge.default(e,1);return r&&Qe.default(n,r)>0||a&&a.every((function(e){return Qe.default(n,e)>0}))||!1}function vr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return He.default(e,t)>=0}));return Be.default(a)}return r?Be.default(r):t}function Dr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return He.default(e,t)<=0}));return Ke.default(a)}return r?Ke.default(r):t}function wr(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a<n;a++){var o=e[a];if(ue.default(o)){var s=Lt(o,\"MM.dd.yyyy\"),i=r.get(s)||[];i.includes(t)||(i.push(t),r.set(s,i))}else if(\"object\"===ft(o)){var p=Object.keys(o),l=p[0],d=o[p[0]];if(\"string\"==typeof l&&d.constructor===Array)for(var c=0,u=d.length;c<u;c++){var f=Lt(d[c],\"MM.dd.yyyy\"),h=r.get(f)||[];h.includes(l)||(h.push(l),r.set(f,h))}}}return r}function gr(e,t,r,a,n){for(var o=n.length,s=[],i=0;i<o;i++){var p=me.default(ye.default(e,Pe.default(n[i])),Me.default(n[i])),l=me.default(e,(r+1)*a);at.default(p,t)&&nt.default(p,l)&&s.push(n[i])}return s}function kr(e){return e<10?\"0\".concat(e):\"\".concat(e)}function br(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ot,r=Math.ceil(Ie.default(e)/t)*t,a=r-(t-1);return{startPeriod:a,endPeriod:r}}function Sr(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Ie.default(r)<=s),a&&i&&(i=Ie.default(a)>=s),i&&n.push(s)}return n}var Cr=function(e){wt(a,e);var r=Ct(a);function a(e){var n;ht(this,a),vt(bt(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(bt(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Ie.default(n.props.minDate):null,a=n.props.maxDate?Ie.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),vt(bt(n),\"onChange\",(function(e){n.props.onChange(e)})),vt(bt(n),\"handleClickOutside\",(function(){n.props.onCancel()})),vt(bt(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),vt(bt(n),\"incrementYears\",(function(){return n.shiftYears(1)})),vt(bt(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Sr(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return yt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;e&&(e.scrollTop=e.scrollHeight/2-e.clientHeight/2)}},{key:\"render\",value:function(){var e=ce.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),_r=lt.default(Cr),Mr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"state\",{dropdownVisible:!1}),vt(bt(e),\"renderSelectOptions\",(function(){for(var t=e.props.minDate?Ie.default(e.props.minDate):1900,r=e.props.maxDate?Ie.default(e.props.maxDate):2100,a=[],n=t;n<=r;n++)a.push(de.default.createElement(\"option\",{key:n,value:n},n));return a})),vt(bt(e),\"onSelectChange\",(function(t){e.onChange(t.target.value)})),vt(bt(e),\"renderSelectMode\",(function(){return de.default.createElement(\"select\",{value:e.props.year,className:\"react-datepicker__year-select\",onChange:e.onSelectChange},e.renderSelectOptions())})),vt(bt(e),\"renderReadView\",(function(t){return de.default.createElement(\"div\",{key:\"read\",style:{visibility:t?\"visible\":\"hidden\"},className:\"react-datepicker__year-read-view\",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement(\"span\",{className:\"react-datepicker__year-read-view--down-arrow\"}),de.default.createElement(\"span\",{className:\"react-datepicker__year-read-view--selected-year\"},e.props.year))})),vt(bt(e),\"renderDropdown\",(function(){return de.default.createElement(_r,{key:\"dropdown\",year:e.props.year,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableYearDropdown:e.props.scrollableYearDropdown,yearDropdownItemNumber:e.props.yearDropdownItemNumber})})),vt(bt(e),\"renderScrollMode\",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),vt(bt(e),\"onChange\",(function(t){e.toggleDropdown(),t!==e.props.year&&e.props.onChange(t)})),vt(bt(e),\"toggleDropdown\",(function(t){e.setState({dropdownVisible:!e.state.dropdownVisible},(function(){e.props.adjustDateOnChange&&e.handleYearChange(e.props.date,t)}))})),vt(bt(e),\"handleYearChange\",(function(t,r){e.onSelect(t,r),e.setOpen()})),vt(bt(e),\"onSelect\",(function(t,r){e.props.onSelect&&e.props.onSelect(t,r)})),vt(bt(e),\"setOpen\",(function(){e.props.setOpen&&e.props.setOpen(!0)})),e}return yt(r,[{key:\"render\",value:function(){var e;switch(this.props.dropdownMode){case\"scroll\":e=this.renderScrollMode();break;case\"select\":e=this.renderSelectMode()}return de.default.createElement(\"div\",{className:\"react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--\".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),Pr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"isSelectedMonth\",(function(t){return e.props.month===t})),vt(bt(e),\"renderOptions\",(function(){return e.props.monthNames.map((function(t,r){return de.default.createElement(\"div\",{className:e.isSelectedMonth(r)?\"react-datepicker__month-option react-datepicker__month-option--selected_month\":\"react-datepicker__month-option\",key:t,onClick:e.onChange.bind(bt(e),r),\"aria-selected\":e.isSelectedMonth(r)?\"true\":void 0},e.isSelectedMonth(r)?de.default.createElement(\"span\",{className:\"react-datepicker__month-option--selected\"},\"✓\"):\"\",t)}))})),vt(bt(e),\"onChange\",(function(t){return e.props.onChange(t)})),vt(bt(e),\"handleClickOutside\",(function(){return e.props.onCancel()})),e}return yt(r,[{key:\"render\",value:function(){return de.default.createElement(\"div\",{className:\"react-datepicker__month-dropdown\"},this.renderOptions())}}]),r}(de.default.Component),Er=lt.default(Pr),Nr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"state\",{dropdownVisible:!1}),vt(bt(e),\"renderSelectOptions\",(function(e){return e.map((function(e,t){return de.default.createElement(\"option\",{key:t,value:t},e)}))})),vt(bt(e),\"renderSelectMode\",(function(t){return de.default.createElement(\"select\",{value:e.props.month,className:\"react-datepicker__month-select\",onChange:function(t){return e.onChange(t.target.value)}},e.renderSelectOptions(t))})),vt(bt(e),\"renderReadView\",(function(t,r){return de.default.createElement(\"div\",{key:\"read\",style:{visibility:t?\"visible\":\"hidden\"},className:\"react-datepicker__month-read-view\",onClick:e.toggleDropdown},de.default.createElement(\"span\",{className:\"react-datepicker__month-read-view--down-arrow\"}),de.default.createElement(\"span\",{className:\"react-datepicker__month-read-view--selected-month\"},r[e.props.month]))})),vt(bt(e),\"renderDropdown\",(function(t){return de.default.createElement(Er,{key:\"dropdown\",month:e.props.month,monthNames:t,onChange:e.onChange,onCancel:e.toggleDropdown})})),vt(bt(e),\"renderScrollMode\",(function(t){var r=e.state.dropdownVisible,a=[e.renderReadView(!r,t)];return r&&a.unshift(e.renderDropdown(t)),a})),vt(bt(e),\"onChange\",(function(t){e.toggleDropdown(),t!==e.props.month&&e.props.onChange(t)})),vt(bt(e),\"toggleDropdown\",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return yt(r,[{key:\"render\",value:function(){var e,t=this,r=[0,1,2,3,4,5,6,7,8,9,10,11].map(this.props.useShortMonthInDropdown?function(e){return er(e,t.props.locale)}:function(e){return Zt(e,t.props.locale)});switch(this.props.dropdownMode){case\"scroll\":e=this.renderScrollMode(r);break;case\"select\":e=this.renderSelectMode(r)}return de.default.createElement(\"div\",{className:\"react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--\".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component);function Or(e,t){for(var r=[],a=Kt(e),n=Kt(t);!at.default(a,n);)r.push(xt(a)),a=we.default(a,1);return r}var Yr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),vt(bt(a=t.call(this,e)),\"renderOptions\",(function(){return a.state.monthYearsList.map((function(e){var t=Te.default(e),r=Qt(a.props.date,e)&&Vt(a.props.date,e);return de.default.createElement(\"div\",{className:r?\"react-datepicker__month-year-option--selected_month-year\":\"react-datepicker__month-year-option\",key:t,onClick:a.onChange.bind(bt(a),t),\"aria-selected\":r?\"true\":void 0},r?de.default.createElement(\"span\",{className:\"react-datepicker__month-year-option--selected\"},\"✓\"):\"\",Lt(e,a.props.dateFormat,a.props.locale))}))})),vt(bt(a),\"onChange\",(function(e){return a.props.onChange(e)})),vt(bt(a),\"handleClickOutside\",(function(){a.props.onCancel()})),a.state={monthYearsList:Or(a.props.minDate,a.props.maxDate)},a}return yt(r,[{key:\"render\",value:function(){var e=ce.default({\"react-datepicker__month-year-dropdown\":!0,\"react-datepicker__month-year-dropdown--scrollable\":this.props.scrollableMonthYearDropdown});return de.default.createElement(\"div\",{className:e},this.renderOptions())}}]),r}(de.default.Component),xr=lt.default(Yr),Ir=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"state\",{dropdownVisible:!1}),vt(bt(e),\"renderSelectOptions\",(function(){for(var t=Kt(e.props.minDate),r=Kt(e.props.maxDate),a=[];!at.default(t,r);){var n=Te.default(t);a.push(de.default.createElement(\"option\",{key:n,value:n},Lt(t,e.props.dateFormat,e.props.locale))),t=we.default(t,1)}return a})),vt(bt(e),\"onSelectChange\",(function(t){e.onChange(t.target.value)})),vt(bt(e),\"renderSelectMode\",(function(){return de.default.createElement(\"select\",{value:Te.default(Kt(e.props.date)),className:\"react-datepicker__month-year-select\",onChange:e.onSelectChange},e.renderSelectOptions())})),vt(bt(e),\"renderReadView\",(function(t){var r=Lt(e.props.date,e.props.dateFormat,e.props.locale);return de.default.createElement(\"div\",{key:\"read\",style:{visibility:t?\"visible\":\"hidden\"},className:\"react-datepicker__month-year-read-view\",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement(\"span\",{className:\"react-datepicker__month-year-read-view--down-arrow\"}),de.default.createElement(\"span\",{className:\"react-datepicker__month-year-read-view--selected-month-year\"},r))})),vt(bt(e),\"renderDropdown\",(function(){return de.default.createElement(xr,{key:\"dropdown\",date:e.props.date,dateFormat:e.props.dateFormat,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableMonthYearDropdown:e.props.scrollableMonthYearDropdown,locale:e.props.locale})})),vt(bt(e),\"renderScrollMode\",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),vt(bt(e),\"onChange\",(function(t){e.toggleDropdown();var r=xt(parseInt(t));Qt(e.props.date,r)&&Vt(e.props.date,r)||e.props.onChange(r)})),vt(bt(e),\"toggleDropdown\",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return yt(r,[{key:\"render\",value:function(){var e;switch(this.props.dropdownMode){case\"scroll\":e=this.renderScrollMode();break;case\"select\":e=this.renderSelectMode()}return de.default.createElement(\"div\",{className:\"react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--\".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),Tr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"dayEl\",de.default.createRef()),vt(bt(e),\"handleClick\",(function(t){!e.isDisabled()&&e.props.onClick&&e.props.onClick(t)})),vt(bt(e),\"handleMouseEnter\",(function(t){!e.isDisabled()&&e.props.onMouseEnter&&e.props.onMouseEnter(t)})),vt(bt(e),\"handleOnKeyDown\",(function(t){\" \"===t.key&&(t.preventDefault(),t.key=\"Enter\"),e.props.handleOnKeyDown(t)})),vt(bt(e),\"isSameDay\",(function(t){return $t(e.props.day,t)})),vt(bt(e),\"isKeyboardSelected\",(function(){return!e.props.disabledKeyboardNavigation&&!e.isSameDay(e.props.selected)&&e.isSameDay(e.props.preSelection)})),vt(bt(e),\"isDisabled\",(function(){return rr(e.props.day,e.props)})),vt(bt(e),\"isExcluded\",(function(){return ar(e.props.day,e.props)})),vt(bt(e),\"getHighLightedClass\",(function(t){var r=e.props,a=r.day,n=r.highlightDates;if(!n)return!1;var o=Lt(a,\"MM.dd.yyyy\");return n.get(o)})),vt(bt(e),\"isInRange\",(function(){var t=e.props,r=t.day,a=t.startDate,n=t.endDate;return!(!a||!n)&&Gt(r,a,n)})),vt(bt(e),\"isInSelectingRange\",(function(){var t,r=e.props,a=r.day,n=r.selectsStart,o=r.selectsEnd,s=r.selectsRange,i=r.selectsDisabledDaysInRange,p=r.startDate,l=r.endDate,d=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return!(!(n||o||s)||!d||!i&&e.isDisabled())&&(n&&l&&(nt.default(d,l)||zt(d,l))?Gt(a,d,l):(o&&p&&(at.default(d,p)||zt(d,p))||!(!s||!p||l||!at.default(d,p)&&!zt(d,p)))&&Gt(a,p,d))})),vt(bt(e),\"isSelectingRangeStart\",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,a=r.day,n=r.startDate,o=r.selectsStart,s=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return $t(a,o?s:n)})),vt(bt(e),\"isSelectingRangeEnd\",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,a=r.day,n=r.endDate,o=r.selectsEnd,s=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return $t(a,o?s:n)})),vt(bt(e),\"isRangeStart\",(function(){var t=e.props,r=t.day,a=t.startDate,n=t.endDate;return!(!a||!n)&&$t(a,r)})),vt(bt(e),\"isRangeEnd\",(function(){var t=e.props,r=t.day,a=t.startDate,n=t.endDate;return!(!a||!n)&&$t(n,r)})),vt(bt(e),\"isWeekend\",(function(){var t=Ee.default(e.props.day);return 0===t||6===t})),vt(bt(e),\"isAfterMonth\",(function(){return void 0!==e.props.month&&(e.props.month+1)%12===Ye.default(e.props.day)})),vt(bt(e),\"isBeforeMonth\",(function(){return void 0!==e.props.month&&(Ye.default(e.props.day)+1)%12===e.props.month})),vt(bt(e),\"isCurrentDay\",(function(){return e.isSameDay(xt())})),vt(bt(e),\"isSelected\",(function(){return e.isSameDay(e.props.selected)})),vt(bt(e),\"getClassNames\",(function(t){var r=e.props.dayClassName?e.props.dayClassName(t):void 0;return ce.default(\"react-datepicker__day\",r,\"react-datepicker__day--\"+qt(e.props.day),{\"react-datepicker__day--disabled\":e.isDisabled(),\"react-datepicker__day--excluded\":e.isExcluded(),\"react-datepicker__day--selected\":e.isSelected(),\"react-datepicker__day--keyboard-selected\":e.isKeyboardSelected(),\"react-datepicker__day--range-start\":e.isRangeStart(),\"react-datepicker__day--range-end\":e.isRangeEnd(),\"react-datepicker__day--in-range\":e.isInRange(),\"react-datepicker__day--in-selecting-range\":e.isInSelectingRange(),\"react-datepicker__day--selecting-range-start\":e.isSelectingRangeStart(),\"react-datepicker__day--selecting-range-end\":e.isSelectingRangeEnd(),\"react-datepicker__day--today\":e.isCurrentDay(),\"react-datepicker__day--weekend\":e.isWeekend(),\"react-datepicker__day--outside-month\":e.isAfterMonth()||e.isBeforeMonth()},e.getHighLightedClass(\"react-datepicker__day--highlighted\"))})),vt(bt(e),\"getAriaLabel\",(function(){var t=e.props,r=t.day,a=t.ariaLabelPrefixWhenEnabled,n=void 0===a?\"Choose\":a,o=t.ariaLabelPrefixWhenDisabled,s=void 0===o?\"Not available\":o,i=e.isDisabled()||e.isExcluded()?s:n;return\"\".concat(i,\" \").concat(Lt(r,\"PPPP\",e.props.locale))})),vt(bt(e),\"getTabIndex\",(function(t,r){var a=t||e.props.selected,n=r||e.props.preSelection;return e.isKeyboardSelected()||e.isSameDay(a)&&$t(n,a)?0:-1})),vt(bt(e),\"handleFocusDay\",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(r=!0)),r&&e.dayEl.current.focus({preventScroll:!0})})),vt(bt(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Ne.default(e.props.day),e.props.day):Ne.default(e.props.day)})),vt(bt(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"button\",\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()?\"true\":void 0},e.renderDayContents())})),e}return yt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),Lr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"handleClick\",(function(t){e.props.onClick&&e.props.onClick(t)})),e}return yt(r,[{key:\"render\",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,a=void 0===r?\"week \":r,n={\"react-datepicker__week-number\":!0,\"react-datepicker__week-number--clickable\":!!e.onClick};return de.default.createElement(\"div\",{className:ce.default(n),\"aria-label\":\"\".concat(a,\" \").concat(this.props.weekNumber),onClick:this.handleClick},t)}}]),r}(de.default.Component),Rr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"handleDayClick\",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r)})),vt(bt(e),\"handleDayMouseEnter\",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),vt(bt(e),\"handleWeekClick\",(function(t,r,a){\"function\"==typeof e.props.onWeekSelect&&e.props.onWeekSelect(t,r,a),e.props.shouldCloseOnSelect&&e.props.setOpen(!1)})),vt(bt(e),\"formatWeekNumber\",(function(t){return e.props.formatWeekNumber?e.props.formatWeekNumber(t):At(t)})),vt(bt(e),\"renderDays\",(function(){var t=Bt(e.props.day,e.props.locale,e.props.calendarStartDay),r=[],a=e.formatWeekNumber(t);if(e.props.showWeekNumber){var n=e.props.onWeekSelect?e.handleWeekClick.bind(bt(e),t,a):void 0;r.push(de.default.createElement(Lr,{key:\"W\",weekNumber:a,onClick:n,ariaLabelPrefix:e.props.ariaLabelPrefix}))}return r.concat([0,1,2,3,4,5,6].map((function(r){var a=ve.default(t,r);return de.default.createElement(Tr,{ariaLabelPrefixWhenEnabled:e.props.chooseDayAriaLabelPrefix,ariaLabelPrefixWhenDisabled:e.props.disabledDayAriaLabelPrefix,key:a.valueOf(),day:a,month:e.props.month,onClick:e.handleDayClick.bind(bt(e),a),onMouseEnter:e.handleDayMouseEnter.bind(bt(e),a),minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,highlightDates:e.props.highlightDates,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,renderDayContents:e.props.renderDayContents,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart,locale:e.props.locale})})))})),e}return yt(r,[{key:\"render\",value:function(){return de.default.createElement(\"div\",{className:\"react-datepicker__week\"},this.renderDays())}}],[{key:\"defaultProps\",get:function(){return{shouldCloseOnSelect:!0}}}]),r}(de.default.Component),Fr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"MONTH_REFS\",_t(Array(12)).map((function(){return de.default.createRef()}))),vt(bt(e),\"isDisabled\",(function(t){return rr(t,e.props)})),vt(bt(e),\"isExcluded\",(function(t){return ar(t,e.props)})),vt(bt(e),\"handleDayClick\",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r,e.props.orderInDisplay)})),vt(bt(e),\"handleDayMouseEnter\",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),vt(bt(e),\"handleMouseLeave\",(function(){e.props.onMouseLeave&&e.props.onMouseLeave()})),vt(bt(e),\"isRangeStartMonth\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate;return!(!n||!o)&&Vt(Ae.default(a,t),n)})),vt(bt(e),\"isRangeStartQuarter\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate;return!(!n||!o)&&Ut(qe.default(a,t),n)})),vt(bt(e),\"isRangeEndMonth\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate;return!(!n||!o)&&Vt(Ae.default(a,t),o)})),vt(bt(e),\"isRangeEndQuarter\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate;return!(!n||!o)&&Ut(qe.default(a,t),o)})),vt(bt(e),\"isWeekInMonth\",(function(t){var r=e.props.day,a=ve.default(t,6);return Vt(t,r)||Vt(a,r)})),vt(bt(e),\"isCurrentMonth\",(function(e,t){return Ie.default(e)===Ie.default(xt())&&t===Ye.default(xt())})),vt(bt(e),\"isSelectedMonth\",(function(e,t,r){return Ye.default(e)===t&&Ie.default(e)===Ie.default(r)})),vt(bt(e),\"isSelectedQuarter\",(function(e,t,r){return xe.default(e)===t&&Ie.default(e)===Ie.default(r)})),vt(bt(e),\"renderWeeks\",(function(){for(var t=[],r=e.props.fixedHeight,a=0,n=!1,o=Bt(Kt(e.props.day),e.props.locale,e.props.calendarStartDay);t.push(de.default.createElement(Rr,{ariaLabelPrefix:e.props.weekAriaLabelPrefix,chooseDayAriaLabelPrefix:e.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:e.props.disabledDayAriaLabelPrefix,key:a,day:o,month:Ye.default(e.props.day),onDayClick:e.handleDayClick,onDayMouseEnter:e.handleDayMouseEnter,onWeekSelect:e.props.onWeekSelect,formatWeekNumber:e.props.formatWeekNumber,locale:e.props.locale,minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,highlightDates:e.props.highlightDates,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,showWeekNumber:e.props.showWeekNumbers,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,setOpen:e.props.setOpen,shouldCloseOnSelect:e.props.shouldCloseOnSelect,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,renderDayContents:e.props.renderDayContents,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,calendarStartDay:e.props.calendarStartDay,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart})),!n;){a++,o=De.default(o,1);var s=r&&a>=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),vt(bt(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Kt(Ae.default(e.props.day,r)),t)})),vt(bt(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),vt(bt(e),\"onMonthKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onMonthClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,Se.default(e.props.preSelection,1))}})),vt(bt(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(jt(qe.default(e.props.day,r)),t)})),vt(bt(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,d=r.monthClassName,c=d?d(a):void 0;return ce.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),c,{\"react-datepicker__month--disabled\":(i||p)&&nr(Ae.default(a,t),e.props),\"react-datepicker__month--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":Ye.default(l)===t,\"react-datepicker__month--in-range\":or(n,o,t,a),\"react-datepicker__month--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),vt(bt(e),\"getTabIndex\",(function(t){var r=Ye.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),vt(bt(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.ariaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ae.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(Lt(p,\"MMMM yyyy\"))})),vt(bt(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate;return ce.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter--disabled\":(i||p)&&sr(qe.default(a,t),e.props),\"react-datepicker__quarter--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter--in-range\":pr(n,o,t,a),\"react-datepicker__quarter--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter--range-end\":e.isRangeEndQuarter(t)})})),vt(bt(e),\"renderMonths\",(function(){var t=e.props,r=t.showFullMonthYearPicker,a=t.showTwoColumnMonthYearPicker,n=t.showFourColumnMonthYearPicker,o=t.locale,s=t.day,i=t.selected;return(n?[[0,1,2,3],[4,5,6,7],[8,9,10,11]]:a?[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]]:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]]).map((function(t,a){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:a},t.map((function(t,a){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:a,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"button\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(s,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(s,t,i)?\"true\":void 0},r?Zt(t,o):er(t,o))})))}))})),vt(bt(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,onClick:function(r){e.onQuarterClick(r,t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a)?\"true\":void 0},tr(t,e.props.locale))})))})),vt(bt(e),\"getClassNames\",(function(){var t=e.props;t.day;var r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker;return ce.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s})})),e}return yt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(Lt(a,\"yyyy-MM\"))},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),Ar=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o<a;o++)n[o]=arguments[o];return vt(bt(e=t.call.apply(t,[this].concat(n))),\"state\",{height:null}),vt(bt(e),\"handleClick\",(function(t){(e.props.minTime||e.props.maxTime)&&ur(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&cr(t,e.props)||e.props.onChange(t)})),vt(bt(e),\"isSelectedTime\",(function(t,r,a){return e.props.selected&&r===Pe.default(t)&&a===Me.default(t)})),vt(bt(e),\"liClasses\",(function(t,r,a){var n=[\"react-datepicker__time-list-item\",e.props.timeClassName?e.props.timeClassName(t,r,a):void 0];return e.isSelectedTime(t,r,a)&&n.push(\"react-datepicker__time-list-item--selected\"),((e.props.minTime||e.props.maxTime)&&ur(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&cr(t,e.props))&&n.push(\"react-datepicker__time-list-item--disabled\"),e.props.injectTimes&&(60*Pe.default(t)+Me.default(t))%e.props.intervals!=0&&n.push(\"react-datepicker__time-list-item--injected\"),n.join(\" \")})),vt(bt(e),\"handleOnKeyDown\",(function(t,r){\" \"===t.key&&(t.preventDefault(),t.key=\"Enter\"),\"Enter\"===t.key&&e.handleClick(r),e.props.handleOnKeyDown(t)})),vt(bt(e),\"renderTimes\",(function(){for(var t=[],r=e.props.format?e.props.format:\"p\",a=e.props.intervals,n=Wt(xt(e.props.selected)),o=1440/a,s=e.props.injectTimes&&e.props.injectTimes.sort((function(e,t){return e-t})),i=e.props.selected||e.props.openToDate||xt(),p=Pe.default(i),l=Me.default(i),d=Fe.default(Re.default(n,l),p),c=0;c<o;c++){var u=me.default(n,c*a);if(t.push(u),s){var f=gr(n,u,c,a,s);t=t.concat(f)}}return t.map((function(t,a){return de.default.createElement(\"li\",{key:a,onClick:e.handleClick.bind(bt(e),t),className:e.liClasses(t,p,l),ref:function(r){(nt.default(t,d)||zt(t,d))&&(e.centerLi=r)},onKeyDown:function(r){e.handleOnKeyDown(r,t)},tabIndex:\"0\",\"aria-selected\":e.isSelectedTime(t,p,l)?\"true\":void 0},Lt(t,r,e.props.locale))}))})),e}return yt(r,[{key:\"componentDidMount\",value:function(){this.list.scrollTop=r.calcCenterPosition(this.props.monthRef?this.props.monthRef.clientHeight-this.header.clientHeight:this.list.clientHeight,this.centerLi),this.props.monthRef&&this.header&&this.setState({height:this.props.monthRef.clientHeight-this.header.clientHeight})}},{key:\"render\",value:function(){var e=this,t=this.state.height;return de.default.createElement(\"div\",{className:\"react-datepicker__time-container \".concat(this.props.todayButton?\"react-datepicker__time-container--with-today-button\":\"\")},de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--time \".concat(this.props.showTimeSelectOnly?\"react-datepicker__header--time--only\":\"\"),ref:function(t){e.header=t}},de.default.createElement(\"div\",{className:\"react-datepicker-time__header\"},this.props.timeCaption)),de.default.createElement(\"div\",{className:\"react-datepicker__time\"},de.default.createElement(\"div\",{className:\"react-datepicker__time-box\"},de.default.createElement(\"ul\",{className:\"react-datepicker__time-list\",ref:function(t){e.list=t},style:t?{height:t}:{},tabIndex:\"0\"},this.renderTimes()))))}}],[{key:\"defaultProps\",get:function(){return{intervals:30,onTimeChange:function(){},todayButton:null,timeCaption:\"Time\"}}}]),r}(de.default.Component);vt(Ar,\"calcCenterPosition\",(function(e,t){return t.offsetTop-(e/2-t.clientHeight/2)}));var qr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),vt(bt(a=t.call(this,e)),\"YEAR_REFS\",_t(Array(a.props.yearItemNumber)).map((function(){return de.default.createRef()}))),vt(bt(a),\"isDisabled\",(function(e){return rr(e,a.props)})),vt(bt(a),\"isExcluded\",(function(e){return ar(e,a.props)})),vt(bt(a),\"updateFocusOnPaginate\",(function(e){var t=function(){this.YEAR_REFS[e].current.focus()}.bind(bt(a));window.requestAnimationFrame(t)})),vt(bt(a),\"handleYearClick\",(function(e,t){a.props.onDayClick&&a.props.onDayClick(e,t)})),vt(bt(a),\"handleYearNavigation\",(function(e,t){var r=a.props,n=r.date,o=r.yearItemNumber,s=br(n,o).startPeriod;a.isDisabled(t)||a.isExcluded(t)||(a.props.setPreSelection(t),e-s==-1?a.updateFocusOnPaginate(o-1):e-s===o?a.updateFocusOnPaginate(0):a.YEAR_REFS[e-s].current.focus())})),vt(bt(a),\"isSameDay\",(function(e,t){return $t(e,t)})),vt(bt(a),\"isCurrentYear\",(function(e){return e===Ie.default(xt())})),vt(bt(a),\"isKeyboardSelected\",(function(e){var t=Ht(We.default(a.props.date,e));return!a.props.disabledKeyboardNavigation&&!a.props.inline&&!$t(t,Ht(a.props.selected))&&$t(t,Ht(a.props.preSelection))})),vt(bt(a),\"onYearClick\",(function(e,t){var r=a.props.date;a.handleYearClick(Ht(We.default(r,t)),e)})),vt(bt(a),\"onYearKeyDown\",(function(e,t){var r=e.key;if(!a.props.disabledKeyboardNavigation)switch(r){case\"Enter\":a.onYearClick(e,t),a.props.setPreSelection(a.props.selected);break;case\"ArrowRight\":a.handleYearNavigation(t+1,ge.default(a.props.preSelection,1));break;case\"ArrowLeft\":a.handleYearNavigation(t-1,Ce.default(a.props.preSelection,1))}})),vt(bt(a),\"getYearClassNames\",(function(e){var t=a.props,r=t.minDate,n=t.maxDate,o=t.selected;return ce.default(\"react-datepicker__year-text\",{\"react-datepicker__year-text--selected\":e===Ie.default(o),\"react-datepicker__year-text--disabled\":(r||n)&&ir(e,a.props),\"react-datepicker__year-text--keyboard-selected\":a.isKeyboardSelected(e),\"react-datepicker__year-text--today\":a.isCurrentYear(e)})})),vt(bt(a),\"getYearTabIndex\",(function(e){return a.props.disabledKeyboardNavigation?\"-1\":e===Ie.default(a.props.preSelection)?\"0\":\"-1\"})),a}return yt(r,[{key:\"render\",value:function(){for(var e=this,t=[],r=this.props,a=br(r.date,r.yearItemNumber),n=a.startPeriod,o=a.endPeriod,s=function(r){t.push(de.default.createElement(\"div\",{ref:e.YEAR_REFS[r-n],onClick:function(t){e.onYearClick(t,r)},onKeyDown:function(t){e.onYearKeyDown(t,r)},tabIndex:e.getYearTabIndex(r),className:e.getYearClassNames(r),key:r,\"aria-current\":e.isCurrentYear(r)?\"date\":void 0},r))},i=n;i<=o;i++)s(i);return de.default.createElement(\"div\",{className:\"react-datepicker__year\"},de.default.createElement(\"div\",{className:\"react-datepicker__year-wrapper\"},t))}}]),r}(de.default.Component),Wr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),vt(bt(a=t.call(this,e)),\"onTimeChange\",(function(e){a.setState({time:e});var t=new Date;t.setHours(e.split(\":\")[0]),t.setMinutes(e.split(\":\")[1]),a.props.onChange(t)})),vt(bt(a),\"renderTimeInput\",(function(){var e=a.state.time,t=a.props,r=t.date,n=t.timeString,o=t.customTimeInput;return o?de.default.cloneElement(o,{date:r,value:e,onChange:a.onTimeChange}):de.default.createElement(\"input\",{type:\"time\",className:\"react-datepicker-time__input\",placeholder:\"Time\",name:\"time-input\",required:!0,value:e,onChange:function(e){a.onTimeChange(e.target.value||n)}})})),a.state={time:a.props.timeString},a}return yt(r,[{key:\"render\",value:function(){return de.default.createElement(\"div\",{className:\"react-datepicker__input-time-container\"},de.default.createElement(\"div\",{className:\"react-datepicker-time__caption\"},this.props.timeInputLabel),de.default.createElement(\"div\",{className:\"react-datepicker-time__input-container\"},de.default.createElement(\"div\",{className:\"react-datepicker-time__input\"},this.renderTimeInput())))}}],[{key:\"getDerivedStateFromProps\",value:function(e,t){return e.timeString!==t.time?{time:e.timeString}:null}}]),r}(de.default.Component);function Br(e){var t=e.className,r=e.children,a=e.showPopperArrow,n=e.arrowProps,o=void 0===n?{}:n;return de.default.createElement(\"div\",{className:t},a&&de.default.createElement(\"div\",Dt({className:\"react-datepicker__triangle\"},o)),r)}var Kr=[\"react-datepicker__year-select\",\"react-datepicker__month-select\",\"react-datepicker__month-year-select\"],Hr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),vt(bt(a=t.call(this,e)),\"handleClickOutside\",(function(e){a.props.onClickOutside(e)})),vt(bt(a),\"setClickOutsideRef\",(function(){return a.containerRef.current})),vt(bt(a),\"handleDropdownFocus\",(function(e){(function(){var e=((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Kr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),vt(bt(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=vr(a.props),s=Dr(a.props),i=xt(),p=n||r||t;return p||(o&&nt.default(i,o)?o:s&&at.default(i,s)?s:i)})),vt(bt(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:we.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),vt(bt(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:Se.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),vt(bt(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),vt(bt(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),vt(bt(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),vt(bt(a),\"handleYearChange\",(function(e){a.props.onYearChange&&a.props.onYearChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),vt(bt(a),\"handleMonthChange\",(function(e){a.props.onMonthChange&&a.props.onMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),vt(bt(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),vt(bt(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:We.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),vt(bt(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ae.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),vt(bt(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:We.default(Ae.default(r,Ye.default(e)),Ie.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),vt(bt(a),\"header\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=Bt(e,a.props.locale,a.props.calendarStartDay),r=[];return a.props.showWeekNumbers&&r.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),r.concat([0,1,2,3,4,5,6].map((function(e){var r=ve.default(t,e),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:e,className:ce.default(\"react-datepicker__day-name\",o)},n)})))})),vt(bt(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(Lt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return Lt(e,\"EEE\",t)}(e,t):function(e,t){return Lt(e,\"EEEEEE\",t)}(e,t)})),vt(bt(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Ce.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),vt(bt(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=mr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?Ot:a,o=br(Ht(Ce.default(e,n)),n).endPeriod,s=r&&Ie.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=fr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,d=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,c=p.previousYearAriaLabel,u=void 0===c?\"string\"==typeof i?i:\"Previous Year\":c;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:d},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),vt(bt(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:ge.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),vt(bt(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=yr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?Ot:a,o=br(ge.default(e,n),n).startPeriod,s=r&&Ie.default(r);return s&&s<o||!1}(a.state.date,a.props);break;default:e=hr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--next\"];a.props.showTimeSelect&&t.push(\"react-datepicker__navigation--next--with-time\"),a.props.todayButton&&t.push(\"react-datepicker__navigation--next--with-today-button\");var r=a.increaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.increaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--next--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.nextMonthButtonLabel,i=o.nextYearButtonLabel,p=a.props,l=p.nextMonthAriaLabel,d=void 0===l?\"string\"==typeof s?s:\"Next Month\":l,c=p.nextYearAriaLabel,u=void 0===c?\"string\"==typeof i?i:\"Next Year\":c;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:d},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--next\"].join(\" \")},n?a.props.nextYearButtonLabel:a.props.nextMonthButtonLabel))}}})),vt(bt(a),\"renderCurrentMonth\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},Lt(e,a.props.dateFormat,a.props.locale))})),vt(bt(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Mr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Ie.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),vt(bt(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Nr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Ye.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),vt(bt(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ir,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),vt(bt(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.props.onSelect(Ve.default(xt()),e)}},a.props.todayButton)})),vt(bt(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),vt(bt(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=fr(a.state.date,a.props),o=hr(a.state.date,a.props),s=mr(a.state.date,a.props),i=yr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(ut(ut({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),vt(bt(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=br(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Ie.default(e))})),vt(bt(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),vt(bt(a),\"renderMonths\",(function(){if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var e=[],t=a.props.showPreviousMonths?a.props.monthsShown-1:0,r=Se.default(a.state.date,t),n=0;n<a.props.monthsShown;++n){var o=n-a.props.monthSelectedIn,s=we.default(r,o),i=\"month-\".concat(n),p=n<a.props.monthsShown-1,l=n>0;e.push(de.default.createElement(\"div\",{key:i,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:s,i:n}),de.default.createElement(Fr,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,onChange:a.changeMonthYear,day:s,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:n,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:p,monthShowsDuplicateDaysStart:l})))}return e}})),vt(bt(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement(qr,Dt({onDayClick:a.handleDayClick,date:a.state.date},a.props))):void 0})),vt(bt(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(Ar,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),vt(bt(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Tt(e)&&Boolean(a.props.selected)?\"\".concat(kr(e.getHours()),\":\").concat(kr(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Wr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null},a}return yt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){this.props.preSelection&&!$t(this.props.preSelection,e.preSelection)?this.setState({date:this.props.preSelection}):this.props.openToDate&&!$t(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate})}},{key:\"render\",value:function(){var e=this.props.container||Br;return de.default.createElement(\"div\",{ref:this.containerRef},de.default.createElement(e,{className:ce.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.props.children))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,monthSelectedIn:0,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:Ot}}}]),r}(de.default.Component),jr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return yt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return dt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),Qr=function(e){return!e.disabled&&-1!==e.tabIndex},Vr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),vt(bt(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(Qr)})),vt(bt(a),\"handleFocusStart\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[t.length-1].focus()})),vt(bt(a),\"handleFocusEnd\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return yt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),Ur=function(e){wt(r,e);var t=Ct(r);function r(){return ht(this,r),t.apply(this,arguments)}return yt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,d=t.enableTabLoop,c=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ce.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,Dt({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(Vr,{enableTabLoop:d},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:c},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(jr,{portalId:u,portalHost:f},e));var m=ce.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),$r=\"react-datepicker-ignore-onclickoutside\",zr=lt.default(Hr);var Gr=\"Date input not valid.\",Jr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),vt(bt(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:xt()})),vt(bt(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=vr(a.props),n=Dr(a.props),o=r&&nt.default(t,Ve.default(r))?r:n&&at.default(t,Je.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:wr(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1}})),vt(bt(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),vt(bt(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),vt(bt(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),vt(bt(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:Zr},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),vt(bt(a),\"inputOk\",(function(){return ue.default(a.state.preSelection)})),vt(bt(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),vt(bt(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),vt(bt(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),vt(bt(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),vt(bt(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),vt(bt(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),vt(bt(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),vt(bt(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t[0];if(!a.props.onChangeRaw||(a.props.onChangeRaw.apply(bt(a),t),\"function\"==typeof n.isDefaultPrevented&&!n.isDefaultPrevented())){a.setState({inputValue:n.target.value,lastPreSelectChange:Xr});var o=It(n.target.value,a.props.dateFormat,a.props.locale,a.props.strictParsing,a.props.minDate);!o&&n.target.value||a.setSelected(o,n,!0)}})),vt(bt(a),\"handleSelect\",(function(e,t,r){if(a.setState({preventFocus:!0},(function(){return a.preventFocusTimeout=setTimeout((function(){return a.setState({preventFocus:!1})}),50),a.preventFocusTimeout})),a.props.onChangeRaw&&a.props.onChangeRaw(t),a.setSelected(e,t,!1,r),!a.props.shouldCloseOnSelect||a.props.showTimeSelect)a.setPreSelection(e);else if(!a.props.inline){a.props.selectsRange||a.setOpen(!1);var n=a.props,o=n.startDate,s=n.endDate;!o||s||nt.default(e,o)||a.setOpen(!1)}})),vt(bt(a),\"setSelected\",(function(e,t,r,n){var o=e;if(null===o||!rr(o,a.props)){var s=a.props,i=s.onChange,p=s.selectsRange,l=s.startDate,d=s.endDate;if(!zt(a.props.selected,o)||a.props.allowSameDay||p)if(null!==o&&(!a.props.selected||r&&(a.props.showTimeSelect||a.props.showTimeSelectOnly||a.props.showTimeInput)||(o=Ft(o,{hour:Pe.default(a.props.selected),minute:Me.default(a.props.selected),second:_e.default(a.props.selected)})),a.props.inline||a.setState({preSelection:o}),a.props.focusSelectedMonth||a.setState({monthSelectedIn:n})),p){var c=l&&!d,u=l&&d;!l&&!d?i([o,null],t):c&&(nt.default(o,l)?i([o,null],t):i([l,o],t)),u&&i([o,null],t)}else i(o,t);r||(a.props.onSelect(o,t),a.setState({inputValue:null}))}})),vt(bt(a),\"setPreSelection\",(function(e){var t=void 0!==a.props.minDate,r=void 0!==a.props.maxDate,n=!0;if(e){var o=Ve.default(e);if(t&&r)n=Gt(e,a.props.minDate,a.props.maxDate);else if(t){var s=Ve.default(a.props.minDate);n=at.default(e,s)||zt(o,s)}else if(r){var i=Je.default(a.props.maxDate);n=nt.default(e,i)||zt(o,i)}}n&&a.setState({preSelection:e})})),vt(bt(a),\"handleTimeChange\",(function(e){var t=Ft(a.props.selected?a.props.selected:a.getPreSelection(),{hour:Pe.default(e),minute:Me.default(e)});a.setState({preSelection:t}),a.props.onChange(t),a.props.shouldCloseOnSelect&&a.setOpen(!1),a.props.showTimeInput&&a.setOpen(!0),a.setState({inputValue:null})})),vt(bt(a),\"onInputClick\",(function(){a.props.disabled||a.props.readOnly||a.setOpen(!0),a.props.onInputClick()})),vt(bt(a),\"onInputKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key;if(a.state.open||a.props.inline||a.props.preventOpenOnFocus){if(a.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=a.calendar.componentNode&&a.calendar.componentNode.querySelector('.react-datepicker__day[tabindex=\"0\"]');return void(r&&r.focus({preventScroll:!0}))}var n=xt(a.state.preSelection);\"Enter\"===t?(e.preventDefault(),a.inputOk()&&a.state.lastPreSelectChange===Zr?(a.handleSelect(n,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(n)):a.setOpen(!1)):\"Escape\"===t&&(e.preventDefault(),a.setOpen(!1)),a.inputOk()||a.props.onInputError({code:1,msg:Gr})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||a.onInputClick()})),vt(bt(a),\"onDayKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key,r=xt(a.state.preSelection);if(\"Enter\"===t)e.preventDefault(),a.handleSelect(r,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:Gr});else if(!a.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=ke.default(r,1);break;case\"ArrowRight\":n=ve.default(r,1);break;case\"ArrowUp\":n=be.default(r,1);break;case\"ArrowDown\":n=De.default(r,1);break;case\"PageUp\":n=Se.default(r,1);break;case\"PageDown\":n=we.default(r,1);break;case\"Home\":n=Ce.default(r,1);break;case\"End\":n=ge.default(r,1)}if(!n)return void(a.props.onInputError&&a.props.onInputError({code:1,msg:Gr}));if(e.preventDefault(),a.setState({lastPreSelectChange:Zr}),a.props.adjustDateOnChange&&a.setSelected(n),a.setPreSelection(n),a.props.inline){var o=Ye.default(r),s=Ye.default(n),i=Ie.default(r),p=Ie.default(n);o!==s||i!==p?a.setState({shouldFocusDayInline:!0}):a.setState({shouldFocusDayInline:!1})}}})),vt(bt(a),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.setState({preventFocus:!0},(function(){a.setOpen(!1),setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))})))})),vt(bt(a),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),a.props.selectsRange?a.props.onChange([null,null],e):a.props.onChange(null,e),a.setState({inputValue:null})})),vt(bt(a),\"clear\",(function(){a.onClearClick()})),vt(bt(a),\"onScroll\",(function(e){\"boolean\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||a.setOpen(!1):\"function\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll(e)&&a.setOpen(!1)})),vt(bt(a),\"renderCalendar\",(function(){return a.props.inline||a.isCalendarOpen()?de.default.createElement(zr,{ref:function(e){a.calendar=e},locale:a.props.locale,calendarStartDay:a.props.calendarStartDay,chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,adjustDateOnChange:a.props.adjustDateOnChange,setOpen:a.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,dateFormat:a.props.dateFormatCalendar,useWeekdaysShort:a.props.useWeekdaysShort,formatWeekDay:a.props.formatWeekDay,dropdownMode:a.props.dropdownMode,selected:a.props.selected,preSelection:a.state.preSelection,onSelect:a.handleSelect,onWeekSelect:a.props.onWeekSelect,openToDate:a.props.openToDate,minDate:a.props.minDate,maxDate:a.props.maxDate,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,startDate:a.props.startDate,endDate:a.props.endDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,filterDate:a.props.filterDate,onClickOutside:a.handleCalendarClickOutside,formatWeekNumber:a.props.formatWeekNumber,highlightDates:a.state.highlightDates,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,includeTimes:a.props.includeTimes,injectTimes:a.props.injectTimes,inline:a.props.inline,shouldFocusDayInline:a.state.shouldFocusDayInline,peekNextMonth:a.props.peekNextMonth,showMonthDropdown:a.props.showMonthDropdown,showPreviousMonths:a.props.showPreviousMonths,useShortMonthInDropdown:a.props.useShortMonthInDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showWeekNumbers:a.props.showWeekNumbers,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,forceShowMonthNavigation:a.props.forceShowMonthNavigation,showDisabledMonthNavigation:a.props.showDisabledMonthNavigation,scrollableYearDropdown:a.props.scrollableYearDropdown,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown,todayButton:a.props.todayButton,weekLabel:a.props.weekLabel,outsideClickIgnoreClass:$r,fixedHeight:a.props.fixedHeight,monthsShown:a.props.monthsShown,monthSelectedIn:a.state.monthSelectedIn,onDropdownFocus:a.handleDropdownFocus,onMonthChange:a.props.onMonthChange,onYearChange:a.props.onYearChange,dayClassName:a.props.dayClassName,weekDayClassName:a.props.weekDayClassName,monthClassName:a.props.monthClassName,timeClassName:a.props.timeClassName,showTimeSelect:a.props.showTimeSelect,showTimeSelectOnly:a.props.showTimeSelectOnly,onTimeChange:a.handleTimeChange,timeFormat:a.props.timeFormat,timeIntervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,className:a.props.calendarClassName,container:a.props.calendarContainer,yearItemNumber:a.props.yearItemNumber,yearDropdownItemNumber:a.props.yearDropdownItemNumber,previousMonthAriaLabel:a.props.previousMonthAriaLabel,previousMonthButtonLabel:a.props.previousMonthButtonLabel,nextMonthAriaLabel:a.props.nextMonthAriaLabel,nextMonthButtonLabel:a.props.nextMonthButtonLabel,previousYearAriaLabel:a.props.previousYearAriaLabel,previousYearButtonLabel:a.props.previousYearButtonLabel,nextYearAriaLabel:a.props.nextYearAriaLabel,nextYearButtonLabel:a.props.nextYearButtonLabel,timeInputLabel:a.props.timeInputLabel,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,renderCustomHeader:a.props.renderCustomHeader,popperProps:a.props.popperProps,renderDayContents:a.props.renderDayContents,onDayMouseEnter:a.props.onDayMouseEnter,onMonthMouseLeave:a.props.onMonthMouseLeave,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showTimeInput:a.props.showTimeInput,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showPopperArrow:a.props.showPopperArrow,excludeScrollbar:a.props.excludeScrollbar,handleOnKeyDown:a.props.onKeyDown,handleOnDayKeyDown:a.onDayKeyDown,isInputFocused:a.state.focused,customTimeInput:a.props.customTimeInput,setPreSelection:a.setPreSelection},a.props.children):null})),vt(bt(a),\"renderDateInput\",(function(){var e,t=ce.default(a.props.className,vt({},$r,a.state.open)),r=a.props.customInput||de.default.createElement(\"input\",{type:\"text\"}),n=a.props.customInputRef||\"ref\",o=\"string\"==typeof a.props.value?a.props.value:\"string\"==typeof a.state.inputValue?a.state.inputValue:a.props.selectsRange?function(e,t,r){if(!e)return\"\";var a=Rt(e,r),n=t?Rt(t,r):\"\";return\"\".concat(a,\" - \").concat(n)}(a.props.startDate,a.props.endDate,a.props):Rt(a.props.selected,a.props);return de.default.cloneElement(r,(vt(e={},n,(function(e){a.input=e})),vt(e,\"value\",o),vt(e,\"onBlur\",a.handleBlur),vt(e,\"onChange\",a.handleChange),vt(e,\"onClick\",a.onInputClick),vt(e,\"onFocus\",a.handleFocus),vt(e,\"onKeyDown\",a.onInputKeyDown),vt(e,\"id\",a.props.id),vt(e,\"name\",a.props.name),vt(e,\"autoFocus\",a.props.autoFocus),vt(e,\"placeholder\",a.props.placeholderText),vt(e,\"disabled\",a.props.disabled),vt(e,\"autoComplete\",a.props.autoComplete),vt(e,\"className\",ce.default(r.props.className,t)),vt(e,\"title\",a.props.title),vt(e,\"readOnly\",a.props.readOnly),vt(e,\"required\",a.props.required),vt(e,\"tabIndex\",a.props.tabIndex),vt(e,\"aria-describedby\",a.props.ariaDescribedBy),vt(e,\"aria-invalid\",a.props.ariaInvalid),vt(e,\"aria-labelledby\",a.props.ariaLabelledBy),vt(e,\"aria-required\",a.props.ariaRequired),e))})),vt(bt(a),\"renderClearButton\",(function(){var e=a.props,t=e.isClearable,r=e.selected,n=e.startDate,o=e.endDate,s=e.clearButtonTitle,i=e.clearButtonClassName,p=void 0===i?\"\":i,l=e.ariaLabelClose,d=void 0===l?\"Close\":l;return!t||null==r&&null==n&&null==o?null:de.default.createElement(\"button\",{type:\"button\",className:\"react-datepicker__close-icon \".concat(p).trim(),\"aria-label\":d,onClick:a.onClearClick,title:s,tabIndex:-1})})),a.state=a.calcInitialState(),a}return yt(r,[{key:\"componentDidMount\",value:function(){window.addEventListener(\"scroll\",this.onScroll,!0)}},{key:\"componentDidUpdate\",value:function(e,t){var r,a;e.inline&&(r=e.selected,a=this.props.selected,r&&a?Ye.default(r)!==Ye.default(a)||Ie.default(r)!==Ie.default(a):r!==a)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:wr(this.props.highlightDates)}),t.focused||zt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener(\"scroll\",this.onScroll,!0)}},{key:\"renderInputContainer\",value:function(){return de.default.createElement(\"div\",{className:\"react-datepicker__input-container\"},this.renderDateInput(),this.renderClearButton())}},{key:\"render\",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(\"div\",{className:\"react-datepicker__portal\"},e):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(jr,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement(\"div\",null,this.renderInputContainer(),t)}return de.default.createElement(Ur,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthAriaLabel:\"Previous Month\",previousMonthButtonLabel:\"Previous Month\",nextMonthAriaLabel:\"Next Month\",nextMonthButtonLabel:\"Next Month\",previousYearAriaLabel:\"Previous Year\",previousYearButtonLabel:\"Previous Year\",nextYearAriaLabel:\"Next Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,yearItemNumber:Ot,renderDayContents:function(e){return e},focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0}}}]),r}(de.default.Component),Xr=\"input\",Zr=\"navigate\";e.CalendarContainer=Br,e.default=Jr,e.getDefaultLocale=Jt,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:global;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:global).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n  var children = _ref.children;\n\n  var _React$useState = React.useState(null),\n      referenceNode = _React$useState[0],\n      setReferenceNode = _React$useState[1];\n\n  var hasUnmounted = React.useRef(false);\n  React.useEffect(function () {\n    return function () {\n      hasUnmounted.current = true;\n    };\n  }, []);\n  var handleSetReferenceNode = React.useCallback(function (node) {\n    if (!hasUnmounted.current) {\n      setReferenceNode(node);\n    }\n  }, []);\n  return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n    value: referenceNode\n  }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n    value: handleSetReferenceNode\n  }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n  return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n  if (typeof fn === 'function') {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return fn.apply(void 0, args);\n  }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n  // if its a function call it\n  if (typeof ref === 'function') {\n    return safeInvoke(ref, node);\n  } // otherwise we should treat it as a ref object\n  else if (ref != null) {\n      ref.current = node;\n    }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n  return entries.reduce(function (acc, _ref) {\n    var key = _ref[0],\n        value = _ref[1];\n    acc[key] = value;\n    return acc;\n  }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n  var state = _ref.state;\n  Object.keys(state.elements).forEach(function (name) {\n    var style = state.styles[name] || {};\n    var attributes = state.attributes[name] || {};\n    var element = state.elements[name]; // arrow is optional + virtual elements\n\n    if (!isHTMLElement(element) || !getNodeName(element)) {\n      return;\n    } // Flow doesn't support to extend this property, but it's the most\n    // effective way to apply styles to an HTMLElement\n    // $FlowFixMe[cannot-write]\n\n\n    Object.assign(element.style, style);\n    Object.keys(attributes).forEach(function (name) {\n      var value = attributes[name];\n\n      if (value === false) {\n        element.removeAttribute(name);\n      } else {\n        element.setAttribute(name, value === true ? '' : value);\n      }\n    });\n  });\n}\n\nfunction effect(_ref2) {\n  var state = _ref2.state;\n  var initialStyles = {\n    popper: {\n      position: state.options.strategy,\n      left: '0',\n      top: '0',\n      margin: '0'\n    },\n    arrow: {\n      position: 'absolute'\n    },\n    reference: {}\n  };\n  Object.assign(state.elements.popper.style, initialStyles.popper);\n  state.styles = initialStyles;\n\n  if (state.elements.arrow) {\n    Object.assign(state.elements.arrow.style, initialStyles.arrow);\n  }\n\n  return function () {\n    Object.keys(state.elements).forEach(function (name) {\n      var element = state.elements[name];\n      var attributes = state.attributes[name] || {};\n      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n      var style = styleProperties.reduce(function (style, property) {\n        style[property] = '';\n        return style;\n      }, {}); // arrow is optional + virtual elements\n\n      if (!isHTMLElement(element) || !getNodeName(element)) {\n        return;\n      }\n\n      Object.assign(element.style, style);\n      Object.keys(attributes).forEach(function (attribute) {\n        element.removeAttribute(attribute);\n      });\n    });\n  };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n  name: 'applyStyles',\n  enabled: true,\n  phase: 'write',\n  fn: applyStyles,\n  effect: effect,\n  requires: ['computeStyles']\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n  defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import * as React from 'react';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var prevOptions = React.useRef(null);\n  var optionsWithDefaults = {\n    onFirstUpdate: options.onFirstUpdate,\n    placement: options.placement || 'bottom',\n    strategy: options.strategy || 'absolute',\n    modifiers: options.modifiers || EMPTY_MODIFIERS\n  };\n\n  var _React$useState = React.useState({\n    styles: {\n      popper: {\n        position: optionsWithDefaults.strategy,\n        left: '0',\n        top: '0'\n      },\n      arrow: {\n        position: 'absolute'\n      }\n    },\n    attributes: {}\n  }),\n      state = _React$useState[0],\n      setState = _React$useState[1];\n\n  var updateStateModifier = React.useMemo(function () {\n    return {\n      name: 'updateState',\n      enabled: true,\n      phase: 'write',\n      fn: function fn(_ref) {\n        var state = _ref.state;\n        var elements = Object.keys(state.elements);\n        setState({\n          styles: fromEntries(elements.map(function (element) {\n            return [element, state.styles[element] || {}];\n          })),\n          attributes: fromEntries(elements.map(function (element) {\n            return [element, state.attributes[element]];\n          }))\n        });\n      },\n      requires: ['computeStyles']\n    };\n  }, []);\n  var popperOptions = React.useMemo(function () {\n    var newOptions = {\n      onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n      placement: optionsWithDefaults.placement,\n      strategy: optionsWithDefaults.strategy,\n      modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n        name: 'applyStyles',\n        enabled: false\n      }])\n    };\n\n    if (isEqual(prevOptions.current, newOptions)) {\n      return prevOptions.current || newOptions;\n    } else {\n      prevOptions.current = newOptions;\n      return newOptions;\n    }\n  }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n  var popperInstanceRef = React.useRef();\n  useIsomorphicLayoutEffect(function () {\n    if (popperInstanceRef.current) {\n      popperInstanceRef.current.setOptions(popperOptions);\n    }\n  }, [popperOptions]);\n  useIsomorphicLayoutEffect(function () {\n    if (referenceElement == null || popperElement == null) {\n      return;\n    }\n\n    var createPopper = options.createPopper || defaultCreatePopper;\n    var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n    popperInstanceRef.current = popperInstance;\n    return function () {\n      popperInstance.destroy();\n      popperInstanceRef.current = null;\n    };\n  }, [referenceElement, popperElement, options.createPopper]);\n  return {\n    state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n    styles: state.styles,\n    attributes: state.attributes,\n    update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n    forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n  };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n  return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n  return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n  var _ref$placement = _ref.placement,\n      placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n      _ref$strategy = _ref.strategy,\n      strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n      _ref$modifiers = _ref.modifiers,\n      modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n      referenceElement = _ref.referenceElement,\n      onFirstUpdate = _ref.onFirstUpdate,\n      innerRef = _ref.innerRef,\n      children = _ref.children;\n  var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n  var _React$useState = React.useState(null),\n      popperElement = _React$useState[0],\n      setPopperElement = _React$useState[1];\n\n  var _React$useState2 = React.useState(null),\n      arrowElement = _React$useState2[0],\n      setArrowElement = _React$useState2[1];\n\n  React.useEffect(function () {\n    setRef(innerRef, popperElement);\n  }, [innerRef, popperElement]);\n  var options = React.useMemo(function () {\n    return {\n      placement: placement,\n      strategy: strategy,\n      onFirstUpdate: onFirstUpdate,\n      modifiers: [].concat(modifiers, [{\n        name: 'arrow',\n        enabled: arrowElement != null,\n        options: {\n          element: arrowElement\n        }\n      }])\n    };\n  }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n  var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n      state = _usePopper.state,\n      styles = _usePopper.styles,\n      forceUpdate = _usePopper.forceUpdate,\n      update = _usePopper.update;\n\n  var childrenProps = React.useMemo(function () {\n    return {\n      ref: setPopperElement,\n      style: styles.popper,\n      placement: state ? state.placement : placement,\n      hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n      isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n      arrowProps: {\n        style: styles.arrow,\n        ref: setArrowElement\n      },\n      forceUpdate: forceUpdate || NOOP,\n      update: update || NOOP_PROMISE\n    };\n  }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n  return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n  var children = _ref.children,\n      innerRef = _ref.innerRef;\n  var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n  var refHandler = React.useCallback(function (node) {\n    setRef(innerRef, node);\n    safeInvoke(setReferenceNode, node);\n  }, [innerRef, setReferenceNode]); // ran on unmount\n\n  React.useEffect(function () {\n    return function () {\n      return setRef(innerRef, null);\n    };\n  });\n  React.useEffect(function () {\n    warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n  }, [setReferenceNode]);\n  return unwrapArray(children)({\n    ref: refHandler\n  });\n}","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n    in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.14.0\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.14.0\";\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n  // START: fast-deep-equal es6/index.js 3.1.1\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n    // START: Modifications:\n    // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n    //    to co-exist with es5.\n    // 2. Replace `for of` with es5 compliant iteration using `for`.\n    //    Basically, take:\n    //\n    //    ```js\n    //    for (i of a.entries())\n    //      if (!b.has(i[0])) return false;\n    //    ```\n    //\n    //    ... and convert to:\n    //\n    //    ```js\n    //    it = a.entries();\n    //    while (!(i = it.next()).done)\n    //      if (!b.has(i.value[0])) return false;\n    //    ```\n    //\n    //    **Note**: `i` access switches to `i.value`.\n    var it;\n    if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n      if (a.size !== b.size) return false;\n      it = a.entries();\n      while (!(i = it.next()).done)\n        if (!b.has(i.value[0])) return false;\n      it = a.entries();\n      while (!(i = it.next()).done)\n        if (!equal(i.value[1], b.get(i.value[0]))) return false;\n      return true;\n    }\n\n    if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n      if (a.size !== b.size) return false;\n      it = a.entries();\n      while (!(i = it.next()).done)\n        if (!b.has(i.value[0])) return false;\n      return true;\n    }\n    // END: Modifications\n\n    if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (a[i] !== b[i]) return false;\n      return true;\n    }\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n    // END: fast-deep-equal\n\n    // START: react-fast-compare\n    // custom handling for DOM elements\n    if (hasElementType && a instanceof Element) return false;\n\n    // custom handling for React/Preact\n    for (i = length; i-- !== 0;) {\n      if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n        // React-specific: avoid traversing React elements' _owner\n        // Preact-specific: avoid traversing Preact elements' __v and __o\n        //    __v = $_original / $_vnode\n        //    __o = $_owner\n        // These properties contain circular references and are not needed when\n        // comparing the actual elements (and not their owners)\n        // .$$typeof and ._store on just reasonable markers of elements\n\n        continue;\n      }\n\n      // all other properties should be traversed as usual\n      if (!equal(a[keys[i]], b[keys[i]])) return false;\n    }\n    // END: react-fast-compare\n\n    // START: fast-deep-equal\n    return true;\n  }\n\n  return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n  try {\n    return equal(a, b);\n  } catch (error) {\n    if (((error.message || '').match(/stack|recursion/i))) {\n      // warn on circular references, don't crash\n      // browsers give this different errors name and messages:\n      // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n      // firefox: \"InternalError\", too much recursion\"\n      // edge: \"Error\", \"Out of stack space\"\n      console.warn('react-fast-compare cannot handle circular refs');\n      return false;\n    }\n    // some other error. we should definitely know about these\n    throw error;\n  }\n};\n","/* eslint-disable import/no-unresolved */\n\nif (process.env.NODE_ENV === \"production\") {\n  module.exports = require(\"./lib/react-input-mask.production.min.js\");\n} else {\n  module.exports = require(\"./lib/react-input-mask.development.js\");\n}\n","\"use strict\";function t(t){return t&&\"object\"==typeof t&&\"default\"in t?t.default:t}var e=require(\"react\"),n=t(e),i=require(\"react-dom\");require(\"prop-types\");var r=t(require(\"invariant\"));function a(){return(a=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,function(t,e){for(var n=Object.getOwnPropertyNames(e),i=0;i<n.length;i++){var r=n[i],a=Object.getOwnPropertyDescriptor(e,r);a&&a.configurable&&void 0===t[r]&&Object.defineProperty(t,r,a)}}(t,e)}function l(t,e){if(null==t)return{};var n,i,r={},a=Object.keys(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)>=0||(r[n]=t[n]);return r}function u(t){return requestAnimationFrame(t)}function s(t){cancelAnimationFrame(t)}function c(t){var e=t.ownerDocument;return e.hasFocus()&&e.activeElement===t}function f(t){return null==t?void 0:t.ownerDocument}function h(t){var e=function(t){var e;return null==(e=f(t))?void 0:e.defaultView}(t);return!!e&&t instanceof e.HTMLElement}function g(t){return e.useCallback((function(){var e=t.current,n=\"undefined\"!=typeof window&&h(e);if(!e||!n)return null;if(\"INPUT\"!==e.nodeName&&(e=e.querySelector(\"input\")),!e)throw new Error(\"react-input-mask: inputComponent doesn't contain input node\");return e}),[t])}function v(t,n){var i,r,a,o,l=e.useRef({start:null,end:null}),f=g(t),h=e.useCallback((function(){return function(t){var e=t.selectionStart,n=t.selectionEnd;return{start:e,end:n,length:n-e}}(f())}),[f]),v=e.useCallback((function(){return l.current}),[]),d=e.useCallback((function(t){var e=f();e&&c(e)&&(!function(t,e,n){void 0===n&&(n=e),t.setSelectionRange(e,n)}(e,t.start,t.end),l.current=h())}),[f,h]),p=e.useCallback((function(){l.current=h()}),[h]),m=(i=p,r=e.useRef(null),a=e.useCallback((function(){null===r.current&&function t(){i(),r.current=u(t)}()}),[i]),o=e.useCallback((function(){s(r.current),r.current=null}),[]),e.useEffect((function(){r.current&&(o(),a())}),[a,o]),e.useEffect(s,[]),[a,o]),P=m[0],k=m[1];return e.useLayoutEffect((function(){if(n){var t=f();return t.addEventListener(\"focus\",P),t.addEventListener(\"blur\",k),c(t)&&P(),function(){t.removeEventListener(\"focus\",P),t.removeEventListener(\"blur\",k),k()}}})),{getSelection:h,getLastSelection:v,setSelection:d}}function d(t,n){var i=e.useRef(),r=v(i,n),a=r.getSelection,o=r.getLastSelection,l=r.setSelection,u=function(t,n){var i=g(t),r=e.useRef(n);return{getValue:e.useCallback((function(){return i().value}),[i]),getLastValue:e.useCallback((function(){return r.current}),[]),setValue:e.useCallback((function(t){r.current=t;var e=i();e&&(e.value=t)}),[i])}}(i,t),s=u.getValue,c=u.getLastValue,f=u.setValue;return{inputRef:i,getInputState:function(){return{value:s(),selection:a()}},getLastInputState:function(){return{value:c(),selection:o()}},setInputState:function(t){var e=t.value,n=t.selection;f(e),l(n)}}}require(\"warning\");var p=[\"disabled\",\"onBlur\",\"onChange\",\"onFocus\",\"onMouseDown\",\"readOnly\",\"value\"],m={9:/[0-9]/,a:/[A-Za-z]/,\"*\":/[A-Za-z0-9]/};var P=function(t){var e=this;this.isCharacterAllowedAtPosition=function(t,n){var i=e.maskOptions.maskPlaceholder;return!!e.isCharacterFillingPosition(t,n)||!!i&&i[n]===t},this.isCharacterFillingPosition=function(t,n){var i=e.maskOptions.mask;if(!t||n>=i.length)return!1;if(!e.isPositionEditable(n))return i[n]===t;var r=i[n];return new RegExp(r).test(t)},this.isPositionEditable=function(t){var n=e.maskOptions,i=n.mask,r=n.permanents;return t<i.length&&-1===r.indexOf(t)},this.isValueEmpty=function(t){return t.split(\"\").every((function(t,n){return!e.isPositionEditable(n)||!e.isCharacterFillingPosition(t,n)}))},this.isValueFilled=function(t){return e.getFilledLength(t)===e.maskOptions.lastEditablePosition+1},this.getDefaultSelectionForValue=function(t){var n=e.getFilledLength(t),i=e.getRightEditablePosition(n);return{start:i,end:i}},this.getFilledLength=function(t){return function(t,e){for(var n=t.length-1;n>=0;n--){if(e(t[n],n))return n}return-1}(t.split(\"\"),(function(t,n){return e.isPositionEditable(n)&&e.isCharacterFillingPosition(t,n)}))+1},this.getStringFillingLengthAtPosition=function(t,n){return t.split(\"\").reduce((function(t,n){return e.insertCharacterAtPosition(t,n,t.length)}),function(t,e){void 0===e&&(e=1);for(var n=\"\",i=0;i<e;i++)n+=t;return n}(\" \",n)).length-n},this.getLeftEditablePosition=function(t){for(var n=t;n>=0;n--)if(e.isPositionEditable(n))return n;return null},this.getRightEditablePosition=function(t){for(var n=e.maskOptions.mask,i=t;i<n.length;i++)if(e.isPositionEditable(i))return i;return null},this.formatValue=function(t){var n=e.maskOptions,i=n.maskPlaceholder,r=n.mask;if(!i){for(t=e.insertStringAtPosition(\"\",t,0);t.length<r.length&&!e.isPositionEditable(t.length);)t+=r[t.length];return t}return e.insertStringAtPosition(i,t,0)},this.clearRange=function(t,n,i){if(!i)return t;var r=n+i,a=e.maskOptions,o=a.maskPlaceholder,l=a.mask,u=t.split(\"\").map((function(t,i){var a=e.isPositionEditable(i);return!o&&i>=r&&!a?\"\":i<n||i>=r?t:a?o?o[i]:\"\":l[i]})).join(\"\");return e.formatValue(u)},this.insertCharacterAtPosition=function(t,n,i){var r=e.maskOptions,a=r.mask,o=r.maskPlaceholder;if(i>=a.length)return t;var l=e.isCharacterAllowedAtPosition(n,i),u=e.isPositionEditable(i),s=e.getRightEditablePosition(i),c=o&&s?n===o[s]:null,f=t.slice(0,i);!l&&u||(t=f+(l?n:a[i]));return l||u||c||(t=e.insertCharacterAtPosition(t,n,i+1)),t},this.insertStringAtPosition=function(t,n,i){var r=e.maskOptions,a=r.mask,o=r.maskPlaceholder;if(!n||i>=a.length)return t;var l=n.split(\"\"),u=e.isValueFilled(t)||!!o,s=t.slice(i);if(t=l.reduce((function(t,n){return e.insertCharacterAtPosition(t,n,t.length)}),t.slice(0,i)),u)t+=s.slice(t.length-i);else if(e.isValueFilled(t))t+=a.slice(t.length).join(\"\");else{t=s.split(\"\").filter((function(t,n){return e.isPositionEditable(i+n)})).reduce((function(t,n){var i=e.getRightEditablePosition(t.length);return null===i?t:(e.isPositionEditable(t.length)||(t+=a.slice(t.length,i).join(\"\")),e.insertCharacterAtPosition(t,n,t.length))}),t)}return t},this.processChange=function(t,n){var i=e.maskOptions,r=i.mask,a=i.prefix,o=i.lastEditablePosition,l=t.value,u=t.selection,s=n.value,c=n.selection,f=l,h=\"\",g=0,v=0,d=Math.min(c.start,u.start);if(u.end>c.start?(h=f.slice(c.start,u.end),v=(g=e.getStringFillingLengthAtPosition(h,d))?c.length:0):f.length<s.length&&(v=s.length-f.length),f=s,v){if(1===v&&!c.length)d=c.start===u.start?e.getRightEditablePosition(u.start):e.getLeftEditablePosition(u.start);f=e.clearRange(f,d,v)}return f=e.insertStringAtPosition(f,h,d),(d+=g)>=r.length?d=r.length:d<a.length&&!g?d=a.length:d>=a.length&&d<o&&g&&(d=e.getRightEditablePosition(d)),{value:f=e.formatValue(f),enteredString:h,selection:{start:d,end:d}}},this.maskOptions=function(t){var e=t.mask,n=t.maskPlaceholder,i=[];if(!e)return{maskPlaceholder:null,mask:null,prefix:null,lastEditablePosition:null,permanents:[]};if(\"string\"==typeof e){var r=!1,a=\"\";e.split(\"\").forEach((function(t){r||\"\\\\\"!==t?(!r&&m[t]||i.push(a.length),a+=t,r=!1):r=!0})),e=a.split(\"\").map((function(t,e){return-1===i.indexOf(e)?m[t]:t}))}else e.forEach((function(t,e){\"string\"==typeof t&&i.push(e)}));n&&(n=1===n.length?e.map((function(t,e){return-1!==i.indexOf(e)?t:n})):n.split(\"\"),i.forEach((function(t){n[t]=e[t]})),n=n.join(\"\"));for(var o=i.filter((function(t,e){return t===e})).map((function(t){return e[t]})).join(\"\"),l=e.length-1;-1!==i.indexOf(l);)l--;return{maskPlaceholder:n,prefix:o,mask:e,lastEditablePosition:l,permanents:i}}(t)},k=function(t){function e(){return t.apply(this,arguments)||this}return o(e,t),e.prototype.render=function(){var t=this.props,e=t.children,i=l(t,[\"children\"]);return n.cloneElement(e,i)},e}(n.Component),b=e.forwardRef((function(t,o){var s=t.alwaysShowMask,h=t.children,v=t.mask,m=t.maskPlaceholder,b=t.beforeMaskedStateChange,E=l(t,[\"alwaysShowMask\",\"children\",\"mask\",\"maskPlaceholder\",\"beforeMaskedStateChange\"]);!function(t){var e=t.mask,n=t.maskPlaceholder;e&&n&&1!==n.length&&n.length!==e.length&&r(!1)}(t);var S,C,y=new P({mask:v,maskPlaceholder:m}),w=!!v,O=!E.disabled&&!E.readOnly,V=null!==t.value&&void 0!==t.value,F=(S=w,C=e.useRef(),e.useEffect((function(){C.current=S})),C.current),L=d(function(t){return\"\"+t}((V?t.value:t.defaultValue)||\"\"),w),A=L.inputRef,R=L.getInputState,M=L.setInputState,x=L.getLastInputState,D=g(A);if(w&&V){var j=D(),I=j&&c(j)||s||t.value?y.formatValue(t.value):t.value;b&&(I=b({nextState:{value:I,selection:{start:null,end:null}}}).value),M(a({},x(),{value:I}))}var q=x(),N=q.selection,B=q.value;e.useLayoutEffect((function(){if(w){var t=c(D()),e=N,n=R(),i=a({},n);if(!V){var r=n.value,o=y.formatValue(r),l=y.isValueEmpty(o);!l||t||s?i.value=o:l&&!t&&(i.value=\"\")}t&&!F?i.selection=y.getDefaultSelectionForValue(i.value):V&&t&&e&&null!==e.start&&null!==e.end&&(i.selection=e),b&&(i=b({currentState:n,nextState:i})),M(i)}}));var T=a({},E,{onFocus:function(e){A.current=e.target;var n=R().value;if(w&&!y.isValueFilled(n)){var i=y.formatValue(n),r=y.getDefaultSelectionForValue(i),a={value:i,selection:r};b&&(i=(a=b({currentState:R(),nextState:a})).value,r=a.selection),M(a),i!==n&&t.onChange&&t.onChange(e),u((function(){M(x())}))}t.onFocus&&t.onFocus(e)},onBlur:function(e){var n=R().value,i=x().value;if(w&&!s&&y.isValueEmpty(i)){var r=\"\",a={value:r,selection:{start:null,end:null}};b&&(r=(a=b({currentState:R(),nextState:a})).value),M(a),r!==n&&t.onChange&&t.onChange(e)}t.onBlur&&t.onBlur(e)},onChange:w&&O?function(e){var n=R(),i=x(),r=y.processChange(n,i);b&&(r=b({currentState:n,previousState:i,nextState:r})),M(r),t.onChange&&t.onChange(e)}:t.onChange,onMouseDown:w&&O?function(e){var n=D(),i=R().value,r=f(n);if(!c(n)&&!y.isValueFilled(i)){var o=e.clientX,l=e.clientY,u=(new Date).getTime();r.addEventListener(\"mouseup\",(function t(e){if(r.removeEventListener(\"mouseup\",t),c(n)){var i=Math.abs(e.clientX-o),s=Math.abs(e.clientY-l),f=Math.max(i,s),h=(new Date).getTime()-u;if(f<=10&&h<=200||f<=5&&h<=300){var g=x(),v=a({},g,{selection:y.getDefaultSelectionForValue(g.value)});M(v)}}}))}t.onMouseDown&&t.onMouseDown(e)}:t.onMouseDown,ref:function(t){A.current=i.findDOMNode(t),!function(t){return\"function\"==typeof t}(o)?null!==o&&\"object\"==typeof o&&(o.current=t):o(t)},value:w&&V?B:t.value});return h?(function(t,e){p.filter((function(n){return null!=e.props[n]&&e.props[n]!==t[n]})).length&&r(!1)}(t,h),n.createElement(k,T,h)):n.createElement(\"input\",T)}));b.displayName=\"InputMask\",b.defaultProps={alwaysShowMask:!1,maskPlaceholder:\"_\"},module.exports=b;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar defaultCountriesData = [['Afghanistan (‫افغانستان‬‎)', 'af', '93'], ['Albania (Shqipëri)', 'al', '355'], ['Algeria (‫الجزائر‬‎)', 'dz', '213'], ['American Samoa', 'as', '1684'], ['Andorra', 'ad', '376'], ['Angola', 'ao', '244'], ['Anguilla', 'ai', '1264'], ['Antigua and Barbuda', 'ag', '1268'], ['Argentina', 'ar', '54'], ['Armenia (Հայաստան)', 'am', '374'], ['Aruba', 'aw', '297'], ['Australia', 'au', '61', 0], ['Austria (Österreich)', 'at', '43'], ['Azerbaijan (Azərbaycan)', 'az', '994'], ['Bahamas', 'bs', '1242'], ['Bahrain (‫البحرين‬‎)', 'bh', '973'], ['Bangladesh (বাংলাদেশ)', 'bd', '880'], ['Barbados', 'bb', '1246'], ['Belarus (Беларусь)', 'by', '375'], ['Belgium (België)', 'be', '32'], ['Belize', 'bz', '501'], ['Benin (Bénin)', 'bj', '229'], ['Bermuda', 'bm', '1441'], ['Bhutan (འབྲུག)', 'bt', '975'], ['Bolivia', 'bo', '591'], ['Bosnia and Herzegovina (Босна и Херцеговина)', 'ba', '387'], ['Botswana', 'bw', '267'], ['Brazil (Brasil)', 'br', '55'], ['British Indian Ocean Territory', 'io', '246'], ['British Virgin Islands', 'vg', '1284'], ['Brunei', 'bn', '673'], ['Bulgaria (България)', 'bg', '359'], ['Burkina Faso', 'bf', '226'], ['Burundi (Uburundi)', 'bi', '257'], ['Cambodia (កម្ពុជា)', 'kh', '855'], ['Cameroon (Cameroun)', 'cm', '237'], ['Canada', 'ca', '1', 1, ['204', '226', '236', '249', '250', '289', '306', '343', '365', '367', '387', '403', '416', '418', '431', '437', '438', '450', '506', '514', '519', '548', '579', '581', '587', '604', '613', '639', '647', '672', '705', '709', '742', '778', '780', '782', '807', '819', '825', '867', '873', '902', '905']], ['Cape Verde (Kabu Verdi)', 'cv', '238'], ['Caribbean Netherlands', 'bq', '599', 1], ['Cayman Islands', 'ky', '1345'], ['Central African Republic (République centrafricaine)', 'cf', '236'], ['Chad (Tchad)', 'td', '235'], ['Chile', 'cl', '56'], ['China (中国)', 'cn', '86'], ['Christmas Island', 'cx', '61', 2], ['Cocos (Keeling) Islands', 'cc', '61', 1], ['Colombia', 'co', '57'], ['Comoros (‫جزر القمر‬‎)', 'km', '269'], ['Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)', 'cd', '243'], ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'], ['Cook Islands', 'ck', '682'], ['Costa Rica', 'cr', '506'], ['Côte d’Ivoire', 'ci', '225'], ['Croatia (Hrvatska)', 'hr', '385'], ['Cuba', 'cu', '53'], ['Curaçao', 'cw', '599', 0], ['Cyprus (Κύπρος)', 'cy', '357'], ['Czech Republic (Česká republika)', 'cz', '420'], ['Denmark (Danmark)', 'dk', '45'], ['Djibouti', 'dj', '253'], ['Dominica', 'dm', '1767'], ['Dominican Republic (República Dominicana)', 'do', '1', 2, ['809', '829', '849']], ['Ecuador', 'ec', '593'], ['Egypt (‫مصر‬‎)', 'eg', '20'], ['El Salvador', 'sv', '503'], ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'], ['Eritrea', 'er', '291'], ['Estonia (Eesti)', 'ee', '372'], ['Ethiopia', 'et', '251'], ['Falkland Islands (Islas Malvinas)', 'fk', '500'], ['Faroe Islands (Føroyar)', 'fo', '298'], ['Fiji', 'fj', '679'], ['Finland (Suomi)', 'fi', '358', 0], ['France', 'fr', '33'], ['French Guiana (Guyane française)', 'gf', '594'], ['French Polynesia (Polynésie française)', 'pf', '689'], ['Gabon', 'ga', '241'], ['Gambia', 'gm', '220'], ['Georgia (საქართველო)', 'ge', '995'], ['Germany (Deutschland)', 'de', '49'], ['Ghana (Gaana)', 'gh', '233'], ['Gibraltar', 'gi', '350'], ['Greece (Ελλάδα)', 'gr', '30'], ['Greenland (Kalaallit Nunaat)', 'gl', '299'], ['Grenada', 'gd', '1473'], ['Guadeloupe', 'gp', '590', 0], ['Guam', 'gu', '1671'], ['Guatemala', 'gt', '502'], ['Guernsey', 'gg', '44', 1], ['Guinea (Guinée)', 'gn', '224'], ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'], ['Guyana', 'gy', '592'], ['Haiti', 'ht', '509'], ['Honduras', 'hn', '504'], ['Hong Kong (香港)', 'hk', '852'], ['Hungary (Magyarország)', 'hu', '36'], ['Iceland (Ísland)', 'is', '354'], ['India (भारत)', 'in', '91'], ['Indonesia', 'id', '62'], ['Iran (‫ایران‬‎)', 'ir', '98'], ['Iraq (‫العراق‬‎)', 'iq', '964'], ['Ireland', 'ie', '353'], ['Isle of Man', 'im', '44', 2], ['Israel (‫ישראל‬‎)', 'il', '972'], ['Italy (Italia)', 'it', '39', 0], ['Jamaica', 'jm', '1876'], ['Japan (日本)', 'jp', '81'], ['Jersey', 'je', '44', 3], ['Jordan (‫الأردن‬‎)', 'jo', '962'], ['Kazakhstan (Казахстан)', 'kz', '7', 1], ['Kenya', 'ke', '254'], ['Kiribati', 'ki', '686'], ['Kosovo', 'xk', '383'], ['Kuwait (‫الكويت‬‎)', 'kw', '965'], ['Kyrgyzstan (Кыргызстан)', 'kg', '996'], ['Laos (ລາວ)', 'la', '856'], ['Latvia (Latvija)', 'lv', '371'], ['Lebanon (‫لبنان‬‎)', 'lb', '961'], ['Lesotho', 'ls', '266'], ['Liberia', 'lr', '231'], ['Libya (‫ليبيا‬‎)', 'ly', '218'], ['Liechtenstein', 'li', '423'], ['Lithuania (Lietuva)', 'lt', '370'], ['Luxembourg', 'lu', '352'], ['Macau (澳門)', 'mo', '853'], ['Macedonia (FYROM) (Македонија)', 'mk', '389'], ['Madagascar (Madagasikara)', 'mg', '261'], ['Malawi', 'mw', '265'], ['Malaysia', 'my', '60'], ['Maldives', 'mv', '960'], ['Mali', 'ml', '223'], ['Malta', 'mt', '356'], ['Marshall Islands', 'mh', '692'], ['Martinique', 'mq', '596'], ['Mauritania (‫موريتانيا‬‎)', 'mr', '222'], ['Mauritius (Moris)', 'mu', '230'], ['Mayotte', 'yt', '262', 1], ['Mexico (México)', 'mx', '52'], ['Micronesia', 'fm', '691'], ['Moldova (Republica Moldova)', 'md', '373'], ['Monaco', 'mc', '377'], ['Mongolia (Монгол)', 'mn', '976'], ['Montenegro (Crna Gora)', 'me', '382'], ['Montserrat', 'ms', '1664'], ['Morocco (‫المغرب‬‎)', 'ma', '212', 0], ['Mozambique (Moçambique)', 'mz', '258'], ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'], ['Namibia (Namibië)', 'na', '264'], ['Nauru', 'nr', '674'], ['Nepal (नेपाल)', 'np', '977'], ['Netherlands (Nederland)', 'nl', '31'], ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'], ['New Zealand', 'nz', '64'], ['Nicaragua', 'ni', '505'], ['Niger (Nijar)', 'ne', '227'], ['Nigeria', 'ng', '234'], ['Niue', 'nu', '683'], ['Norfolk Island', 'nf', '672'], ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'], ['Northern Mariana Islands', 'mp', '1670'], ['Norway (Norge)', 'no', '47', 0], ['Oman (‫عُمان‬‎)', 'om', '968'], ['Pakistan (‫پاکستان‬‎)', 'pk', '92'], ['Palau', 'pw', '680'], ['Palestine (‫فلسطين‬‎)', 'ps', '970'], ['Panama (Panamá)', 'pa', '507'], ['Papua New Guinea', 'pg', '675'], ['Paraguay', 'py', '595'], ['Peru (Perú)', 'pe', '51'], ['Philippines', 'ph', '63'], ['Poland (Polska)', 'pl', '48'], ['Portugal', 'pt', '351'], ['Puerto Rico', 'pr', '1', 3, ['787', '939']], ['Qatar (‫قطر‬‎)', 'qa', '974'], ['Réunion (La Réunion)', 're', '262', 0], ['Romania (România)', 'ro', '40'], ['Russia (Россия)', 'ru', '7', 0], ['Rwanda', 'rw', '250'], ['Saint Barthélemy (Saint-Barthélemy)', 'bl', '590', 1], ['Saint Helena', 'sh', '290'], ['Saint Kitts and Nevis', 'kn', '1869'], ['Saint Lucia', 'lc', '1758'], ['Saint Martin (Saint-Martin (partie française))', 'mf', '590', 2], ['Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)', 'pm', '508'], ['Saint Vincent and the Grenadines', 'vc', '1784'], ['Samoa', 'ws', '685'], ['San Marino', 'sm', '378'], ['São Tomé and Príncipe (São Tomé e Príncipe)', 'st', '239'], ['Saudi Arabia (‫المملكة العربية السعودية‬‎)', 'sa', '966'], ['Senegal (Sénégal)', 'sn', '221'], ['Serbia (Србија)', 'rs', '381'], ['Seychelles', 'sc', '248'], ['Sierra Leone', 'sl', '232'], ['Singapore', 'sg', '65'], ['Sint Maarten', 'sx', '1721'], ['Slovakia (Slovensko)', 'sk', '421'], ['Slovenia (Slovenija)', 'si', '386'], ['Solomon Islands', 'sb', '677'], ['Somalia (Soomaaliya)', 'so', '252'], ['South Africa', 'za', '27'], ['South Korea (대한민국)', 'kr', '82'], ['South Sudan (‫جنوب السودان‬‎)', 'ss', '211'], ['Spain (España)', 'es', '34'], ['Sri Lanka (ශ්‍රී ලංකාව)', 'lk', '94'], ['Sudan (‫السودان‬‎)', 'sd', '249'], ['Suriname', 'sr', '597'], ['Svalbard and Jan Mayen', 'sj', '47', 1], ['Swaziland', 'sz', '268'], ['Sweden (Sverige)', 'se', '46'], ['Switzerland (Schweiz)', 'ch', '41'], ['Syria (‫سوريا‬‎)', 'sy', '963'], ['Taiwan (台灣)', 'tw', '886'], ['Tajikistan', 'tj', '992'], ['Tanzania', 'tz', '255'], ['Thailand (ไทย)', 'th', '66'], ['Timor-Leste', 'tl', '670'], ['Togo', 'tg', '228'], ['Tokelau', 'tk', '690'], ['Tonga', 'to', '676'], ['Trinidad and Tobago', 'tt', '1868'], ['Tunisia (‫تونس‬‎)', 'tn', '216'], ['Turkey (Türkiye)', 'tr', '90'], ['Turkmenistan', 'tm', '993'], ['Turks and Caicos Islands', 'tc', '1649'], ['Tuvalu', 'tv', '688'], ['U.S. Virgin Islands', 'vi', '1340'], ['Uganda', 'ug', '256'], ['Ukraine (Україна)', 'ua', '380'], ['United Arab Emirates (‫الإمارات العربية المتحدة‬‎)', 'ae', '971'], ['United Kingdom', 'gb', '44', 0], ['United States', 'us', '1', 0], ['Uruguay', 'uy', '598'], ['Uzbekistan (Oʻzbekiston)', 'uz', '998'], ['Vanuatu', 'vu', '678'], ['Vatican City (Città del Vaticano)', 'va', '39', 1], ['Venezuela', 've', '58'], ['Vietnam (Việt Nam)', 'vn', '84'], ['Wallis and Futuna', 'wf', '681'], ['Western Sahara (‫الصحراء الغربية‬‎)', 'eh', '212', 1], ['Yemen (‫اليمن‬‎)', 'ye', '967'], ['Zambia', 'zm', '260'], ['Zimbabwe', 'zw', '263'], ['Åland Islands', 'ax', '358', 1]];\nvar countries;\n\nfunction _formatCountriesData(countriesData) {\n  return countriesData.map(function (country) {\n    return {\n      name: country[0],\n      iso2: country[1],\n      dialCode: country[2],\n      priority: country[3] || 0,\n      areaCodes: country[4] || null\n    };\n  });\n}\n\nfunction initialize(externalCountriesList) {\n  countries = _formatCountriesData(externalCountriesList || defaultCountriesData);\n}\n\nfunction getCountries() {\n  if (!countries) {\n    initialize();\n  }\n\n  return countries;\n}\n\nvar AllCountries = {\n  initialize: initialize,\n  getCountries: getCountries\n};\nvar _default = AllCountries;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = _interopRequireDefault(require(\"./utils\"));\n\nvar _FlagBox = _interopRequireDefault(require(\"./FlagBox\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CountryList = function (_Component) {\n  _inherits(CountryList, _Component);\n\n  function CountryList() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, CountryList);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CountryList)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setDropdownPosition\", function () {\n      _this.listElement.classList.remove('hide');\n\n      var inputTop = _this.props.inputTop;\n      var windowTop = window.pageYOffset !== undefined ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;\n      var windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n      var inputOuterHeight = _this.props.inputOuterHeight;\n\n      var countryListOuterHeight = _utils.default.getOuterHeight(_this.listElement);\n\n      var dropdownFitsBelow = inputTop + inputOuterHeight + countryListOuterHeight < windowTop + windowHeight;\n      var dropdownFitsAbove = inputTop - countryListOuterHeight > windowTop;\n      var cssTop = !dropdownFitsBelow && dropdownFitsAbove ? \"-\".concat(countryListOuterHeight - 1, \"px\") : '';\n      _this.listElement.style.top = cssTop;\n\n      _this.listElement.classList.remove('v-hide');\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"appendListItem\", function (countries) {\n      var isPreferred = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var preferredCountriesCount = _this.props.preferredCountries.length;\n      return countries.map(function (country, index) {\n        var actualIndex = isPreferred ? index : index + preferredCountriesCount;\n        var countryClassObj = {\n          country: true,\n          highlight: _this.props.highlightedCountry === actualIndex,\n          preferred: isPreferred\n        };\n        var countryClass = (0, _classnames.default)(countryClassObj);\n        var onMouseOverOrFocus = _this.props.isMobile ? function () {} : _this.handleMouseOver;\n        var keyPrefix = isPreferred ? 'pref-' : '';\n        return _react.default.createElement(_FlagBox.default, {\n          key: \"\".concat(keyPrefix).concat(country.iso2),\n          dialCode: country.dialCode,\n          isoCode: country.iso2,\n          name: country.name,\n          onMouseOver: onMouseOverOrFocus,\n          onClick: function onClick() {\n            return _this.props.setFlag(country.iso2);\n          },\n          onFocus: onMouseOverOrFocus,\n          flagRef: function flagRef(selectedFlag) {\n            _this.selectedFlag = selectedFlag;\n          },\n          innerFlagRef: function innerFlagRef(selectedFlagInner) {\n            _this.selectedFlagInner = selectedFlagInner;\n          },\n          countryClass: countryClass\n        });\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMouseOver\", function (e) {\n      if (e.currentTarget.getAttribute('class').indexOf('country') > -1) {\n        var selectedIndex = _utils.default.retrieveLiIndex(e.currentTarget);\n\n        _this.props.changeHighlightCountry(true, selectedIndex);\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(CountryList, [{\n    key: \"shouldComponentUpdate\",\n    value: function shouldComponentUpdate(nextProps) {\n      var shouldUpdate = !_utils.default.shallowEquals(this.props, nextProps);\n\n      if (shouldUpdate && nextProps.showDropdown) {\n        this.listElement.classList.add('v-hide');\n        this.setDropdownPosition();\n      }\n\n      return shouldUpdate;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          preferredCountries = _this$props.preferredCountries,\n          countries = _this$props.countries,\n          showDropdown = _this$props.showDropdown;\n      var className = (0, _classnames.default)('country-list', {\n        hide: !showDropdown\n      });\n      var preferredOptions = this.appendListItem(preferredCountries, true);\n      var allOptions = this.appendListItem(countries);\n\n      var divider = _react.default.createElement(\"div\", {\n        className: \"divider\"\n      });\n\n      return _react.default.createElement(\"ul\", {\n        ref: function ref(listElement) {\n          _this2.listElement = listElement;\n        },\n        className: className\n      }, preferredOptions, preferredCountries.length > 0 ? divider : null, allOptions);\n    }\n  }]);\n\n  return CountryList;\n}(_react.Component);\n\nexports.default = CountryList;\nCountryList.__docgenInfo = {\n  \"description\": \"\",\n  \"methods\": [{\n    \"name\": \"setDropdownPosition\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"appendListItem\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"countries\",\n      \"type\": null\n    }, {\n      \"name\": \"isPreferred\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleMouseOver\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }],\n  \"displayName\": \"CountryList\",\n  \"props\": {\n    \"setFlag\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"countries\": {\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"object\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"inputTop\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"inputOuterHeight\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"preferredCountries\": {\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"object\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"highlightedCountry\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"changeHighlightCountry\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"showDropdown\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"isMobile\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FlagBox = function FlagBox(_ref) {\n  var dialCode = _ref.dialCode,\n      isoCode = _ref.isoCode,\n      name = _ref.name,\n      onMouseOver = _ref.onMouseOver,\n      onFocus = _ref.onFocus,\n      onClick = _ref.onClick,\n      flagRef = _ref.flagRef,\n      innerFlagRef = _ref.innerFlagRef,\n      countryClass = _ref.countryClass;\n  return _react.default.createElement(\"li\", {\n    className: countryClass,\n    \"data-dial-code\": dialCode,\n    \"data-country-code\": isoCode,\n    onMouseOver: onMouseOver,\n    onFocus: onFocus,\n    onClick: onClick\n  }, _react.default.createElement(\"div\", {\n    ref: flagRef,\n    className: \"flag-box\"\n  }, _react.default.createElement(\"div\", {\n    ref: innerFlagRef,\n    className: \"iti-flag \".concat(isoCode)\n  })), _react.default.createElement(\"span\", {\n    className: \"country-name\"\n  }, name), _react.default.createElement(\"span\", {\n    className: \"dial-code\"\n  }, \"+ \".concat(dialCode)));\n};\n\nFlagBox.defaultProps = {\n  onFocus: function onFocus() {},\n  onMouseOver: function onMouseOver() {},\n  onClick: function onClick() {}\n};\nvar _default = FlagBox;\nexports.default = _default;\nFlagBox.__docgenInfo = {\n  \"description\": \"\",\n  \"methods\": [],\n  \"displayName\": \"FlagBox\",\n  \"props\": {\n    \"onFocus\": {\n      \"defaultValue\": {\n        \"value\": \"() => {}\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"onMouseOver\": {\n      \"defaultValue\": {\n        \"value\": \"() => {}\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"onClick\": {\n      \"defaultValue\": {\n        \"value\": \"() => {}\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"dialCode\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": true,\n      \"description\": \"\"\n    },\n    \"isoCode\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": true,\n      \"description\": \"\"\n    },\n    \"name\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": true,\n      \"description\": \"\"\n    },\n    \"flagRef\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"innerFlagRef\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"countryClass\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": true,\n      \"description\": \"\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CountryList = _interopRequireDefault(require(\"./CountryList\"));\n\nvar _RootModal = _interopRequireDefault(require(\"./RootModal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar FlagDropDown = function (_Component) {\n  _inherits(FlagDropDown, _Component);\n\n  function FlagDropDown() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, FlagDropDown);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FlagDropDown)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"genSelectedDialCode\", function () {\n      var _this$props = _this.props,\n          separateDialCode = _this$props.separateDialCode,\n          dialCode = _this$props.dialCode;\n      return separateDialCode ? _react.default.createElement(\"div\", {\n        className: \"selected-dial-code\"\n      }, dialCode) : null;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"genArrow\", function () {\n      var _this$props2 = _this.props,\n          allowDropdown = _this$props2.allowDropdown,\n          showDropdown = _this$props2.showDropdown;\n      var arrowClasses = (0, _classnames.default)('arrow', showDropdown ? 'up' : 'down');\n      return allowDropdown ? _react.default.createElement(\"div\", {\n        className: arrowClasses\n      }) : null;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"genFlagClassName\", function () {\n      return (0, _classnames.default)('iti-flag', _defineProperty({}, _this.props.countryCode, !!_this.props.countryCode));\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"genCountryList\", function () {\n      var _this$props3 = _this.props,\n          dropdownContainer = _this$props3.dropdownContainer,\n          showDropdown = _this$props3.showDropdown,\n          isMobile = _this$props3.isMobile,\n          allowDropdown = _this$props3.allowDropdown,\n          setFlag = _this$props3.setFlag,\n          countries = _this$props3.countries,\n          inputTop = _this$props3.inputTop,\n          inputOuterHeight = _this$props3.inputOuterHeight,\n          preferredCountries = _this$props3.preferredCountries,\n          highlightedCountry = _this$props3.highlightedCountry,\n          changeHighlightCountry = _this$props3.changeHighlightCountry;\n      return _react.default.createElement(_CountryList.default, {\n        ref: function ref(countryList) {\n          _this.countryList = countryList;\n        },\n        dropdownContainer: dropdownContainer,\n        isMobile: isMobile,\n        showDropdown: allowDropdown && showDropdown,\n        setFlag: setFlag,\n        countries: countries,\n        inputTop: inputTop,\n        inputOuterHeight: inputOuterHeight,\n        preferredCountries: preferredCountries,\n        highlightedCountry: highlightedCountry,\n        changeHighlightCountry: changeHighlightCountry\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(FlagDropDown, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props4 = this.props,\n          refCallback = _this$props4.refCallback,\n          allowDropdown = _this$props4.allowDropdown,\n          clickSelectedFlag = _this$props4.clickSelectedFlag,\n          handleSelectedFlagKeydown = _this$props4.handleSelectedFlagKeydown,\n          titleTip = _this$props4.titleTip,\n          dropdownContainer = _this$props4.dropdownContainer,\n          showDropdown = _this$props4.showDropdown;\n      return _react.default.createElement(\"div\", {\n        ref: refCallback,\n        className: \"flag-container\"\n      }, _react.default.createElement(\"div\", {\n        className: \"selected-flag\",\n        tabIndex: allowDropdown ? '0' : '',\n        onClick: clickSelectedFlag,\n        onKeyDown: handleSelectedFlagKeydown,\n        title: titleTip\n      }, _react.default.createElement(\"div\", {\n        className: this.genFlagClassName()\n      }), this.genSelectedDialCode(), this.genArrow()), dropdownContainer && showDropdown ? _react.default.createElement(_RootModal.default, null, this.genCountryList()) : this.genCountryList());\n    }\n  }]);\n\n  return FlagDropDown;\n}(_react.Component);\n\nexports.default = FlagDropDown;\nFlagDropDown.__docgenInfo = {\n  \"description\": \"\",\n  \"methods\": [{\n    \"name\": \"genSelectedDialCode\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"genArrow\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"genFlagClassName\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"genCountryList\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }],\n  \"displayName\": \"FlagDropDown\",\n  \"props\": {\n    \"allowDropdown\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"dropdownContainer\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"separateDialCode\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"dialCode\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"countryCode\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"showDropdown\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"clickSelectedFlag\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"handleSelectedFlagKeydown\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"isMobile\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"setFlag\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"countries\": {\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"object\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"inputTop\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"inputOuterHeight\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"preferredCountries\": {\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"object\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"highlightedCountry\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"changeHighlightCountry\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"titleTip\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"refCallback\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": true,\n      \"description\": \"\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _underscore = _interopRequireDefault(require(\"underscore.deferred\"));\n\nvar _AllCountries = _interopRequireDefault(require(\"./AllCountries\"));\n\nvar _FlagDropDown = _interopRequireDefault(require(\"./FlagDropDown\"));\n\nvar _TelInput = _interopRequireDefault(require(\"./TelInput\"));\n\nvar _utils = _interopRequireDefault(require(\"./utils\"));\n\nvar _constants = require(\"./constants\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\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 (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar mobileUserAgentRegexp = /Android.+Mobile|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;\n\nvar IntlTelInput = function (_Component) {\n  _inherits(IntlTelInput, _Component);\n\n  _createClass(IntlTelInput, null, [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      var newState = null;\n\n      if (typeof nextProps.value !== 'undefined' && prevState.value !== nextProps.value) {\n        newState = {\n          value: nextProps.value\n        };\n      }\n\n      if (prevState.disabled !== nextProps.disabled) {\n        newState = {\n          disabled: nextProps.disabled\n        };\n      }\n\n      return newState;\n    }\n  }]);\n\n  function IntlTelInput(_props) {\n    var _this;\n\n    _classCallCheck(this, IntlTelInput);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(IntlTelInput).call(this, _props));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateFlagOnDefaultCountryChange\", function (countryCode) {\n      _this.setFlag(countryCode, false);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getTempCountry\", function (countryCode) {\n      if (countryCode === 'auto') {\n        return 'auto';\n      }\n\n      var countryData = _utils.default.getCountryData(_this.countries, countryCode);\n\n      if (!countryData.iso2) {\n        if (_this.props.preferredCountries.length > 0) {\n          countryData = _utils.default.getCountryData(_this.countries, _this.props.preferredCountries[0]);\n        } else {\n          countryData = _AllCountries.default.getCountries()[0];\n        }\n      }\n\n      return countryData.iso2;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setNumber\", function (number, preventFormat) {\n      _this.updateFlagFromNumber(number);\n\n      _this.updateValFromNumber(number, !preventFormat);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setFlagDropdownRef\", function (ref) {\n      _this.flagDropDown = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setTelRef\", function (ref) {\n      _this.tel = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setFlag\", function (countryCode, isInit) {\n      var prevCountry = _this.selectedCountryData && _this.selectedCountryData.iso2 ? _this.selectedCountryData : {};\n      _this.selectedCountryData = countryCode ? _utils.default.getCountryData(_this.countries, countryCode, false, false, _this.props.noCountryDataHandler) : {};\n\n      if (_this.selectedCountryData.iso2) {\n        _this.defaultCountry = _this.selectedCountryData.iso2;\n      }\n\n      var title = countryCode ? \"\".concat(_this.selectedCountryData.name, \": +\").concat(_this.selectedCountryData.dialCode) : 'Unknown';\n      var dialCode = _this.state.dialCode;\n\n      if (_this.props.separateDialCode) {\n        dialCode = _this.selectedCountryData.dialCode ? \"+\".concat(_this.selectedCountryData.dialCode) : '';\n\n        if (prevCountry.dialCode) {\n          delete _this.wrapperClass[\"iti-sdc-\".concat(prevCountry.dialCode.length + 1)];\n        }\n\n        if (dialCode) {\n          _this.wrapperClass[\"iti-sdc-\".concat(dialCode.length)] = true;\n        }\n      }\n\n      var selectedIndex = 0;\n\n      if (countryCode && countryCode !== 'auto') {\n        selectedIndex = _utils.default.findIndex(_this.preferredCountries, function (country) {\n          return country.iso2 === countryCode;\n        });\n\n        if (selectedIndex === -1) {\n          selectedIndex = _utils.default.findIndex(_this.countries, function (country) {\n            return country.iso2 === countryCode;\n          });\n          if (selectedIndex === -1) selectedIndex = 0;\n          selectedIndex += _this.preferredCountries.length;\n        }\n      }\n\n      if (_this.tel && _this.state.showDropdown) {\n        _this.tel.focus();\n      }\n\n      var newNumber = _this.updateDialCode(_this.selectedCountryData.dialCode, !isInit);\n\n      _this.setState({\n        value: newNumber,\n        showDropdown: false,\n        highlightedCountry: selectedIndex,\n        countryCode: countryCode,\n        title: title,\n        dialCode: dialCode\n      }, function () {\n        _this.updatePlaceholder(_this.props);\n\n        _this.wrapperClass.active = false;\n\n        if (!isInit && prevCountry.iso2 !== countryCode && typeof _this.props.onSelectFlag === 'function') {\n          var currentNumber = _this.state.value;\n\n          var fullNumber = _this.formatFullNumber(currentNumber);\n\n          var isValid = _this.isValidNumber(fullNumber);\n\n          _this.props.onSelectFlag(currentNumber, _this.selectedCountryData, fullNumber, isValid);\n        }\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getExtension\", function (number) {\n      if (window.intlTelInputUtils) {\n        return window.intlTelInputUtils.getExtension(_this.getFullNumber(number), _this.selectedCountryData.iso2);\n      }\n\n      return '';\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getNumber\", function (number, format) {\n      if (window.intlTelInputUtils) {\n        return window.intlTelInputUtils.formatNumber(_this.getFullNumber(number), _this.selectedCountryData.iso2, format);\n      }\n\n      return '';\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getFullNumber\", function (number) {\n      var prefix = _this.props.separateDialCode ? \"+\".concat(_this.selectedCountryData.dialCode) : '';\n      return prefix + number;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getDialCode\", function (number) {\n      var dialCode = '';\n\n      if (number.charAt(0) === '+') {\n        var numericChars = '';\n\n        for (var i = 0, max = number.length; i < max; i++) {\n          var c = number.charAt(i);\n\n          if (_utils.default.isNumeric(c)) {\n            numericChars += c;\n\n            if (_this.countryCodes[numericChars]) {\n              dialCode = number.substr(0, i + 1);\n            }\n\n            if (numericChars.length === 4) {\n              break;\n            }\n          }\n        }\n      }\n\n      return dialCode;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isUnknownNanp\", function (number, dialCode) {\n      return dialCode === '+1' && _utils.default.getNumeric(number).length >= 4;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"addCountryCode\", function (countryCodes, iso2, dialCode, priority) {\n      if (!(dialCode in countryCodes)) {\n        countryCodes[dialCode] = [];\n      }\n\n      var index = priority || 0;\n      countryCodes[dialCode][index] = iso2;\n      return countryCodes;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"processAllCountries\", function () {\n      if (_this.props.onlyCountries.length) {\n        _this.filterCountries(_this.props.onlyCountries, function (inArray) {\n          return inArray !== -1;\n        });\n      } else if (_this.props.excludeCountries.length) {\n        _this.filterCountries(_this.props.excludeCountries, function (inArray) {\n          return inArray === -1;\n        });\n      } else {\n        _this.countries = _AllCountries.default.getCountries();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"processCountryCodes\", function () {\n      _this.countryCodes = {};\n\n      for (var i = 0; i < _this.countries.length; i++) {\n        var c = _this.countries[i];\n\n        _this.addCountryCode(_this.countryCodes, c.iso2, c.dialCode, c.priority);\n\n        if (c.areaCodes) {\n          for (var j = 0; j < c.areaCodes.length; j++) {\n            _this.addCountryCode(_this.countryCodes, c.iso2, c.dialCode + c.areaCodes[j]);\n          }\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"processPreferredCountries\", function () {\n      _this.preferredCountries = [];\n\n      for (var i = 0, max = _this.props.preferredCountries.length; i < max; i++) {\n        var countryCode = _this.props.preferredCountries[i].toLowerCase();\n\n        var countryData = _utils.default.getCountryData(_this.countries, countryCode, true);\n\n        if (countryData) {\n          _this.preferredCountries.push(countryData);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setInitialState\", function () {\n      var val = _this.props.value || _this.props.defaultValue || '';\n\n      if (_this.getDialCode(val)) {\n        _this.updateFlagFromNumber(val, true);\n      } else if (_this.tempCountry !== 'auto') {\n        if (_this.tempCountry) {\n          _this.setFlag(_this.tempCountry, true);\n        } else {\n          _this.defaultCountry = _this.preferredCountries.length ? _this.preferredCountries[0].iso2 : _this.countries[0].iso2;\n\n          if (!val) {\n            _this.setFlag(_this.defaultCountry, true);\n          }\n        }\n\n        if (!val && !_this.nationalMode && !_this.autoHideDialCode && !_this.props.separateDialCode) {\n          _this.setState({\n            value: \"+\".concat(_this.selectedCountryData.dialCode)\n          });\n        }\n      }\n\n      var doNotify = true;\n\n      if (val) {\n        _this.updateValFromNumber(val, _this.props.formatOnInit, doNotify);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initRequests\", function () {\n      import('libphonenumber-js-utils').then(function () {\n        _this.loadUtils();\n\n        _this.utilsScriptDeferred.resolve();\n      }).catch(function () {\n        return 'An error occurred while loading the component';\n      });\n\n      if (_this.tempCountry === 'auto') {\n        _this.loadAutoCountry();\n      } else {\n        _this.autoCountryDeferred.resolve();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"loadCountryFromLocalStorage\", function () {\n      try {\n        return window.localStorage !== undefined ? window.localStorage.getItem('itiAutoCountry') : '';\n      } catch (e) {\n        return '';\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"loadAutoCountry\", function () {\n      var lsAutoCountry = _this.loadCountryFromLocalStorage();\n\n      if (lsAutoCountry) {\n        _this.autoCountry = lsAutoCountry;\n      }\n\n      if (_this.autoCountry) {\n        _this.autoCountryLoaded();\n      } else if (!_this.startedLoadingAutoCountry) {\n        _this.startedLoadingAutoCountry = true;\n\n        if (typeof _this.props.geoIpLookup === 'function') {\n          _this.props.geoIpLookup(function (countryCode) {\n            _this.autoCountry = countryCode.toLowerCase();\n\n            if (window.localStorage !== undefined) {\n              window.localStorage.setItem('itiAutoCountry', _this.autoCountry);\n            }\n\n            _this.autoCountryLoaded();\n          });\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cap\", function (number) {\n      var max = _this.tel ? _this.tel.getAttribute('maxlength') : number;\n      return max && number.length > max ? number.substr(0, max) : number;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"removeEmptyDialCode\", function () {\n      var value = _this.state.value;\n      var startsPlus = value.charAt(0) === '+';\n\n      if (startsPlus) {\n        var numeric = _utils.default.getNumeric(value);\n\n        if (!numeric || _this.selectedCountryData.dialCode === numeric) {\n          _this.setState({\n            value: ''\n          });\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleUpDownKey\", function (key) {\n      var current = _this.flagDropDown.querySelectorAll('.highlight')[0];\n\n      var prevElement = current ? current.previousElementSibling : undefined;\n      var nextElement = current ? current.nextElementSibling : undefined;\n      var next = key === _constants.KEYS.UP ? prevElement : nextElement;\n\n      if (next) {\n        if (next.getAttribute('class').indexOf('divider') > -1) {\n          next = key === _constants.KEYS.UP ? next.previousElementSibling : next.nextElementSibling;\n        }\n\n        _this.scrollTo(next);\n\n        var selectedIndex = _utils.default.retrieveLiIndex(next);\n\n        _this.setState({\n          showDropdown: true,\n          highlightedCountry: selectedIndex\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnterKey\", function () {\n      var current = _this.flagDropDown.querySelectorAll('.highlight')[0];\n\n      if (current) {\n        var selectedIndex = _utils.default.retrieveLiIndex(current);\n\n        var countryCode = current.getAttribute('data-country-code');\n\n        _this.setState({\n          showDropdown: false,\n          highlightedCountry: selectedIndex,\n          countryCode: countryCode\n        }, function () {\n          _this.setFlag(_this.state.countryCode);\n\n          _this.unbindDocumentClick();\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"searchForCountry\", function (query) {\n      for (var i = 0, max = _this.countries.length; i < max; i++) {\n        if (_utils.default.startsWith(_this.countries[i].name, query)) {\n          var listItem = _this.flagDropDown.querySelector(\".country-list [data-country-code=\\\"\".concat(_this.countries[i].iso2, \"\\\"]:not(.preferred)\"));\n\n          var selectedIndex = _utils.default.retrieveLiIndex(listItem);\n\n          _this.setState({\n            showDropdown: true,\n            highlightedCountry: selectedIndex\n          });\n\n          _this.scrollTo(listItem, true);\n\n          break;\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"formatNumber\", function (number) {\n      if (window.intlTelInputUtils && _this.selectedCountryData) {\n        var format = window.intlTelInputUtils.numberFormat.INTERNATIONAL;\n\n        if (!_this.props.separateDialCode && _this.nationalMode || number.charAt(0) !== '+') {\n            format = window.intlTelInputUtils.numberFormat.NATIONAL;\n          }\n\n        number = window.intlTelInputUtils.formatNumber(number, _this.selectedCountryData.iso2, format);\n      }\n\n      return number;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateValFromNumber\", function (number, doFormat) {\n      var doNotify = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n      if (doFormat && window.intlTelInputUtils && _this.selectedCountryData) {\n        var format = !_this.props.separateDialCode && (_this.nationalMode || number.charAt(0) !== '+') ? window.intlTelInputUtils.numberFormat.NATIONAL : window.intlTelInputUtils.numberFormat.INTERNATIONAL;\n        number = window.intlTelInputUtils.formatNumber(number, _this.selectedCountryData.iso2, format);\n      }\n\n      number = _this.beforeSetNumber(number);\n\n      _this.setState({\n        showDropdown: false,\n        value: number\n      }, function () {\n        if (doNotify) {\n          _this.notifyPhoneNumberChange(number);\n        }\n\n        _this.unbindDocumentClick();\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateFlagFromNumber\", function (number, isInit) {\n      if (number && _this.nationalMode && _this.selectedCountryData && _this.selectedCountryData.dialCode === '1' && number.charAt(0) !== '+') {\n        if (number.charAt(0) !== '1') {\n          number = \"1\".concat(number);\n        }\n\n        number = \"+\".concat(number);\n      }\n\n      var dialCode = _this.getDialCode(number);\n\n      var countryCode = null;\n\n      if (dialCode) {\n        var countryCodes = _this.countryCodes[_utils.default.getNumeric(dialCode)];\n\n        var alreadySelected = _this.selectedCountryData && countryCodes.indexOf(_this.selectedCountryData.iso2) !== -1;\n\n        if (!alreadySelected || _this.isUnknownNanp(number, dialCode)) {\n          for (var j = 0; j < countryCodes.length; j++) {\n            if (countryCodes[j]) {\n              countryCode = countryCodes[j];\n              break;\n            }\n          }\n        }\n      } else if (number.charAt(0) === '+' && _utils.default.getNumeric(number).length) {\n        countryCode = null;\n      }\n\n      if (countryCode !== null) {\n        _this.setFlag(countryCode, isInit);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"filterCountries\", function (countryArray, processFunc) {\n      var i;\n\n      for (i = 0; i < countryArray.length; i++) {\n        countryArray[i] = countryArray[i].toLowerCase();\n      }\n\n      _this.countries = [];\n\n      for (i = 0; i < _AllCountries.default.getCountries().length; i++) {\n        if (processFunc(countryArray.indexOf(_AllCountries.default.getCountries()[i].iso2))) {\n          _this.countries.push(_AllCountries.default.getCountries()[i]);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"processCountryData\", function () {\n      _AllCountries.default.initialize(_this.props.countriesData);\n\n      _this.processAllCountries.call(_assertThisInitialized(_assertThisInitialized(_this)));\n\n      _this.processCountryCodes.call(_assertThisInitialized(_assertThisInitialized(_this)));\n\n      _this.processPreferredCountries.call(_assertThisInitialized(_assertThisInitialized(_this)));\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleOnBlur\", function (e) {\n      _this.removeEmptyDialCode();\n\n      if (typeof _this.props.onPhoneNumberBlur === 'function') {\n        var value = _this.state.value;\n\n        var fullNumber = _this.formatFullNumber(value);\n\n        var isValid = _this.isValidNumber(fullNumber);\n\n        _this.props.onPhoneNumberBlur(isValid, value, _this.selectedCountryData, fullNumber, _this.getExtension(value), e);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleOnFocus\", function (e) {\n      if (typeof _this.props.onPhoneNumberFocus === 'function') {\n        var value = _this.state.value;\n\n        var fullNumber = _this.formatFullNumber(value);\n\n        var isValid = _this.isValidNumber(fullNumber);\n\n        _this.props.onPhoneNumberFocus(isValid, value, _this.selectedCountryData, fullNumber, _this.getExtension(value), e);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"bindDocumentClick\", function () {\n      _this.isOpening = true;\n      document.querySelector('html').addEventListener('click', _this.handleDocumentClick);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"unbindDocumentClick\", function () {\n      document.querySelector('html').removeEventListener('click', _this.handleDocumentClick);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clickSelectedFlag\", function (e) {\n      var _this$props = _this.props,\n          allowDropdown = _this$props.allowDropdown,\n          onFlagClick = _this$props.onFlagClick;\n      var _this$state = _this.state,\n          showDropdown = _this$state.showDropdown,\n          disabled = _this$state.disabled,\n          readonly = _this$state.readonly;\n\n      if (!showDropdown && !disabled && !readonly && allowDropdown) {\n        _this.setState({\n          showDropdown: true,\n          offsetTop: _utils.default.offset(_this.tel).top,\n          outerHeight: _utils.default.getOuterHeight(_this.tel)\n        }, function () {\n          var highlightItem = _this.flagDropDown.querySelector('.highlight');\n\n          if (highlightItem) {\n            _this.scrollTo(highlightItem, true);\n          }\n        });\n      } else if (showDropdown) {\n        _this.toggleDropdown(false);\n      }\n\n      if (typeof onFlagClick === 'function') {\n        onFlagClick(e);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updatePlaceholder\", function () {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n\n      if (window.intlTelInputUtils && props.autoPlaceholder && _this.selectedCountryData) {\n        var numberType = window.intlTelInputUtils.numberType[props.numberType];\n        var placeholder = _this.selectedCountryData.iso2 ? window.intlTelInputUtils.getExampleNumber(_this.selectedCountryData.iso2, _this.nationalMode, numberType) : '';\n        placeholder = _this.beforeSetNumber(placeholder, props);\n\n        if (typeof props.customPlaceholder === 'function') {\n          placeholder = props.customPlaceholder(placeholder, _this.selectedCountryData);\n        }\n\n        _this.setState({\n          placeholder: placeholder\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"toggleDropdown\", function (status) {\n      _this.setState({\n        showDropdown: !!status\n      }, function () {\n        if (!_this.state.showDropdown) {\n          _this.unbindDocumentClick();\n        }\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollTo\", function (element, middle) {\n      try {\n        var container = _this.flagDropDown.querySelector('.country-list');\n\n        var containerHeight = parseFloat(window.getComputedStyle(container).getPropertyValue('height'));\n\n        var containerTop = _utils.default.offset(container).top;\n\n        var containerBottom = containerTop + containerHeight;\n\n        var elementHeight = _utils.default.getOuterHeight(element);\n\n        var elementTop = _utils.default.offset(element).top;\n\n        var elementBottom = elementTop + elementHeight;\n        var middleOffset = containerHeight / 2 - elementHeight / 2;\n        var newScrollTop = elementTop - containerTop + container.scrollTop;\n\n        if (elementTop < containerTop) {\n          if (middle) {\n            newScrollTop -= middleOffset;\n          }\n\n          container.scrollTop = newScrollTop;\n        } else if (elementBottom > containerBottom) {\n          if (middle) {\n            newScrollTop += middleOffset;\n          }\n\n          var heightDifference = containerHeight - elementHeight;\n          container.scrollTop = newScrollTop - heightDifference;\n        }\n      } catch (err) {}\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateDialCode\", function (newDialCode, hasSelectedListItem) {\n      var currentNumber = _this.state.value;\n\n      if (!newDialCode) {\n        return currentNumber;\n      }\n\n      var newNumber = currentNumber;\n      newDialCode = \"+\".concat(newDialCode);\n\n      if (currentNumber.charAt(0) === '+') {\n        var prevDialCode = _this.getDialCode(currentNumber);\n\n        if (prevDialCode) {\n          newNumber = currentNumber.replace(prevDialCode, newDialCode);\n        } else {\n          newNumber = newDialCode;\n        }\n      } else if (_this.nationalMode || _this.props.separateDialCode) {} else if (currentNumber) {\n        newNumber = newDialCode + currentNumber;\n      } else if (hasSelectedListItem || !_this.autoHideDialCode) {\n        newNumber = newDialCode;\n      }\n\n      if (newNumber !== currentNumber) {\n        _this.notifyPhoneNumberChange(newNumber);\n      }\n\n      return newNumber;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"generateMarkup\", function () {\n      _this.wrapperClass['separate-dial-code'] = _this.props.separateDialCode;\n\n      if (_this.isMobile && _this.props.useMobileFullscreenDropdown) {\n        document.querySelector('body').classList.add('iti-mobile');\n        _this.dropdownContainer = 'body';\n        window.addEventListener('scroll', _this.handleWindowScroll);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSelectedFlagKeydown\", function (e) {\n      if (!_this.state.showDropdown && (e.which === _constants.KEYS.UP || e.which === _constants.KEYS.DOWN || e.which === _constants.KEYS.SPACE || e.which === _constants.KEYS.ENTER)) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        _this.toggleDropdown(true);\n      }\n\n      if (e.which === _constants.KEYS.TAB) {\n        _this.toggleDropdown(false);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidNumber\", function (number) {\n      var val = _utils.default.trim(number);\n\n      var countryCode = _this.nationalMode || _this.props.separateDialCode ? _this.selectedCountryData.iso2 : '';\n\n      if (window.intlTelInputUtils) {\n        return window.intlTelInputUtils.isValidNumber(val, countryCode);\n      }\n\n      return false;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"formatFullNumber\", function (number) {\n      return window.intlTelInputUtils ? _this.getNumber(number, window.intlTelInputUtils.numberFormat.INTERNATIONAL) : number;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"notifyPhoneNumberChange\", function (newNumber) {\n      if (typeof _this.props.onPhoneNumberChange === 'function') {\n        var fullNumber = _this.formatFullNumber(newNumber);\n\n        var isValid = _this.isValidNumber(fullNumber);\n\n        _this.props.onPhoneNumberChange(isValid, newNumber, _this.selectedCountryData, fullNumber, _this.getExtension(newNumber));\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"beforeSetNumber\", function (number) {\n      var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.props;\n\n      if (props.separateDialCode) {\n        var dialCode = _this.getDialCode(number);\n\n        if (dialCode) {\n          if (_this.selectedCountryData.areaCodes !== null) {\n            dialCode = \"+\".concat(_this.selectedCountryData.dialCode);\n          }\n\n          var start = number[dialCode.length] === ' ' || number[dialCode.length] === '-' ? dialCode.length + 1 : dialCode.length;\n          number = number.substr(start);\n        }\n      }\n\n      return _this.cap(number);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleWindowScroll\", function () {\n      _this.setState({\n        showDropdown: false\n      }, function () {\n        window.removeEventListener('scroll', _this.handleWindowScroll);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleDocumentKeyDown\", function (e) {\n      var queryTimer;\n      e.preventDefault();\n\n      if (e.which === _constants.KEYS.UP || e.which === _constants.KEYS.DOWN) {\n        _this.handleUpDownKey(e.which);\n      } else if (e.which === _constants.KEYS.ENTER) {\n        _this.handleEnterKey();\n      } else if (e.which === _constants.KEYS.ESC) {\n        _this.setState({\n          showDropdown: false\n        });\n      } else if (e.which >= _constants.KEYS.A && e.which <= _constants.KEYS.Z || e.which === _constants.KEYS.SPACE) {\n        if (queryTimer) {\n          clearTimeout(queryTimer);\n        }\n\n        if (!_this.query) {\n          _this.query = '';\n        }\n\n        _this.query += String.fromCharCode(e.which);\n\n        _this.searchForCountry(_this.query);\n\n        queryTimer = setTimeout(function () {\n          _this.query = '';\n        }, 1000);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleDocumentClick\", function (e) {\n      var targetClass = e.target.getAttribute('class');\n\n      if (targetClass === null || targetClass && targetClass.indexOf('country') === -1 && targetClass.indexOf('selected-flag') === -1 && targetClass.indexOf('iti-flag') === -1 && targetClass.indexOf('iti-arrow') === -1) {\n        _this.isOpening = false;\n      }\n\n      if (!_this.isOpening) {\n        _this.toggleDropdown(false);\n      }\n\n      _this.isOpening = false;\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (e) {\n      var cursorPosition = e.target.selectionStart;\n      var previousValue = e.target.value;\n      var priorValue = _this.state.value;\n      var previousStringBeforeCursor = previousValue === '' ? previousValue : previousValue.substring(0, cursorPosition);\n      var formattedValue = previousValue.length < priorValue.length ? previousValue : _this.formatNumber(e.target.value);\n      var value = _this.props.format ? formattedValue : e.target.value;\n      cursorPosition = _utils.default.getCursorPositionAfterFormating(previousStringBeforeCursor, previousValue, value);\n\n      if (_this.props.value !== undefined) {\n        _this.setState({\n          cursorPosition: cursorPosition\n        }, function () {\n          _this.updateFlagFromNumber(value);\n\n          _this.notifyPhoneNumberChange(value);\n        });\n      } else {\n        _this.setState({\n          value: value,\n          cursorPosition: cursorPosition\n        }, function () {\n          _this.updateFlagFromNumber(value);\n\n          _this.notifyPhoneNumberChange(value);\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"changeHighlightCountry\", function (showDropdown, selectedIndex) {\n      _this.setState({\n        showDropdown: showDropdown,\n        highlightedCountry: selectedIndex\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"loadUtils\", function () {\n      if (window.intlTelInputUtils) {\n        _this.utilsScriptDeferred.resolve();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoCountryLoaded\", function () {\n      if (_this.tempCountry === 'auto') {\n        _this.tempCountry = _this.autoCountry;\n\n        _this.autoCountryDeferred.resolve();\n      }\n    });\n\n    _this.wrapperClass = {};\n    _this.autoCountry = '';\n    _this.tempCountry = '';\n    _this.startedLoadingAutoCountry = false;\n    _this.deferreds = [];\n    _this.autoCountryDeferred = new _underscore.default.Deferred();\n    _this.utilsScriptDeferred = new _underscore.default.Deferred();\n    _this.isOpening = false;\n    _this.isMobile = typeof navigator !== 'undefined' && mobileUserAgentRegexp.test(navigator.userAgent);\n    _this.preferredCountries = [];\n    _this.countries = [];\n    _this.countryCodes = {};\n    _this.windowLoaded = false;\n    _this.query = '';\n    _this.selectedCountryData = {};\n    _this.state = {\n      showDropdown: false,\n      highlightedCountry: 0,\n      value: _props.value || _props.defaultValue,\n      disabled: _props.disabled,\n      readonly: false,\n      offsetTop: 0,\n      outerHeight: 0,\n      placeholder: '',\n      title: '',\n      countryCode: 'us',\n      dialCode: '',\n      cursorPosition: (_props.value || _props.defaultValue).length\n    };\n    return _this;\n  }\n\n  _createClass(IntlTelInput, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      this.autoHideDialCode = this.props.autoHideDialCode;\n      this.allowDropdown = this.props.allowDropdown;\n      this.nationalMode = this.props.nationalMode;\n      this.dropdownContainer = '';\n\n      if (this.nationalMode) {\n        this.autoHideDialCode = false;\n      }\n\n      if (this.props.separateDialCode) {\n        this.autoHideDialCode = false;\n        this.nationalMode = false;\n        this.allowDropdown = true;\n      }\n\n      this.processCountryData.call(this);\n      this.tempCountry = this.getTempCountry(this.props.defaultCountry);\n\n      if (document.readyState === 'complete') {\n        this.windowLoaded = true;\n      } else {\n        window.addEventListener('load', function () {\n          _this2.windowLoaded = true;\n        });\n      }\n\n      this.generateMarkup();\n      this.setInitialState();\n      this.initRequests();\n      this.deferreds.push(this.autoCountryDeferred.promise());\n      this.deferreds.push(this.utilsScriptDeferred.promise());\n\n      _underscore.default.when(this.deferreds).done(function () {\n        _this2.setInitialState();\n      });\n\n      document.addEventListener('keydown', this.handleDocumentKeyDown);\n    }\n  }, {\n    key: \"shouldComponentUpdate\",\n    value: function shouldComponentUpdate(nextProps, nextState) {\n      if (nextState.showDropdown) {\n        document.addEventListener('keydown', this.handleDocumentKeyDown);\n        this.bindDocumentClick();\n      } else {\n        document.removeEventListener('keydown', this.handleDocumentKeyDown);\n        this.unbindDocumentClick();\n      }\n\n      return true;\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.value !== prevProps.value) {\n        this.updateFlagFromNumber(this.props.value);\n      }\n\n      if (typeof this.props.customPlaceholder === 'function' && prevProps.customPlaceholder !== this.props.customPlaceholder) {\n        this.updatePlaceholder(this.props);\n      }\n\n      if (this.props.allowDropdown !== prevProps.allowDropdown) {\n        this.allowDropdown = this.props.allowDropdown;\n      }\n\n      if (this.props.defaultCountry !== prevProps.defaultCountry) {\n        this.updateFlagOnDefaultCountryChange(this.props.defaultCountry);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      document.removeEventListener('keydown', this.handleDocumentKeyDown);\n      window.removeEventListener('scroll', this.handleWindowScroll);\n      this.unbindDocumentClick();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var inputClass = this.props.inputClassName;\n      var wrapperStyle = Object.assign({}, this.props.style || {});\n      this.wrapperClass['allow-dropdown'] = this.allowDropdown;\n      this.wrapperClass.expanded = this.state.showDropdown;\n      var wrapperClass = (0, _classnames.default)(this.wrapperClass, this.props.containerClassName);\n      var titleTip = this.selectedCountryData ? \"\".concat(this.selectedCountryData.name, \": +\").concat(this.selectedCountryData.dialCode) : 'Unknown';\n      var value = this.props.value !== undefined ? this.props.value : this.state.value;\n      return _react.default.createElement(\"div\", {\n        className: wrapperClass,\n        style: wrapperStyle\n      }, _react.default.createElement(_FlagDropDown.default, {\n        refCallback: this.setFlagDropdownRef,\n        allowDropdown: this.allowDropdown,\n        dropdownContainer: this.dropdownContainer,\n        separateDialCode: this.props.separateDialCode,\n        dialCode: this.state.dialCode,\n        clickSelectedFlag: this.clickSelectedFlag,\n        setFlag: this.setFlag,\n        countryCode: this.state.countryCode,\n        isMobile: this.isMobile,\n        handleSelectedFlagKeydown: this.handleSelectedFlagKeydown,\n        changeHighlightCountry: this.changeHighlightCountry,\n        countries: this.countries,\n        showDropdown: this.state.showDropdown,\n        inputTop: this.state.offsetTop,\n        inputOuterHeight: this.state.outerHeight,\n        preferredCountries: this.preferredCountries,\n        highlightedCountry: this.state.highlightedCountry,\n        titleTip: titleTip\n      }), _react.default.createElement(_TelInput.default, {\n        refCallback: this.setTelRef,\n        handleInputChange: this.handleInputChange,\n        handleOnBlur: this.handleOnBlur,\n        handleOnFocus: this.handleOnFocus,\n        className: inputClass,\n        disabled: this.state.disabled,\n        readonly: this.state.readonly,\n        fieldName: this.props.fieldName,\n        fieldId: this.props.fieldId,\n        value: value,\n        placeholder: this.props.placeholder !== undefined ? this.props.placeholder : this.state.placeholder,\n        autoFocus: this.props.autoFocus,\n        autoComplete: this.props.autoComplete,\n        inputProps: this.props.telInputProps,\n        cursorPosition: this.state.cursorPosition\n      }));\n    }\n  }]);\n\n  return IntlTelInput;\n}(_react.Component);\n\nIntlTelInput.defaultProps = {\n  containerClassName: 'intl-tel-input',\n  inputClassName: '',\n  fieldName: '',\n  fieldId: '',\n  defaultValue: '',\n  countriesData: null,\n  allowDropdown: true,\n  autoHideDialCode: true,\n  autoPlaceholder: true,\n  customPlaceholder: null,\n  excludeCountries: [],\n  formatOnInit: true,\n  separateDialCode: false,\n  defaultCountry: '',\n  geoIpLookup: null,\n  nationalMode: true,\n  numberType: 'MOBILE',\n  noCountryDataHandler: null,\n  onlyCountries: [],\n  preferredCountries: ['us', 'gb'],\n  onPhoneNumberChange: null,\n  onPhoneNumberBlur: null,\n  onPhoneNumberFocus: null,\n  onSelectFlag: null,\n  disabled: false,\n  autoFocus: false,\n  useMobileFullscreenDropdown: true,\n  autoComplete: 'off',\n  telInputProps: {},\n  format: false,\n  onFlagClick: null\n};\nvar _default = IntlTelInput;\nexports.default = _default;\nIntlTelInput.__docgenInfo = {\n  \"description\": \"\",\n  \"methods\": [{\n    \"name\": \"getDerivedStateFromProps\",\n    \"docblock\": null,\n    \"modifiers\": [\"static\"],\n    \"params\": [{\n      \"name\": \"nextProps\",\n      \"type\": null\n    }, {\n      \"name\": \"prevState\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"updateFlagOnDefaultCountryChange\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"countryCode\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"getTempCountry\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"countryCode\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"setNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }, {\n      \"name\": \"preventFormat\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"setFlagDropdownRef\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"ref\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"setTelRef\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"ref\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"setFlag\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"countryCode\",\n      \"type\": null\n    }, {\n      \"name\": \"isInit\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"getExtension\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"getNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }, {\n      \"name\": \"format\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"getFullNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"getDialCode\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"isUnknownNanp\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }, {\n      \"name\": \"dialCode\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"addCountryCode\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"countryCodes\",\n      \"type\": null\n    }, {\n      \"name\": \"iso2\",\n      \"type\": null\n    }, {\n      \"name\": \"dialCode\",\n      \"type\": null\n    }, {\n      \"name\": \"priority\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"processAllCountries\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"processCountryCodes\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"processPreferredCountries\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"setInitialState\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"initRequests\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"loadCountryFromLocalStorage\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"loadAutoCountry\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"cap\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"removeEmptyDialCode\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"handleUpDownKey\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"key\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleEnterKey\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"searchForCountry\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"query\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"formatNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"updateValFromNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }, {\n      \"name\": \"doFormat\",\n      \"type\": null\n    }, {\n      \"name\": \"doNotify\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"updateFlagFromNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }, {\n      \"name\": \"isInit\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"filterCountries\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"countryArray\",\n      \"type\": null\n    }, {\n      \"name\": \"processFunc\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"processCountryData\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"handleOnBlur\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleOnFocus\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"bindDocumentClick\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"unbindDocumentClick\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"clickSelectedFlag\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"updatePlaceholder\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"props\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"toggleDropdown\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"status\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"scrollTo\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"element\",\n      \"type\": null\n    }, {\n      \"name\": \"middle\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"updateDialCode\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"newDialCode\",\n      \"type\": null\n    }, {\n      \"name\": \"hasSelectedListItem\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"generateMarkup\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"handleSelectedFlagKeydown\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"isValidNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"formatFullNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"notifyPhoneNumberChange\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"newNumber\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"beforeSetNumber\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"number\",\n      \"type\": null\n    }, {\n      \"name\": \"props\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleWindowScroll\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"handleDocumentKeyDown\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleDocumentClick\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleInputChange\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"changeHighlightCountry\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"showDropdown\",\n      \"type\": null\n    }, {\n      \"name\": \"selectedIndex\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"loadUtils\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }, {\n    \"name\": \"autoCountryLoaded\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [],\n    \"returns\": null\n  }],\n  \"displayName\": \"IntlTelInput\",\n  \"props\": {\n    \"containerClassName\": {\n      \"defaultValue\": {\n        \"value\": \"'intl-tel-input'\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"Container CSS class name.\"\n    },\n    \"inputClassName\": {\n      \"defaultValue\": {\n        \"value\": \"''\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"Text input CSS class name.\"\n    },\n    \"fieldName\": {\n      \"defaultValue\": {\n        \"value\": \"''\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"It's used as `input` field `name` attribute.\"\n    },\n    \"fieldId\": {\n      \"defaultValue\": {\n        \"value\": \"''\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"It's used as `input` field `id` attribute.\"\n    },\n    \"defaultValue\": {\n      \"defaultValue\": {\n        \"value\": \"''\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"The value used to initialize input. This will only work on uncontrolled component.\"\n    },\n    \"countriesData\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"array\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"Countries data can be configured, it defaults to data defined in `AllCountries`.\"\n    },\n    \"allowDropdown\": {\n      \"defaultValue\": {\n        \"value\": \"true\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Whether or not to allow the dropdown. If disabled, there is no dropdown arrow, and the selected flag is not clickable.\\nAlso we display the selected flag on the right instead because it is just a marker of state.\"\n    },\n    \"autoHideDialCode\": {\n      \"defaultValue\": {\n        \"value\": \"true\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"If there is just a dial code in the input: remove it on blur, and re-add it on focus.\"\n    },\n    \"autoPlaceholder\": {\n      \"defaultValue\": {\n        \"value\": \"true\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Add or remove input placeholder with an example number for the selected country.\"\n    },\n    \"customPlaceholder\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"Change the placeholder generated by autoPlaceholder. Must return a string.\"\n    },\n    \"excludeCountries\": {\n      \"defaultValue\": {\n        \"value\": \"[]\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"string\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"Don't display the countries you specify. (Array)\"\n    },\n    \"formatOnInit\": {\n      \"defaultValue\": {\n        \"value\": \"true\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Format the input value during initialisation.\"\n    },\n    \"separateDialCode\": {\n      \"defaultValue\": {\n        \"value\": \"false\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Display the country dial code next to the selected flag so it's not part of the typed number.\\nNote that this will disable nationalMode because technically we are dealing with international numbers,\\nbut with the dial code separated.\"\n    },\n    \"defaultCountry\": {\n      \"defaultValue\": {\n        \"value\": \"''\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"Default country.\"\n    },\n    \"geoIpLookup\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"GeoIp lookup function.\"\n    },\n    \"nationalMode\": {\n      \"defaultValue\": {\n        \"value\": \"true\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Don't insert international dial codes.\"\n    },\n    \"numberType\": {\n      \"defaultValue\": {\n        \"value\": \"'MOBILE'\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"Number type to use for placeholders.\"\n    },\n    \"noCountryDataHandler\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"The function which can catch the \\\"no this default country\\\" exception.\"\n    },\n    \"onlyCountries\": {\n      \"defaultValue\": {\n        \"value\": \"[]\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"string\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"Display only these countries.\"\n    },\n    \"preferredCountries\": {\n      \"defaultValue\": {\n        \"value\": \"['us', 'gb']\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"arrayOf\",\n        \"value\": {\n          \"name\": \"string\"\n        }\n      },\n      \"required\": false,\n      \"description\": \"The countries at the top of the list. defaults to United States and United Kingdom.\"\n    },\n    \"onPhoneNumberChange\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"Optional validation callback function. It returns validation status, input box value and selected country data.\"\n    },\n    \"onPhoneNumberBlur\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"Optional validation callback function. It returns validation status, input box value and selected country data.\"\n    },\n    \"onPhoneNumberFocus\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"Optional validation callback function. It returns validation status, input box value and selected country data.\"\n    },\n    \"onSelectFlag\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"Allow main app to do things when a country is selected.\"\n    },\n    \"disabled\": {\n      \"defaultValue\": {\n        \"value\": \"false\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Disable this component.\"\n    },\n    \"autoFocus\": {\n      \"defaultValue\": {\n        \"value\": \"false\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Enable auto focus\"\n    },\n    \"useMobileFullscreenDropdown\": {\n      \"defaultValue\": {\n        \"value\": \"true\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Render fullscreen flag dropdown when mobile useragent is detected. The dropdown element is rendered as a direct child of document.body\"\n    },\n    \"autoComplete\": {\n      \"defaultValue\": {\n        \"value\": \"'off'\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"Set the value of the autoComplete attribute on the input. For example, set it to phone to tell the browser where to auto complete phone numbers.\"\n    },\n    \"telInputProps\": {\n      \"defaultValue\": {\n        \"value\": \"{}\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"object\"\n      },\n      \"required\": false,\n      \"description\": \"Pass through arbitrary props to the tel input element.\"\n    },\n    \"format\": {\n      \"defaultValue\": {\n        \"value\": \"false\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"Format the number.\"\n    },\n    \"onFlagClick\": {\n      \"defaultValue\": {\n        \"value\": \"null\",\n        \"computed\": false\n      },\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"Allow main app to do things when flag icon is clicked.\"\n    },\n    \"value\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"The value of the input field. Useful for making input value controlled from outside the component.\"\n    },\n    \"placeholder\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"Static placeholder for input controller. When defined it takes priority over autoPlaceholder.\"\n    },\n    \"style\": {\n      \"type\": {\n        \"name\": \"custom\",\n        \"raw\": \"StylePropTypes\"\n      },\n      \"required\": false,\n      \"description\": \"Style object for the wrapper div. Useful for setting 100% width on the wrapper, etc.\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar RootModal = function (_Component) {\n  _inherits(RootModal, _Component);\n\n  function RootModal(props) {\n    var _this;\n\n    _classCallCheck(this, RootModal);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(RootModal).call(this, props));\n    _this.modalTarget = document.createElement('div');\n    _this.modalTarget.className = 'intl-tel-input iti-container';\n    return _this;\n  }\n\n  _createClass(RootModal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      document.body.appendChild(this.modalTarget);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      document.body.removeChild(this.modalTarget);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return _reactDom.default.createPortal(_react.default.createElement(_react.Fragment, null, this.props.children), this.modalTarget);\n    }\n  }]);\n\n  return RootModal;\n}(_react.Component);\n\nexports.default = RootModal;\nRootModal.__docgenInfo = {\n  \"description\": \"\",\n  \"methods\": [],\n  \"displayName\": \"RootModal\",\n  \"props\": {\n    \"children\": {\n      \"type\": {\n        \"name\": \"node\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TelInput = function (_Component) {\n  _inherits(TelInput, _Component);\n\n  function TelInput() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, TelInput);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TelInput)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n      hasFocus: false\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"refHandler\", function (element) {\n      _this.tel = element;\n\n      _this.props.refCallback(element);\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleBlur\", function (e) {\n      _this.setState({\n        hasFocus: false\n      });\n\n      if (typeof _this.props.handleOnBlur === 'function') {\n        _this.props.handleOnBlur(e);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleFocus\", function (e) {\n      _this.setState({\n        hasFocus: true\n      });\n\n      if (typeof _this.props.handleOnFocus === 'function') {\n        _this.props.handleOnFocus(e);\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(TelInput, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      if (this.state.hasFocus) {\n        this.tel.setSelectionRange(this.props.cursorPosition, this.props.cursorPosition);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return _react.default.createElement(\"input\", _extends({}, this.props.inputProps, {\n        ref: this.refHandler,\n        type: \"tel\",\n        autoComplete: this.props.autoComplete,\n        className: this.props.className,\n        disabled: this.props.disabled,\n        readOnly: this.props.readonly,\n        name: this.props.fieldName,\n        id: this.props.fieldId,\n        value: this.props.value,\n        placeholder: this.props.placeholder,\n        onChange: this.props.handleInputChange,\n        onBlur: this.handleBlur,\n        onFocus: this.handleFocus,\n        autoFocus: this.props.autoFocus\n      }));\n    }\n  }]);\n\n  return TelInput;\n}(_react.Component);\n\nexports.default = TelInput;\nTelInput.__docgenInfo = {\n  \"description\": \"\",\n  \"methods\": [{\n    \"name\": \"refHandler\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"element\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleBlur\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }, {\n    \"name\": \"handleFocus\",\n    \"docblock\": null,\n    \"modifiers\": [],\n    \"params\": [{\n      \"name\": \"e\",\n      \"type\": null\n    }],\n    \"returns\": null\n  }],\n  \"displayName\": \"TelInput\",\n  \"props\": {\n    \"className\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"disabled\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"readonly\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"fieldName\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"fieldId\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"value\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"placeholder\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"handleInputChange\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"handleOnBlur\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"handleOnFocus\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"autoFocus\": {\n      \"type\": {\n        \"name\": \"bool\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"autoComplete\": {\n      \"type\": {\n        \"name\": \"string\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"inputProps\": {\n      \"type\": {\n        \"name\": \"object\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    },\n    \"refCallback\": {\n      \"type\": {\n        \"name\": \"func\"\n      },\n      \"required\": true,\n      \"description\": \"\"\n    },\n    \"cursorPosition\": {\n      \"type\": {\n        \"name\": \"number\"\n      },\n      \"required\": false,\n      \"description\": \"\"\n    }\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.KEYS = void 0;\nvar KEYS = {\n  UP: 38,\n  DOWN: 40,\n  ENTER: 13,\n  ESC: 27,\n  PLUS: 43,\n  A: 65,\n  Z: 90,\n  SPACE: 32,\n  TAB: 9\n};\nexports.KEYS = KEYS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AllCountries = _interopRequireDefault(require(\"./AllCountries\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _default = {\n  arraysEqual: function arraysEqual(a, b) {\n    if (a === b) {\n      return true;\n    }\n\n    if (a === null || b === null) {\n      return false;\n    }\n\n    if (a.length !== b.length) {\n      return false;\n    }\n\n    for (var i = 0; i < a.length; ++i) {\n      if (a[i] !== b[i]) {\n        return false;\n      }\n    }\n\n    return true;\n  },\n  shallowEquals: function shallowEquals(a, b) {\n    if (a === b) {\n      return true;\n    }\n\n    for (var key in a) {\n      if (a[key] !== b[key]) {\n        if (Array.isArray(a[key]) && Array.isArray(b[key])) {\n          if (!this.arraysEqual(a[key], b[key])) {\n            return false;\n          }\n        } else {\n          return false;\n        }\n      }\n    }\n\n    for (var _key in b) {\n      if (a.hasOwnProperty(_key) === false) {\n        return false;\n      }\n    }\n\n    return true;\n  },\n  trim: function trim(str) {\n    var rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n    if (!str) {\n      return '';\n    }\n\n    return str.replace(rtrim, '');\n  },\n  isNumeric: function isNumeric(obj) {\n    return obj - parseFloat(obj) >= 0;\n  },\n  retrieveLiIndex: function retrieveLiIndex(node) {\n    if (!node) {\n      return -1;\n    }\n\n    var children = node.parentNode.childNodes;\n    var num = 0;\n\n    for (var i = 0, max = children.length; i < max; i++) {\n      if (children[i] === node) {\n        return num;\n      }\n\n      if (children[i].nodeType === 1 && children[i].tagName.toLowerCase() === 'li') {\n        num += 1;\n      }\n    }\n\n    return -1;\n  },\n  getNumeric: function getNumeric(s) {\n    return s.replace(/\\D/g, '');\n  },\n  startsWith: function startsWith(a, b) {\n    return a.substr(0, b.length).toUpperCase() === b;\n  },\n  isWindow: function isWindow(obj) {\n    return obj !== null && obj === obj.window;\n  },\n  getWindow: function getWindow(elem) {\n    return this.isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n  },\n  offset: function offset(elem) {\n    var docElem = null;\n    var win = null;\n    var box = {\n      top: 0,\n      left: 0\n    };\n    var doc = elem && elem.ownerDocument;\n    docElem = doc.documentElement;\n\n    if (_typeof(elem.getBoundingClientRect) !== (typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined))) {\n      box = elem.getBoundingClientRect();\n    }\n\n    win = this.getWindow(doc);\n    return {\n      top: box.top + win.pageYOffset - docElem.clientTop,\n      left: box.left + win.pageXOffset - docElem.clientLeft\n    };\n  },\n  getOuterHeight: function getOuterHeight(element) {\n    return element.offsetHeight + parseFloat(window.getComputedStyle(element).getPropertyValue('margin-top')) + parseFloat(window.getComputedStyle(element).getPropertyValue('margin-bottom'));\n  },\n  getCountryData: function getCountryData(countries, countryCode, ignoreOnlyCountriesOption, allowFail, errorHandler) {\n    var countryList = ignoreOnlyCountriesOption ? _AllCountries.default.getCountries() : countries;\n\n    for (var i = 0; i < countryList.length; i++) {\n      if (countryList[i].iso2 === countryCode) {\n        return countryList[i];\n      }\n    }\n\n    if (allowFail) {\n      return null;\n    }\n\n    if (typeof errorHandler === 'function') {\n      errorHandler(countryCode);\n    }\n\n    return {};\n  },\n  findIndex: function findIndex(items, predicate) {\n    var index = -1;\n    items.some(function (item, i) {\n      if (predicate(item)) {\n        index = i;\n        return true;\n      }\n    });\n    return index;\n  },\n  getCursorPositionAfterFormating: function getCursorPositionAfterFormating(prevBeforeCursor, prev, next) {\n    if (prev === next) {\n      return prevBeforeCursor.length;\n    }\n\n    var cursorShift = 0;\n\n    if (prev.length > next.length) {\n      for (var i = 0, j = 0; i < prevBeforeCursor.length && j < next.length; i += 1) {\n        if (prevBeforeCursor[i] !== next[j]) {\n          if (isNaN(next[j]) && !isNaN(prevBeforeCursor[i])) {\n            i -= 1;\n            j += 1;\n            cursorShift += 1;\n          } else {\n            cursorShift -= 1;\n          }\n        } else {\n          j += 1;\n        }\n      }\n    } else {\n      for (var _i = 0, _j = 0; _i < prevBeforeCursor.length && _j < next.length; _j += 1) {\n        if (prevBeforeCursor[_i] !== next[_j]) {\n          if (isNaN(prevBeforeCursor[_i]) && !isNaN(next[_j])) {\n            _j -= 1;\n            _i += 1;\n            cursorShift -= 1;\n          } else {\n            cursorShift += 1;\n          }\n        } else {\n          _i += 1;\n        }\n      }\n    }\n\n    return prevBeforeCursor.length + cursorShift;\n  }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _IntlTelInput = _interopRequireDefault(require(\"./components/IntlTelInput\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _IntlTelInput.default;\nexports.default = _default;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","import {createElement,Component}from'react';import {findDOMNode}from'react-dom';function _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n\n  _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n  if (current === componentNode) {\n    return true;\n  } // SVG <use/> elements do not technically reside in the rendered DOM, so\n  // they do not have classList directly, but they offer a link to their\n  // corresponding element, which can have classList. This extra check is for\n  // that case.\n  // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n  // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n  if (current.correspondingElement) {\n    return current.correspondingElement.classList.contains(ignoreClass);\n  }\n\n  return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n  if (current === componentNode) {\n    return true;\n  } // If source=local then this event came from 'somewhere'\n  // inside and should be ignored. We could handle this with\n  // a layered approach, too, but that requires going back to\n  // thinking in terms of Dom node nesting, running counter\n  // to React's 'you shouldn't care about the DOM' philosophy.\n  // Also cover shadowRoot node by checking current.host\n\n\n  while (current.parentNode || current.host) {\n    // Only check normal node without shadowRoot\n    if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n      return true;\n    }\n\n    current = current.parentNode || current.host;\n  }\n\n  return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n  return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n  if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n    return;\n  }\n\n  var passive = false;\n  var options = Object.defineProperty({}, 'passive', {\n    get: function get() {\n      passive = true;\n    }\n  });\n\n  var noop = function noop() {};\n\n  window.addEventListener('testPassiveEventSupport', noop, options);\n  window.removeEventListener('testPassiveEventSupport', noop, options);\n  return passive;\n};function autoInc(seed) {\n  if (seed === void 0) {\n    seed = 0;\n  }\n\n  return function () {\n    return ++seed;\n  };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n  var handlerOptions = null;\n  var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n  if (isTouchEvent && passiveEventSupport) {\n    handlerOptions = {\n      passive: !instance.props.preventDefault\n    };\n  }\n\n  return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n  var _class, _temp;\n\n  var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n  return _temp = _class = /*#__PURE__*/function (_Component) {\n    _inheritsLoose(onClickOutside, _Component);\n\n    function onClickOutside(props) {\n      var _this;\n\n      _this = _Component.call(this, props) || this;\n\n      _this.__outsideClickHandler = function (event) {\n        if (typeof _this.__clickOutsideHandlerProp === 'function') {\n          _this.__clickOutsideHandlerProp(event);\n\n          return;\n        }\n\n        var instance = _this.getInstance();\n\n        if (typeof instance.props.handleClickOutside === 'function') {\n          instance.props.handleClickOutside(event);\n          return;\n        }\n\n        if (typeof instance.handleClickOutside === 'function') {\n          instance.handleClickOutside(event);\n          return;\n        }\n\n        throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n      };\n\n      _this.__getComponentNode = function () {\n        var instance = _this.getInstance();\n\n        if (config && typeof config.setClickOutsideRef === 'function') {\n          return config.setClickOutsideRef()(instance);\n        }\n\n        if (typeof instance.setClickOutsideRef === 'function') {\n          return instance.setClickOutsideRef();\n        }\n\n        return findDOMNode(instance);\n      };\n\n      _this.enableOnClickOutside = function () {\n        if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n          return;\n        }\n\n        if (typeof passiveEventSupport === 'undefined') {\n          passiveEventSupport = testPassiveEventSupport();\n        }\n\n        enabledInstances[_this._uid] = true;\n        var events = _this.props.eventTypes;\n\n        if (!events.forEach) {\n          events = [events];\n        }\n\n        handlersMap[_this._uid] = function (event) {\n          if (_this.componentNode === null) return;\n\n          if (_this.props.preventDefault) {\n            event.preventDefault();\n          }\n\n          if (_this.props.stopPropagation) {\n            event.stopPropagation();\n          }\n\n          if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n          var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n          if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n            return;\n          }\n\n          _this.__outsideClickHandler(event);\n        };\n\n        events.forEach(function (eventName) {\n          document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n        });\n      };\n\n      _this.disableOnClickOutside = function () {\n        delete enabledInstances[_this._uid];\n        var fn = handlersMap[_this._uid];\n\n        if (fn && typeof document !== 'undefined') {\n          var events = _this.props.eventTypes;\n\n          if (!events.forEach) {\n            events = [events];\n          }\n\n          events.forEach(function (eventName) {\n            return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n          });\n          delete handlersMap[_this._uid];\n        }\n      };\n\n      _this.getRef = function (ref) {\n        return _this.instanceRef = ref;\n      };\n\n      _this._uid = uid();\n      return _this;\n    }\n    /**\n     * Access the WrappedComponent's instance.\n     */\n\n\n    var _proto = onClickOutside.prototype;\n\n    _proto.getInstance = function getInstance() {\n      if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n        return this;\n      }\n\n      var ref = this.instanceRef;\n      return ref.getInstance ? ref.getInstance() : ref;\n    };\n\n    /**\n     * Add click listeners to the current document,\n     * linked to this component's state.\n     */\n    _proto.componentDidMount = function componentDidMount() {\n      // If we are in an environment without a DOM such\n      // as shallow rendering or snapshots then we exit\n      // early to prevent any unhandled errors being thrown.\n      if (typeof document === 'undefined' || !document.createElement) {\n        return;\n      }\n\n      var instance = this.getInstance();\n\n      if (config && typeof config.handleClickOutside === 'function') {\n        this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n        if (typeof this.__clickOutsideHandlerProp !== 'function') {\n          throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n        }\n      }\n\n      this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n      if (this.props.disableOnClickOutside) return;\n      this.enableOnClickOutside();\n    };\n\n    _proto.componentDidUpdate = function componentDidUpdate() {\n      this.componentNode = this.__getComponentNode();\n    }\n    /**\n     * Remove all document's event listeners for this component\n     */\n    ;\n\n    _proto.componentWillUnmount = function componentWillUnmount() {\n      this.disableOnClickOutside();\n    }\n    /**\n     * Can be called to explicitly enable event listening\n     * for clicks and touches outside of this element.\n     */\n    ;\n\n    /**\n     * Pass-through render\n     */\n    _proto.render = function render() {\n      // eslint-disable-next-line no-unused-vars\n      var _this$props = this.props;\n          _this$props.excludeScrollbar;\n          var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n      if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n        props.ref = this.getRef;\n      } else {\n        props.wrappedRef = this.getRef;\n      }\n\n      props.disableOnClickOutside = this.disableOnClickOutside;\n      props.enableOnClickOutside = this.enableOnClickOutside;\n      return createElement(WrappedComponent, props);\n    };\n\n    return onClickOutside;\n  }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n    eventTypes: ['mousedown', 'touchstart'],\n    excludeScrollbar: config && config.excludeScrollbar || false,\n    outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n    preventDefault: false,\n    stopPropagation: false\n  }, _class.getClass = function () {\n    return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n  }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactFastCompare = _interopRequireDefault(require(\"react-fast-compare\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SEEK_ON_PLAY_EXPIRY = 5000;\n\nvar Player = /*#__PURE__*/function (_Component) {\n  _inherits(Player, _Component);\n\n  var _super = _createSuper(Player);\n\n  function Player() {\n    var _this;\n\n    _classCallCheck(this, Player);\n\n    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n      _args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(_args));\n\n    _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"isReady\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"isPlaying\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"isLoading\", true);\n\n    _defineProperty(_assertThisInitialized(_this), \"loadOnReady\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"startOnPlay\", true);\n\n    _defineProperty(_assertThisInitialized(_this), \"seekOnPlay\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"onDurationCalled\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"handlePlayerMount\", function (player) {\n      _this.player = player;\n\n      _this.player.load(_this.props.url);\n\n      _this.progress();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function (key) {\n      if (!_this.player) return null;\n      return _this.player[key];\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"progress\", function () {\n      if (_this.props.url && _this.player && _this.isReady) {\n        var playedSeconds = _this.getCurrentTime() || 0;\n\n        var loadedSeconds = _this.getSecondsLoaded();\n\n        var duration = _this.getDuration();\n\n        if (duration) {\n          var progress = {\n            playedSeconds: playedSeconds,\n            played: playedSeconds / duration\n          };\n\n          if (loadedSeconds !== null) {\n            progress.loadedSeconds = loadedSeconds;\n            progress.loaded = loadedSeconds / duration;\n          } // Only call onProgress if values have changed\n\n\n          if (progress.playedSeconds !== _this.prevPlayed || progress.loadedSeconds !== _this.prevLoaded) {\n            _this.props.onProgress(progress);\n          }\n\n          _this.prevPlayed = progress.playedSeconds;\n          _this.prevLoaded = progress.loadedSeconds;\n        }\n      }\n\n      _this.progressTimeout = setTimeout(_this.progress, _this.props.progressFrequency || _this.props.progressInterval);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleReady\", function () {\n      if (!_this.mounted) return;\n      _this.isReady = true;\n      _this.isLoading = false;\n      var _this$props = _this.props,\n          onReady = _this$props.onReady,\n          playing = _this$props.playing,\n          volume = _this$props.volume,\n          muted = _this$props.muted;\n      onReady();\n\n      if (!muted && volume !== null) {\n        _this.player.setVolume(volume);\n      }\n\n      if (_this.loadOnReady) {\n        _this.player.load(_this.loadOnReady, true);\n\n        _this.loadOnReady = null;\n      } else if (playing) {\n        _this.player.play();\n      }\n\n      _this.handleDurationCheck();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function () {\n      _this.isPlaying = true;\n      _this.isLoading = false;\n      var _this$props2 = _this.props,\n          onStart = _this$props2.onStart,\n          onPlay = _this$props2.onPlay,\n          playbackRate = _this$props2.playbackRate;\n\n      if (_this.startOnPlay) {\n        if (_this.player.setPlaybackRate && playbackRate !== 1) {\n          _this.player.setPlaybackRate(playbackRate);\n        }\n\n        onStart();\n        _this.startOnPlay = false;\n      }\n\n      onPlay();\n\n      if (_this.seekOnPlay) {\n        _this.seekTo(_this.seekOnPlay);\n\n        _this.seekOnPlay = null;\n      }\n\n      _this.handleDurationCheck();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n      _this.isPlaying = false;\n\n      if (!_this.isLoading) {\n        _this.props.onPause(e);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleEnded\", function () {\n      var _this$props3 = _this.props,\n          activePlayer = _this$props3.activePlayer,\n          loop = _this$props3.loop,\n          onEnded = _this$props3.onEnded;\n\n      if (activePlayer.loopOnEnded && loop) {\n        _this.seekTo(0);\n      }\n\n      if (!loop) {\n        _this.isPlaying = false;\n        onEnded();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleError\", function () {\n      var _this$props4;\n\n      _this.isLoading = false;\n\n      (_this$props4 = _this.props).onError.apply(_this$props4, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleDurationCheck\", function () {\n      clearTimeout(_this.durationCheckTimeout);\n\n      var duration = _this.getDuration();\n\n      if (duration) {\n        if (!_this.onDurationCalled) {\n          _this.props.onDuration(duration);\n\n          _this.onDurationCalled = true;\n        }\n      } else {\n        _this.durationCheckTimeout = setTimeout(_this.handleDurationCheck, 100);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleLoaded\", function () {\n      // Sometimes we know loading has stopped but onReady/onPlay are never called\n      // so this provides a way for players to avoid getting stuck\n      _this.isLoading = false;\n    });\n\n    return _this;\n  }\n\n  _createClass(Player, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.mounted = true;\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.progressTimeout);\n      clearTimeout(this.durationCheckTimeout);\n\n      if (this.isReady && this.props.stopOnUnmount) {\n        this.player.stop();\n\n        if (this.player.disablePIP) {\n          this.player.disablePIP();\n        }\n      }\n\n      this.mounted = false;\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this2 = this;\n\n      // If there isn’t a player available, don’t do anything\n      if (!this.player) {\n        return;\n      } // Invoke player methods based on changed props\n\n\n      var _this$props5 = this.props,\n          url = _this$props5.url,\n          playing = _this$props5.playing,\n          volume = _this$props5.volume,\n          muted = _this$props5.muted,\n          playbackRate = _this$props5.playbackRate,\n          pip = _this$props5.pip,\n          loop = _this$props5.loop,\n          activePlayer = _this$props5.activePlayer,\n          disableDeferredLoading = _this$props5.disableDeferredLoading;\n\n      if (!(0, _reactFastCompare[\"default\"])(prevProps.url, url)) {\n        if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, _utils.isMediaStream)(url)) {\n          console.warn(\"ReactPlayer: the attempt to load \".concat(url, \" is being deferred until the player has loaded\"));\n          this.loadOnReady = url;\n          return;\n        }\n\n        this.isLoading = true;\n        this.startOnPlay = true;\n        this.onDurationCalled = false;\n        this.player.load(url, this.isReady);\n      }\n\n      if (!prevProps.playing && playing && !this.isPlaying) {\n        this.player.play();\n      }\n\n      if (prevProps.playing && !playing && this.isPlaying) {\n        this.player.pause();\n      }\n\n      if (!prevProps.pip && pip && this.player.enablePIP) {\n        this.player.enablePIP();\n      }\n\n      if (prevProps.pip && !pip && this.player.disablePIP) {\n        this.player.disablePIP();\n      }\n\n      if (prevProps.volume !== volume && volume !== null) {\n        this.player.setVolume(volume);\n      }\n\n      if (prevProps.muted !== muted) {\n        if (muted) {\n          this.player.mute();\n        } else {\n          this.player.unmute();\n\n          if (volume !== null) {\n            // Set volume next tick to fix a bug with DailyMotion\n            setTimeout(function () {\n              return _this2.player.setVolume(volume);\n            });\n          }\n        }\n      }\n\n      if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n        this.player.setPlaybackRate(playbackRate);\n      }\n\n      if (prevProps.loop !== loop && this.player.setLoop) {\n        this.player.setLoop(loop);\n      }\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      if (!this.isReady) return null;\n      return this.player.getDuration();\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      if (!this.isReady) return null;\n      return this.player.getCurrentTime();\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      if (!this.isReady) return null;\n      return this.player.getSecondsLoaded();\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(amount, type) {\n      var _this3 = this;\n\n      // When seeking before player is ready, store value and seek later\n      if (!this.isReady) {\n        if (amount !== 0) {\n          this.seekOnPlay = amount;\n          setTimeout(function () {\n            _this3.seekOnPlay = null;\n          }, SEEK_ON_PLAY_EXPIRY);\n        }\n\n        return;\n      }\n\n      var isFraction = !type ? amount > 0 && amount < 1 : type === 'fraction';\n\n      if (isFraction) {\n        // Convert fraction to seconds based on duration\n        var duration = this.player.getDuration();\n\n        if (!duration) {\n          console.warn('ReactPlayer: could not seek using fraction – duration not yet available');\n          return;\n        }\n\n        this.player.seekTo(duration * amount);\n        return;\n      }\n\n      this.player.seekTo(amount);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var Player = this.props.activePlayer;\n\n      if (!Player) {\n        return null;\n      }\n\n      return /*#__PURE__*/_react[\"default\"].createElement(Player, _extends({}, this.props, {\n        onMount: this.handlePlayerMount,\n        onReady: this.handleReady,\n        onPlay: this.handlePlay,\n        onPause: this.handlePause,\n        onEnded: this.handleEnded,\n        onLoaded: this.handleLoaded,\n        onError: this.handleError\n      }));\n    }\n  }]);\n\n  return Player;\n}(_react.Component);\n\nexports[\"default\"] = Player;\n\n_defineProperty(Player, \"displayName\", 'Player');\n\n_defineProperty(Player, \"propTypes\", _props.propTypes);\n\n_defineProperty(Player, \"defaultProps\", _props.defaultProps);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ICON_SIZE = '64px';\nvar cache = {};\n\nvar Preview = /*#__PURE__*/function (_Component) {\n  _inherits(Preview, _Component);\n\n  var _super = _createSuper(Preview);\n\n  function Preview() {\n    var _this;\n\n    _classCallCheck(this, Preview);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      image: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"handleKeyPress\", function (e) {\n      if (e.key === 'Enter' || e.key === ' ') {\n        _this.props.onClick();\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(Preview, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.mounted = true;\n      this.fetchImage(this.props);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          url = _this$props.url,\n          light = _this$props.light;\n\n      if (prevProps.url !== url || prevProps.light !== light) {\n        this.fetchImage(this.props);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.mounted = false;\n    }\n  }, {\n    key: \"fetchImage\",\n    value: function fetchImage(_ref) {\n      var _this2 = this;\n\n      var url = _ref.url,\n          light = _ref.light,\n          oEmbedUrl = _ref.oEmbedUrl;\n\n      if (typeof light === 'string') {\n        this.setState({\n          image: light\n        });\n        return;\n      }\n\n      if (cache[url]) {\n        this.setState({\n          image: cache[url]\n        });\n        return;\n      }\n\n      this.setState({\n        image: null\n      });\n      return window.fetch(oEmbedUrl.replace('{url}', url)).then(function (response) {\n        return response.json();\n      }).then(function (data) {\n        if (data.thumbnail_url && _this2.mounted) {\n          var image = data.thumbnail_url.replace('height=100', 'height=480');\n\n          _this2.setState({\n            image: image\n          });\n\n          cache[url] = image;\n        }\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          onClick = _this$props2.onClick,\n          playIcon = _this$props2.playIcon,\n          previewTabIndex = _this$props2.previewTabIndex;\n      var image = this.state.image;\n      var flexCenter = {\n        display: 'flex',\n        alignItems: 'center',\n        justifyContent: 'center'\n      };\n      var styles = {\n        preview: _objectSpread({\n          width: '100%',\n          height: '100%',\n          backgroundImage: image ? \"url(\".concat(image, \")\") : undefined,\n          backgroundSize: 'cover',\n          backgroundPosition: 'center',\n          cursor: 'pointer'\n        }, flexCenter),\n        shadow: _objectSpread({\n          background: 'radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)',\n          borderRadius: ICON_SIZE,\n          width: ICON_SIZE,\n          height: ICON_SIZE\n        }, flexCenter),\n        playIcon: {\n          borderStyle: 'solid',\n          borderWidth: '16px 0 16px 26px',\n          borderColor: 'transparent transparent transparent white',\n          marginLeft: '7px'\n        }\n      };\n\n      var defaultPlayIcon = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: styles.shadow,\n        className: \"react-player__shadow\"\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: styles.playIcon,\n        className: \"react-player__play-icon\"\n      }));\n\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: styles.preview,\n        className: \"react-player__preview\",\n        onClick: onClick,\n        tabIndex: previewTabIndex,\n        onKeyPress: this.handleKeyPress\n      }, playIcon || defaultPlayIcon);\n    }\n  }]);\n\n  return Preview;\n}(_react.Component);\n\nexports[\"default\"] = Preview;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createReactPlayer = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar _reactFastCompare = _interopRequireDefault(require(\"react-fast-compare\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nvar _Player3 = _interopRequireDefault(require(\"./Player\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar Preview = /*#__PURE__*/(0, _react.lazy)(function () {\n  return Promise.resolve().then(function () {\n    return _interopRequireWildcard(require('./Preview'));\n  });\n});\nvar IS_BROWSER = typeof window !== 'undefined' && window.document;\nvar IS_GLOBAL = typeof global !== 'undefined' && global.window && global.window.document;\nvar SUPPORTED_PROPS = Object.keys(_props.propTypes); // Return null when rendering on the server\n// as Suspense is not supported yet\n\nvar UniversalSuspense = IS_BROWSER || IS_GLOBAL ? _react.Suspense : function () {\n  return null;\n};\nvar customPlayers = [];\n\nvar createReactPlayer = function createReactPlayer(players, fallback) {\n  var _class, _temp;\n\n  return _temp = _class = /*#__PURE__*/function (_Component) {\n    _inherits(ReactPlayer, _Component);\n\n    var _super = _createSuper(ReactPlayer);\n\n    function ReactPlayer() {\n      var _this;\n\n      _classCallCheck(this, ReactPlayer);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _super.call.apply(_super, [this].concat(args));\n\n      _defineProperty(_assertThisInitialized(_this), \"state\", {\n        showPreview: !!_this.props.light\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"references\", {\n        wrapper: function wrapper(_wrapper) {\n          _this.wrapper = _wrapper;\n        },\n        player: function player(_player) {\n          _this.player = _player;\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"handleClickPreview\", function (e) {\n        _this.setState({\n          showPreview: false\n        });\n\n        _this.props.onClickPreview(e);\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"showPreview\", function () {\n        _this.setState({\n          showPreview: true\n        });\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"getDuration\", function () {\n        if (!_this.player) return null;\n        return _this.player.getDuration();\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"getCurrentTime\", function () {\n        if (!_this.player) return null;\n        return _this.player.getCurrentTime();\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"getSecondsLoaded\", function () {\n        if (!_this.player) return null;\n        return _this.player.getSecondsLoaded();\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function () {\n        var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'player';\n        if (!_this.player) return null;\n        return _this.player.getInternalPlayer(key);\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"seekTo\", function (fraction, type) {\n        if (!_this.player) return null;\n\n        _this.player.seekTo(fraction, type);\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"handleReady\", function () {\n        _this.props.onReady(_assertThisInitialized(_this));\n      });\n\n      _defineProperty(_assertThisInitialized(_this), \"getActivePlayer\", (0, _memoizeOne[\"default\"])(function (url) {\n        for (var _i = 0, _arr = [].concat(customPlayers, _toConsumableArray(players)); _i < _arr.length; _i++) {\n          var player = _arr[_i];\n\n          if (player.canPlay(url)) {\n            return player;\n          }\n        }\n\n        if (fallback) {\n          return fallback;\n        }\n\n        return null;\n      }));\n\n      _defineProperty(_assertThisInitialized(_this), \"getConfig\", (0, _memoizeOne[\"default\"])(function (url, key) {\n        var config = _this.props.config;\n        return _deepmerge[\"default\"].all([_props.defaultProps.config, _props.defaultProps.config[key] || {}, config, config[key] || {}]);\n      }));\n\n      _defineProperty(_assertThisInitialized(_this), \"getAttributes\", (0, _memoizeOne[\"default\"])(function (url) {\n        return (0, _utils.omit)(_this.props, SUPPORTED_PROPS);\n      }));\n\n      _defineProperty(_assertThisInitialized(_this), \"renderActivePlayer\", function (url) {\n        if (!url) return null;\n\n        var player = _this.getActivePlayer(url);\n\n        if (!player) return null;\n\n        var config = _this.getConfig(url, player.key);\n\n        return /*#__PURE__*/_react[\"default\"].createElement(_Player3[\"default\"], _extends({}, _this.props, {\n          key: player.key,\n          ref: _this.references.player,\n          config: config,\n          activePlayer: player.lazyPlayer || player,\n          onReady: _this.handleReady\n        }));\n      });\n\n      return _this;\n    }\n\n    _createClass(ReactPlayer, [{\n      key: \"shouldComponentUpdate\",\n      value: function shouldComponentUpdate(nextProps, nextState) {\n        return !(0, _reactFastCompare[\"default\"])(this.props, nextProps) || !(0, _reactFastCompare[\"default\"])(this.state, nextState);\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate(prevProps) {\n        var light = this.props.light;\n\n        if (!prevProps.light && light) {\n          this.setState({\n            showPreview: true\n          });\n        }\n\n        if (prevProps.light && !light) {\n          this.setState({\n            showPreview: false\n          });\n        }\n      }\n    }, {\n      key: \"renderPreview\",\n      value: function renderPreview(url) {\n        if (!url) return null;\n        var _this$props = this.props,\n            light = _this$props.light,\n            playIcon = _this$props.playIcon,\n            previewTabIndex = _this$props.previewTabIndex,\n            oEmbedUrl = _this$props.oEmbedUrl;\n        return /*#__PURE__*/_react[\"default\"].createElement(Preview, {\n          url: url,\n          light: light,\n          playIcon: playIcon,\n          previewTabIndex: previewTabIndex,\n          oEmbedUrl: oEmbedUrl,\n          onClick: this.handleClickPreview\n        });\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var _this$props2 = this.props,\n            url = _this$props2.url,\n            style = _this$props2.style,\n            width = _this$props2.width,\n            height = _this$props2.height,\n            fallback = _this$props2.fallback,\n            Wrapper = _this$props2.wrapper;\n        var showPreview = this.state.showPreview;\n        var attributes = this.getAttributes(url);\n        return /*#__PURE__*/_react[\"default\"].createElement(Wrapper, _extends({\n          ref: this.references.wrapper,\n          style: _objectSpread(_objectSpread({}, style), {}, {\n            width: width,\n            height: height\n          })\n        }, attributes), /*#__PURE__*/_react[\"default\"].createElement(UniversalSuspense, {\n          fallback: fallback\n        }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));\n      }\n    }]);\n\n    return ReactPlayer;\n  }(_react.Component), _defineProperty(_class, \"displayName\", 'ReactPlayer'), _defineProperty(_class, \"propTypes\", _props.propTypes), _defineProperty(_class, \"defaultProps\", _props.defaultProps), _defineProperty(_class, \"addCustomPlayer\", function (player) {\n    customPlayers.push(player);\n  }), _defineProperty(_class, \"removeCustomPlayers\", function () {\n    customPlayers.length = 0;\n  }), _defineProperty(_class, \"canPlay\", function (url) {\n    for (var _i2 = 0, _arr2 = [].concat(customPlayers, _toConsumableArray(players)); _i2 < _arr2.length; _i2++) {\n      var _Player = _arr2[_i2];\n\n      if (_Player.canPlay(url)) {\n        return true;\n      }\n    }\n\n    return false;\n  }), _defineProperty(_class, \"canEnablePIP\", function (url) {\n    for (var _i3 = 0, _arr3 = [].concat(customPlayers, _toConsumableArray(players)); _i3 < _arr3.length; _i3++) {\n      var _Player2 = _arr3[_i3];\n\n      if (_Player2.canEnablePIP && _Player2.canEnablePIP(url)) {\n        return true;\n      }\n    }\n\n    return false;\n  }), _temp;\n};\n\nexports.createReactPlayer = createReactPlayer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _players = _interopRequireDefault(require(\"./players\"));\n\nvar _ReactPlayer = require(\"./ReactPlayer\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Fall back to FilePlayer if nothing else can play the URL\nvar fallback = _players[\"default\"][_players[\"default\"].length - 1];\n\nvar _default = (0, _ReactPlayer.createReactPlayer)(_players[\"default\"], fallback);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.canPlay = exports.FLV_EXTENSIONS = exports.DASH_EXTENSIONS = exports.HLS_EXTENSIONS = exports.VIDEO_EXTENSIONS = exports.AUDIO_EXTENSIONS = exports.MATCH_URL_KALTURA = exports.MATCH_URL_VIDYARD = exports.MATCH_URL_MIXCLOUD = exports.MATCH_URL_DAILYMOTION = exports.MATCH_URL_TWITCH_CHANNEL = exports.MATCH_URL_TWITCH_VIDEO = exports.MATCH_URL_WISTIA = exports.MATCH_URL_STREAMABLE = exports.MATCH_URL_FACEBOOK_WATCH = exports.MATCH_URL_FACEBOOK = exports.MATCH_URL_VIMEO = exports.MATCH_URL_SOUNDCLOUD = exports.MATCH_URL_YOUTUBE = void 0;\n\nvar _utils = require(\"./utils\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nexports.MATCH_URL_YOUTUBE = MATCH_URL_YOUTUBE;\nvar MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nexports.MATCH_URL_SOUNDCLOUD = MATCH_URL_SOUNDCLOUD;\nvar MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\nexports.MATCH_URL_VIMEO = MATCH_URL_VIMEO;\nvar MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nexports.MATCH_URL_FACEBOOK = MATCH_URL_FACEBOOK;\nvar MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nexports.MATCH_URL_FACEBOOK_WATCH = MATCH_URL_FACEBOOK_WATCH;\nvar MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nexports.MATCH_URL_STREAMABLE = MATCH_URL_STREAMABLE;\nvar MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?(.*)$/;\nexports.MATCH_URL_WISTIA = MATCH_URL_WISTIA;\nvar MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nexports.MATCH_URL_TWITCH_VIDEO = MATCH_URL_TWITCH_VIDEO;\nvar MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nexports.MATCH_URL_TWITCH_CHANNEL = MATCH_URL_TWITCH_CHANNEL;\nvar MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?$/;\nexports.MATCH_URL_DAILYMOTION = MATCH_URL_DAILYMOTION;\nvar MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nexports.MATCH_URL_MIXCLOUD = MATCH_URL_MIXCLOUD;\nvar MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-_]+)/;\nexports.MATCH_URL_VIDYARD = MATCH_URL_VIDYARD;\nvar MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_]+)$/;\nexports.MATCH_URL_KALTURA = MATCH_URL_KALTURA;\nvar AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nexports.AUDIO_EXTENSIONS = AUDIO_EXTENSIONS;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\\d+]+)?($|\\?)/i;\nexports.VIDEO_EXTENSIONS = VIDEO_EXTENSIONS;\nvar HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nexports.HLS_EXTENSIONS = HLS_EXTENSIONS;\nvar DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nexports.DASH_EXTENSIONS = DASH_EXTENSIONS;\nvar FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nexports.FLV_EXTENSIONS = FLV_EXTENSIONS;\n\nvar canPlayFile = function canPlayFile(url) {\n  if (url instanceof Array) {\n    var _iterator = _createForOfIteratorHelper(url),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var item = _step.value;\n\n        if (typeof item === 'string' && canPlayFile(item)) {\n          return true;\n        }\n\n        if (canPlayFile(item.src)) {\n          return true;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    return false;\n  }\n\n  if ((0, _utils.isMediaStream)(url) || (0, _utils.isBlobUrl)(url)) {\n    return true;\n  }\n\n  return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\n\nvar canPlay = {\n  youtube: function youtube(url) {\n    if (url instanceof Array) {\n      return url.every(function (item) {\n        return MATCH_URL_YOUTUBE.test(item);\n      });\n    }\n\n    return MATCH_URL_YOUTUBE.test(url);\n  },\n  soundcloud: function soundcloud(url) {\n    return MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url);\n  },\n  vimeo: function vimeo(url) {\n    return MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url);\n  },\n  facebook: function facebook(url) {\n    return MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url);\n  },\n  streamable: function streamable(url) {\n    return MATCH_URL_STREAMABLE.test(url);\n  },\n  wistia: function wistia(url) {\n    return MATCH_URL_WISTIA.test(url);\n  },\n  twitch: function twitch(url) {\n    return MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url);\n  },\n  dailymotion: function dailymotion(url) {\n    return MATCH_URL_DAILYMOTION.test(url);\n  },\n  mixcloud: function mixcloud(url) {\n    return MATCH_URL_MIXCLOUD.test(url);\n  },\n  vidyard: function vidyard(url) {\n    return MATCH_URL_VIDYARD.test(url);\n  },\n  kaltura: function kaltura(url) {\n    return MATCH_URL_KALTURA.test(url);\n  },\n  file: canPlayFile\n};\nexports.canPlay = canPlay;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://api.dmcdn.net/all.js';\nvar SDK_GLOBAL = 'DM';\nvar SDK_GLOBAL_READY = 'dmAsyncInit';\n\nvar DailyMotion = /*#__PURE__*/function (_Component) {\n  _inherits(DailyMotion, _Component);\n\n  var _super = _createSuper(DailyMotion);\n\n  function DailyMotion() {\n    var _this;\n\n    _classCallCheck(this, DailyMotion);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"onDurationChange\", function () {\n      var duration = _this.getDuration();\n\n      _this.props.onDuration(duration);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('setMuted', true);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('setMuted', false);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n      _this.container = container;\n    });\n\n    return _this;\n  }\n\n  _createClass(DailyMotion, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          controls = _this$props.controls,\n          config = _this$props.config,\n          onError = _this$props.onError,\n          playing = _this$props.playing;\n\n      var _url$match = url.match(_patterns.MATCH_URL_DAILYMOTION),\n          _url$match2 = _slicedToArray(_url$match, 2),\n          id = _url$match2[1];\n\n      if (this.player) {\n        this.player.load(id, {\n          start: (0, _utils.parseStartTime)(url),\n          autoplay: playing\n        });\n        return;\n      }\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (DM) {\n        return DM.player;\n      }).then(function (DM) {\n        if (!_this2.container) return;\n        var Player = DM.player;\n        _this2.player = new Player(_this2.container, {\n          width: '100%',\n          height: '100%',\n          video: id,\n          params: _objectSpread({\n            controls: controls,\n            autoplay: _this2.props.playing,\n            mute: _this2.props.muted,\n            start: (0, _utils.parseStartTime)(url),\n            origin: window.location.origin\n          }, config.params),\n          events: {\n            apiready: _this2.props.onReady,\n            seeked: function seeked() {\n              return _this2.props.onSeek(_this2.player.currentTime);\n            },\n            video_end: _this2.props.onEnded,\n            durationchange: _this2.onDurationChange,\n            pause: _this2.props.onPause,\n            playing: _this2.props.onPlay,\n            waiting: _this2.props.onBuffer,\n            error: function error(event) {\n              return onError(event);\n            }\n          }\n        });\n      }, onError);\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {// Nothing to do\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('seek', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.player.duration || null;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.player.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return this.player.bufferedTime;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var display = this.props.display;\n      var style = {\n        width: '100%',\n        height: '100%',\n        display: display\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: style\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        ref: this.ref\n      }));\n    }\n  }]);\n\n  return DailyMotion;\n}(_react.Component);\n\nexports[\"default\"] = DailyMotion;\n\n_defineProperty(DailyMotion, \"displayName\", 'DailyMotion');\n\n_defineProperty(DailyMotion, \"canPlay\", _patterns.canPlay.dailymotion);\n\n_defineProperty(DailyMotion, \"loopOnEnded\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://connect.facebook.net/en_US/sdk.js';\nvar SDK_GLOBAL = 'FB';\nvar SDK_GLOBAL_READY = 'fbAsyncInit';\nvar PLAYER_ID_PREFIX = 'facebook-player-';\n\nvar Facebook = /*#__PURE__*/function (_Component) {\n  _inherits(Facebook, _Component);\n\n  var _super = _createSuper(Facebook);\n\n  function Facebook() {\n    var _this;\n\n    _classCallCheck(this, Facebook);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"playerID\", _this.props.config.playerId || \"\".concat(PLAYER_ID_PREFIX).concat((0, _utils.randomString)()));\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('mute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('unmute');\n    });\n\n    return _this;\n  }\n\n  _createClass(Facebook, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url, isReady) {\n      var _this2 = this;\n\n      if (isReady) {\n        (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (FB) {\n          return FB.XFBML.parse();\n        });\n        return;\n      }\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (FB) {\n        FB.init({\n          appId: _this2.props.config.appId,\n          xfbml: true,\n          version: _this2.props.config.version\n        });\n        FB.Event.subscribe('xfbml.render', function (msg) {\n          // Here we know the SDK has loaded, even if onReady/onPlay\n          // is not called due to a video that cannot be embedded\n          _this2.props.onLoaded();\n        });\n        FB.Event.subscribe('xfbml.ready', function (msg) {\n          if (msg.type === 'video' && msg.id === _this2.playerID) {\n            _this2.player = msg.instance;\n\n            _this2.player.subscribe('startedPlaying', _this2.props.onPlay);\n\n            _this2.player.subscribe('paused', _this2.props.onPause);\n\n            _this2.player.subscribe('finishedPlaying', _this2.props.onEnded);\n\n            _this2.player.subscribe('startedBuffering', _this2.props.onBuffer);\n\n            _this2.player.subscribe('finishedBuffering', _this2.props.onBufferEnd);\n\n            _this2.player.subscribe('error', _this2.props.onError);\n\n            if (_this2.props.muted) {\n              _this2.callPlayer('mute');\n            } else {\n              _this2.callPlayer('unmute');\n            }\n\n            _this2.props.onReady(); // For some reason Facebook have added `visibility: hidden`\n            // to the iframe when autoplay fails, so here we set it back\n\n\n            document.getElementById(_this2.playerID).querySelector('iframe').style.visibility = 'visible';\n          }\n        });\n      });\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {// Nothing to do\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('seek', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.callPlayer('getDuration');\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.callPlayer('getCurrentPosition');\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return null;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var attributes = this.props.config.attributes;\n      var style = {\n        width: '100%',\n        height: '100%'\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n        style: style,\n        id: this.playerID,\n        className: \"fb-video\",\n        \"data-href\": this.props.url,\n        \"data-autoplay\": this.props.playing ? 'true' : 'false',\n        \"data-allowfullscreen\": \"true\",\n        \"data-controls\": this.props.controls ? 'true' : 'false'\n      }, attributes));\n    }\n  }]);\n\n  return Facebook;\n}(_react.Component);\n\nexports[\"default\"] = Facebook;\n\n_defineProperty(Facebook, \"displayName\", 'Facebook');\n\n_defineProperty(Facebook, \"canPlay\", _patterns.canPlay.facebook);\n\n_defineProperty(Facebook, \"loopOnEnded\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar HAS_NAVIGATOR = typeof navigator !== 'undefined';\nvar IS_IPAD_PRO = HAS_NAVIGATOR && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\nvar IS_IOS = HAS_NAVIGATOR && (/iPad|iPhone|iPod/.test(navigator.userAgent) || IS_IPAD_PRO) && !window.MSStream;\nvar HLS_SDK_URL = 'https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js';\nvar HLS_GLOBAL = 'Hls';\nvar DASH_SDK_URL = 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js';\nvar DASH_GLOBAL = 'dashjs';\nvar FLV_SDK_URL = 'https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js';\nvar FLV_GLOBAL = 'flvjs';\nvar MATCH_DROPBOX_URL = /www\\.dropbox\\.com\\/.+/;\nvar MATCH_CLOUDFLARE_STREAM = /https:\\/\\/watch\\.cloudflarestream\\.com\\/([a-z0-9]+)/;\nvar REPLACE_CLOUDFLARE_STREAM = 'https://videodelivery.net/{id}/manifest/video.m3u8';\n\nvar FilePlayer = /*#__PURE__*/function (_Component) {\n  _inherits(FilePlayer, _Component);\n\n  var _super = _createSuper(FilePlayer);\n\n  function FilePlayer() {\n    var _this;\n\n    _classCallCheck(this, FilePlayer);\n\n    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n      _args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(_args));\n\n    _defineProperty(_assertThisInitialized(_this), \"onReady\", function () {\n      var _this$props;\n\n      return (_this$props = _this.props).onReady.apply(_this$props, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPlay\", function () {\n      var _this$props2;\n\n      return (_this$props2 = _this.props).onPlay.apply(_this$props2, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onBuffer\", function () {\n      var _this$props3;\n\n      return (_this$props3 = _this.props).onBuffer.apply(_this$props3, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onBufferEnd\", function () {\n      var _this$props4;\n\n      return (_this$props4 = _this.props).onBufferEnd.apply(_this$props4, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPause\", function () {\n      var _this$props5;\n\n      return (_this$props5 = _this.props).onPause.apply(_this$props5, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onEnded\", function () {\n      var _this$props6;\n\n      return (_this$props6 = _this.props).onEnded.apply(_this$props6, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onError\", function () {\n      var _this$props7;\n\n      return (_this$props7 = _this.props).onError.apply(_this$props7, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPlayBackRateChange\", function (event) {\n      return _this.props.onPlaybackRateChange(event.target.playbackRate);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onEnablePIP\", function () {\n      var _this$props8;\n\n      return (_this$props8 = _this.props).onEnablePIP.apply(_this$props8, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onDisablePIP\", function (e) {\n      var _this$props9 = _this.props,\n          onDisablePIP = _this$props9.onDisablePIP,\n          playing = _this$props9.playing;\n      onDisablePIP(e);\n\n      if (playing) {\n        _this.play();\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPresentationModeChange\", function (e) {\n      if (_this.player && (0, _utils.supportsWebKitPresentationMode)(_this.player)) {\n        var webkitPresentationMode = _this.player.webkitPresentationMode;\n\n        if (webkitPresentationMode === 'picture-in-picture') {\n          _this.onEnablePIP(e);\n        } else if (webkitPresentationMode === 'inline') {\n          _this.onDisablePIP(e);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onSeek\", function (e) {\n      _this.props.onSeek(e.target.currentTime);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.player.muted = true;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.player.muted = false;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"renderSourceElement\", function (source, index) {\n      if (typeof source === 'string') {\n        return /*#__PURE__*/_react[\"default\"].createElement(\"source\", {\n          key: index,\n          src: source\n        });\n      }\n\n      return /*#__PURE__*/_react[\"default\"].createElement(\"source\", _extends({\n        key: index\n      }, source));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"renderTrack\", function (track, index) {\n      return /*#__PURE__*/_react[\"default\"].createElement(\"track\", _extends({\n        key: index\n      }, track));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n      if (_this.player) {\n        // Store previous player to be used by removeListeners()\n        _this.prevPlayer = _this.player;\n      }\n\n      _this.player = player;\n    });\n\n    return _this;\n  }\n\n  _createClass(FilePlayer, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n      this.addListeners(this.player);\n\n      if (IS_IOS) {\n        this.player.load();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.shouldUseAudio(this.props) !== this.shouldUseAudio(prevProps)) {\n        this.removeListeners(this.prevPlayer, prevProps.url);\n        this.addListeners(this.player);\n      }\n\n      if (this.props.url !== prevProps.url && !(0, _utils.isMediaStream)(this.props.url)) {\n        this.player.srcObject = null;\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.removeListeners(this.player);\n\n      if (this.hls) {\n        this.hls.destroy();\n      }\n    }\n  }, {\n    key: \"addListeners\",\n    value: function addListeners(player) {\n      var _this$props10 = this.props,\n          url = _this$props10.url,\n          playsinline = _this$props10.playsinline;\n      player.addEventListener('play', this.onPlay);\n      player.addEventListener('waiting', this.onBuffer);\n      player.addEventListener('playing', this.onBufferEnd);\n      player.addEventListener('pause', this.onPause);\n      player.addEventListener('seeked', this.onSeek);\n      player.addEventListener('ended', this.onEnded);\n      player.addEventListener('error', this.onError);\n      player.addEventListener('ratechange', this.onPlayBackRateChange);\n      player.addEventListener('enterpictureinpicture', this.onEnablePIP);\n      player.addEventListener('leavepictureinpicture', this.onDisablePIP);\n      player.addEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);\n\n      if (!this.shouldUseHLS(url)) {\n        // onReady is handled by hls.js\n        player.addEventListener('canplay', this.onReady);\n      }\n\n      if (playsinline) {\n        player.setAttribute('playsinline', '');\n        player.setAttribute('webkit-playsinline', '');\n        player.setAttribute('x5-playsinline', '');\n      }\n    }\n  }, {\n    key: \"removeListeners\",\n    value: function removeListeners(player, url) {\n      player.removeEventListener('canplay', this.onReady);\n      player.removeEventListener('play', this.onPlay);\n      player.removeEventListener('waiting', this.onBuffer);\n      player.removeEventListener('playing', this.onBufferEnd);\n      player.removeEventListener('pause', this.onPause);\n      player.removeEventListener('seeked', this.onSeek);\n      player.removeEventListener('ended', this.onEnded);\n      player.removeEventListener('error', this.onError);\n      player.removeEventListener('ratechange', this.onPlayBackRateChange);\n      player.removeEventListener('enterpictureinpicture', this.onEnablePIP);\n      player.removeEventListener('leavepictureinpicture', this.onDisablePIP);\n      player.removeEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);\n\n      if (!this.shouldUseHLS(url)) {\n        // onReady is handled by hls.js\n        player.removeEventListener('canplay', this.onReady);\n      }\n    } // Proxy methods to prevent listener leaks\n\n  }, {\n    key: \"shouldUseAudio\",\n    value: function shouldUseAudio(props) {\n      if (props.config.forceVideo) {\n        return false;\n      }\n\n      if (props.config.attributes.poster) {\n        return false; // Use <video> so that poster is shown\n      }\n\n      return _patterns.AUDIO_EXTENSIONS.test(props.url) || props.config.forceAudio;\n    }\n  }, {\n    key: \"shouldUseHLS\",\n    value: function shouldUseHLS(url) {\n      if (this.props.config.forceHLS) {\n        return true;\n      }\n\n      if (IS_IOS) {\n        return false;\n      }\n\n      return _patterns.HLS_EXTENSIONS.test(url) || MATCH_CLOUDFLARE_STREAM.test(url);\n    }\n  }, {\n    key: \"shouldUseDASH\",\n    value: function shouldUseDASH(url) {\n      return _patterns.DASH_EXTENSIONS.test(url) || this.props.config.forceDASH;\n    }\n  }, {\n    key: \"shouldUseFLV\",\n    value: function shouldUseFLV(url) {\n      return _patterns.FLV_EXTENSIONS.test(url) || this.props.config.forceFLV;\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      var _this$props$config = this.props.config,\n          hlsVersion = _this$props$config.hlsVersion,\n          hlsOptions = _this$props$config.hlsOptions,\n          dashVersion = _this$props$config.dashVersion,\n          flvVersion = _this$props$config.flvVersion;\n\n      if (this.hls) {\n        this.hls.destroy();\n      }\n\n      if (this.dash) {\n        this.dash.reset();\n      }\n\n      if (this.shouldUseHLS(url)) {\n        (0, _utils.getSDK)(HLS_SDK_URL.replace('VERSION', hlsVersion), HLS_GLOBAL).then(function (Hls) {\n          _this2.hls = new Hls(hlsOptions);\n\n          _this2.hls.on(Hls.Events.MANIFEST_PARSED, function () {\n            _this2.props.onReady();\n          });\n\n          _this2.hls.on(Hls.Events.ERROR, function (e, data) {\n            _this2.props.onError(e, data, _this2.hls, Hls);\n          });\n\n          if (MATCH_CLOUDFLARE_STREAM.test(url)) {\n            var id = url.match(MATCH_CLOUDFLARE_STREAM)[1];\n\n            _this2.hls.loadSource(REPLACE_CLOUDFLARE_STREAM.replace('{id}', id));\n          } else {\n            _this2.hls.loadSource(url);\n          }\n\n          _this2.hls.attachMedia(_this2.player);\n\n          _this2.props.onLoaded();\n        });\n      }\n\n      if (this.shouldUseDASH(url)) {\n        (0, _utils.getSDK)(DASH_SDK_URL.replace('VERSION', dashVersion), DASH_GLOBAL).then(function (dashjs) {\n          _this2.dash = dashjs.MediaPlayer().create();\n\n          _this2.dash.initialize(_this2.player, url, _this2.props.playing);\n\n          _this2.dash.on('error', _this2.props.onError);\n\n          if (parseInt(dashVersion) < 3) {\n            _this2.dash.getDebug().setLogToBrowserConsole(false);\n          } else {\n            _this2.dash.updateSettings({\n              debug: {\n                logLevel: dashjs.Debug.LOG_LEVEL_NONE\n              }\n            });\n          }\n\n          _this2.props.onLoaded();\n        });\n      }\n\n      if (this.shouldUseFLV(url)) {\n        (0, _utils.getSDK)(FLV_SDK_URL.replace('VERSION', flvVersion), FLV_GLOBAL).then(function (flvjs) {\n          _this2.flv = flvjs.createPlayer({\n            type: 'flv',\n            url: url\n          });\n\n          _this2.flv.attachMediaElement(_this2.player);\n\n          _this2.flv.load();\n\n          _this2.props.onLoaded();\n        });\n      }\n\n      if (url instanceof Array) {\n        // When setting new urls (<source>) on an already loaded video,\n        // HTMLMediaElement.load() is needed to reset the media element\n        // and restart the media resource. Just replacing children source\n        // dom nodes is not enough\n        this.player.load();\n      } else if ((0, _utils.isMediaStream)(url)) {\n        try {\n          this.player.srcObject = url;\n        } catch (e) {\n          this.player.src = window.URL.createObjectURL(url);\n        }\n      }\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      var promise = this.player.play();\n\n      if (promise) {\n        promise[\"catch\"](this.props.onError);\n      }\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.player.pause();\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      this.player.removeAttribute('src');\n\n      if (this.dash) {\n        this.dash.reset();\n      }\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.player.currentTime = seconds;\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.player.volume = fraction;\n    }\n  }, {\n    key: \"enablePIP\",\n    value: function enablePIP() {\n      if (this.player.requestPictureInPicture && document.pictureInPictureElement !== this.player) {\n        this.player.requestPictureInPicture();\n      } else if ((0, _utils.supportsWebKitPresentationMode)(this.player) && this.player.webkitPresentationMode !== 'picture-in-picture') {\n        this.player.webkitSetPresentationMode('picture-in-picture');\n      }\n    }\n  }, {\n    key: \"disablePIP\",\n    value: function disablePIP() {\n      if (document.exitPictureInPicture && document.pictureInPictureElement === this.player) {\n        document.exitPictureInPicture();\n      } else if ((0, _utils.supportsWebKitPresentationMode)(this.player) && this.player.webkitPresentationMode !== 'inline') {\n        this.player.webkitSetPresentationMode('inline');\n      }\n    }\n  }, {\n    key: \"setPlaybackRate\",\n    value: function setPlaybackRate(rate) {\n      try {\n        this.player.playbackRate = rate;\n      } catch (error) {\n        this.props.onError(error);\n      }\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      if (!this.player) return null;\n      var _this$player = this.player,\n          duration = _this$player.duration,\n          seekable = _this$player.seekable; // on iOS, live streams return Infinity for the duration\n      // so instead we use the end of the seekable timerange\n\n      if (duration === Infinity && seekable.length > 0) {\n        return seekable.end(seekable.length - 1);\n      }\n\n      return duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      if (!this.player) return null;\n      return this.player.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      if (!this.player) return null;\n      var buffered = this.player.buffered;\n\n      if (buffered.length === 0) {\n        return 0;\n      }\n\n      var end = buffered.end(buffered.length - 1);\n      var duration = this.getDuration();\n\n      if (end > duration) {\n        return duration;\n      }\n\n      return end;\n    }\n  }, {\n    key: \"getSource\",\n    value: function getSource(url) {\n      var useHLS = this.shouldUseHLS(url);\n      var useDASH = this.shouldUseDASH(url);\n      var useFLV = this.shouldUseFLV(url);\n\n      if (url instanceof Array || (0, _utils.isMediaStream)(url) || useHLS || useDASH || useFLV) {\n        return undefined;\n      }\n\n      if (MATCH_DROPBOX_URL.test(url)) {\n        return url.replace('www.dropbox.com', 'dl.dropboxusercontent.com');\n      }\n\n      return url;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props11 = this.props,\n          url = _this$props11.url,\n          playing = _this$props11.playing,\n          loop = _this$props11.loop,\n          controls = _this$props11.controls,\n          muted = _this$props11.muted,\n          config = _this$props11.config,\n          width = _this$props11.width,\n          height = _this$props11.height;\n      var useAudio = this.shouldUseAudio(this.props);\n      var Element = useAudio ? 'audio' : 'video';\n      var style = {\n        width: width === 'auto' ? width : '100%',\n        height: height === 'auto' ? height : '100%'\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(Element, _extends({\n        ref: this.ref,\n        src: this.getSource(url),\n        style: style,\n        preload: \"auto\",\n        autoPlay: playing || undefined,\n        controls: controls,\n        muted: muted,\n        loop: loop\n      }, config.attributes), url instanceof Array && url.map(this.renderSourceElement), config.tracks.map(this.renderTrack));\n    }\n  }]);\n\n  return FilePlayer;\n}(_react.Component);\n\nexports[\"default\"] = FilePlayer;\n\n_defineProperty(FilePlayer, \"displayName\", 'FilePlayer');\n\n_defineProperty(FilePlayer, \"canPlay\", _patterns.canPlay.file);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://cdn.embed.ly/player-0.1.0.min.js';\nvar SDK_GLOBAL = 'playerjs';\n\nvar Kaltura = /*#__PURE__*/function (_Component) {\n  _inherits(Kaltura, _Component);\n\n  var _super = _createSuper(Kaltura);\n\n  function Kaltura() {\n    var _this;\n\n    _classCallCheck(this, Kaltura);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('mute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('unmute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n      _this.iframe = iframe;\n    });\n\n    return _this;\n  }\n\n  _createClass(Kaltura, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (playerjs) {\n        if (!_this2.iframe) return;\n        _this2.player = new playerjs.Player(_this2.iframe);\n\n        _this2.player.on('ready', function () {\n          // An arbitrary timeout is required otherwise\n          // the event listeners won’t work\n          setTimeout(function () {\n            _this2.player.isReady = true;\n\n            _this2.player.setLoop(_this2.props.loop);\n\n            if (_this2.props.muted) {\n              _this2.player.mute();\n            }\n\n            _this2.addListeners(_this2.player, _this2.props);\n\n            _this2.props.onReady();\n          }, 500);\n        });\n      }, this.props.onError);\n    }\n  }, {\n    key: \"addListeners\",\n    value: function addListeners(player, props) {\n      var _this3 = this;\n\n      player.on('play', props.onPlay);\n      player.on('pause', props.onPause);\n      player.on('ended', props.onEnded);\n      player.on('error', props.onError);\n      player.on('timeupdate', function (_ref) {\n        var duration = _ref.duration,\n            seconds = _ref.seconds;\n        _this3.duration = duration;\n        _this3.currentTime = seconds;\n      });\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {// Nothing to do\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('setCurrentTime', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction);\n    }\n  }, {\n    key: \"setLoop\",\n    value: function setLoop(loop) {\n      this.callPlayer('setLoop', loop);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return this.secondsLoaded;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var style = {\n        width: '100%',\n        height: '100%'\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n        ref: this.ref,\n        src: this.props.url,\n        frameBorder: \"0\",\n        scrolling: \"no\",\n        style: style,\n        allowFullScreen: true,\n        allow: \"encrypted-media;autoplay\",\n        referrerPolicy: \"no-referrer-when-downgrade\"\n      });\n    }\n  }]);\n\n  return Kaltura;\n}(_react.Component);\n\nexports[\"default\"] = Kaltura;\n\n_defineProperty(Kaltura, \"displayName\", 'Kaltura');\n\n_defineProperty(Kaltura, \"canPlay\", _patterns.canPlay.kaltura);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://widget.mixcloud.com/media/js/widgetApi.js';\nvar SDK_GLOBAL = 'Mixcloud';\n\nvar Mixcloud = /*#__PURE__*/function (_Component) {\n  _inherits(Mixcloud, _Component);\n\n  var _super = _createSuper(Mixcloud);\n\n  function Mixcloud() {\n    var _this;\n\n    _classCallCheck(this, Mixcloud);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {// No volume support\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {// No volume support\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n      _this.iframe = iframe;\n    });\n\n    return _this;\n  }\n\n  _createClass(Mixcloud, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Mixcloud) {\n        _this2.player = Mixcloud.PlayerWidget(_this2.iframe);\n\n        _this2.player.ready.then(function () {\n          _this2.player.events.play.on(_this2.props.onPlay);\n\n          _this2.player.events.pause.on(_this2.props.onPause);\n\n          _this2.player.events.ended.on(_this2.props.onEnded);\n\n          _this2.player.events.error.on(_this2.props.error);\n\n          _this2.player.events.progress.on(function (seconds, duration) {\n            _this2.currentTime = seconds;\n            _this2.duration = duration;\n          });\n\n          _this2.props.onReady();\n        });\n      }, this.props.onError);\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {// Nothing to do\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('seek', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {// No volume support\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return null;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          url = _this$props.url,\n          config = _this$props.config;\n      var id = url.match(_patterns.MATCH_URL_MIXCLOUD)[1];\n      var style = {\n        width: '100%',\n        height: '100%'\n      };\n      var query = (0, _utils.queryString)(_objectSpread(_objectSpread({}, config.options), {}, {\n        feed: \"/\".concat(id, \"/\")\n      })); // We have to give the iframe a key here to prevent a\n      // weird dialog appearing when loading a new track\n\n      return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n        key: id,\n        ref: this.ref,\n        style: style,\n        src: \"https://www.mixcloud.com/widget/iframe/?\".concat(query),\n        frameBorder: \"0\"\n      });\n    }\n  }]);\n\n  return Mixcloud;\n}(_react.Component);\n\nexports[\"default\"] = Mixcloud;\n\n_defineProperty(Mixcloud, \"displayName\", 'Mixcloud');\n\n_defineProperty(Mixcloud, \"canPlay\", _patterns.canPlay.mixcloud);\n\n_defineProperty(Mixcloud, \"loopOnEnded\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://w.soundcloud.com/player/api.js';\nvar SDK_GLOBAL = 'SC';\n\nvar SoundCloud = /*#__PURE__*/function (_Component) {\n  _inherits(SoundCloud, _Component);\n\n  var _super = _createSuper(SoundCloud);\n\n  function SoundCloud() {\n    var _this;\n\n    _classCallCheck(this, SoundCloud);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"fractionLoaded\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.setVolume(0);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      if (_this.props.volume !== null) {\n        _this.setVolume(_this.props.volume);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n      _this.iframe = iframe;\n    });\n\n    return _this;\n  }\n\n  _createClass(SoundCloud, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url, isReady) {\n      var _this2 = this;\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (SC) {\n        if (!_this2.iframe) return;\n        var _SC$Widget$Events = SC.Widget.Events,\n            PLAY = _SC$Widget$Events.PLAY,\n            PLAY_PROGRESS = _SC$Widget$Events.PLAY_PROGRESS,\n            PAUSE = _SC$Widget$Events.PAUSE,\n            FINISH = _SC$Widget$Events.FINISH,\n            ERROR = _SC$Widget$Events.ERROR;\n\n        if (!isReady) {\n          _this2.player = SC.Widget(_this2.iframe);\n\n          _this2.player.bind(PLAY, _this2.props.onPlay);\n\n          _this2.player.bind(PAUSE, function () {\n            var remaining = _this2.duration - _this2.currentTime;\n\n            if (remaining < 0.05) {\n              // Prevent onPause firing right before onEnded\n              return;\n            }\n\n            _this2.props.onPause();\n          });\n\n          _this2.player.bind(PLAY_PROGRESS, function (e) {\n            _this2.currentTime = e.currentPosition / 1000;\n            _this2.fractionLoaded = e.loadedProgress;\n          });\n\n          _this2.player.bind(FINISH, function () {\n            return _this2.props.onEnded();\n          });\n\n          _this2.player.bind(ERROR, function (e) {\n            return _this2.props.onError(e);\n          });\n        }\n\n        _this2.player.load(url, _objectSpread(_objectSpread({}, _this2.props.config.options), {}, {\n          callback: function callback() {\n            _this2.player.getDuration(function (duration) {\n              _this2.duration = duration / 1000;\n\n              _this2.props.onReady();\n            });\n          }\n        }));\n      });\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {// Nothing to do\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('seekTo', seconds * 1000);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction * 100);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return this.fractionLoaded * this.duration;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var display = this.props.display;\n      var style = {\n        width: '100%',\n        height: '100%',\n        display: display\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n        ref: this.ref,\n        src: \"https://w.soundcloud.com/player/?url=\".concat(encodeURIComponent(this.props.url)),\n        style: style,\n        frameBorder: 0,\n        allow: \"autoplay\"\n      });\n    }\n  }]);\n\n  return SoundCloud;\n}(_react.Component);\n\nexports[\"default\"] = SoundCloud;\n\n_defineProperty(SoundCloud, \"displayName\", 'SoundCloud');\n\n_defineProperty(SoundCloud, \"canPlay\", _patterns.canPlay.soundcloud);\n\n_defineProperty(SoundCloud, \"loopOnEnded\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://cdn.embed.ly/player-0.1.0.min.js';\nvar SDK_GLOBAL = 'playerjs';\n\nvar Streamable = /*#__PURE__*/function (_Component) {\n  _inherits(Streamable, _Component);\n\n  var _super = _createSuper(Streamable);\n\n  function Streamable() {\n    var _this;\n\n    _classCallCheck(this, Streamable);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('mute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('unmute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n      _this.iframe = iframe;\n    });\n\n    return _this;\n  }\n\n  _createClass(Streamable, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (playerjs) {\n        if (!_this2.iframe) return;\n        _this2.player = new playerjs.Player(_this2.iframe);\n\n        _this2.player.setLoop(_this2.props.loop);\n\n        _this2.player.on('ready', _this2.props.onReady);\n\n        _this2.player.on('play', _this2.props.onPlay);\n\n        _this2.player.on('pause', _this2.props.onPause);\n\n        _this2.player.on('seeked', _this2.props.onSeek);\n\n        _this2.player.on('ended', _this2.props.onEnded);\n\n        _this2.player.on('error', _this2.props.onError);\n\n        _this2.player.on('timeupdate', function (_ref) {\n          var duration = _ref.duration,\n              seconds = _ref.seconds;\n          _this2.duration = duration;\n          _this2.currentTime = seconds;\n        });\n\n        _this2.player.on('buffered', function (_ref2) {\n          var percent = _ref2.percent;\n\n          if (_this2.duration) {\n            _this2.secondsLoaded = _this2.duration * percent;\n          }\n        });\n\n        if (_this2.props.muted) {\n          _this2.player.mute();\n        }\n      }, this.props.onError);\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {// Nothing to do\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('setCurrentTime', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction * 100);\n    }\n  }, {\n    key: \"setLoop\",\n    value: function setLoop(loop) {\n      this.callPlayer('setLoop', loop);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return this.secondsLoaded;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var id = this.props.url.match(_patterns.MATCH_URL_STREAMABLE)[1];\n      var style = {\n        width: '100%',\n        height: '100%'\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n        ref: this.ref,\n        src: \"https://streamable.com/o/\".concat(id),\n        frameBorder: \"0\",\n        scrolling: \"no\",\n        style: style,\n        allowFullScreen: true\n      });\n    }\n  }]);\n\n  return Streamable;\n}(_react.Component);\n\nexports[\"default\"] = Streamable;\n\n_defineProperty(Streamable, \"displayName\", 'Streamable');\n\n_defineProperty(Streamable, \"canPlay\", _patterns.canPlay.streamable);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://player.twitch.tv/js/embed/v1.js';\nvar SDK_GLOBAL = 'Twitch';\nvar PLAYER_ID_PREFIX = 'twitch-player-';\n\nvar Twitch = /*#__PURE__*/function (_Component) {\n  _inherits(Twitch, _Component);\n\n  var _super = _createSuper(Twitch);\n\n  function Twitch() {\n    var _this;\n\n    _classCallCheck(this, Twitch);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"playerID\", _this.props.config.playerId || \"\".concat(PLAYER_ID_PREFIX).concat((0, _utils.randomString)()));\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('setMuted', true);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('setMuted', false);\n    });\n\n    return _this;\n  }\n\n  _createClass(Twitch, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url, isReady) {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          playsinline = _this$props.playsinline,\n          onError = _this$props.onError,\n          config = _this$props.config,\n          controls = _this$props.controls;\n\n      var isChannel = _patterns.MATCH_URL_TWITCH_CHANNEL.test(url);\n\n      var id = isChannel ? url.match(_patterns.MATCH_URL_TWITCH_CHANNEL)[1] : url.match(_patterns.MATCH_URL_TWITCH_VIDEO)[1];\n\n      if (isReady) {\n        if (isChannel) {\n          this.player.setChannel(id);\n        } else {\n          this.player.setVideo('v' + id);\n        }\n\n        return;\n      }\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Twitch) {\n        _this2.player = new Twitch.Player(_this2.playerID, _objectSpread({\n          video: isChannel ? '' : id,\n          channel: isChannel ? id : '',\n          height: '100%',\n          width: '100%',\n          playsinline: playsinline,\n          autoplay: _this2.props.playing,\n          muted: _this2.props.muted,\n          // https://github.com/CookPete/react-player/issues/733#issuecomment-549085859\n          controls: isChannel ? true : controls,\n          time: (0, _utils.parseStartTime)(url)\n        }, config.options));\n        var _Twitch$Player = Twitch.Player,\n            READY = _Twitch$Player.READY,\n            PLAYING = _Twitch$Player.PLAYING,\n            PAUSE = _Twitch$Player.PAUSE,\n            ENDED = _Twitch$Player.ENDED,\n            ONLINE = _Twitch$Player.ONLINE,\n            OFFLINE = _Twitch$Player.OFFLINE,\n            SEEK = _Twitch$Player.SEEK;\n\n        _this2.player.addEventListener(READY, _this2.props.onReady);\n\n        _this2.player.addEventListener(PLAYING, _this2.props.onPlay);\n\n        _this2.player.addEventListener(PAUSE, _this2.props.onPause);\n\n        _this2.player.addEventListener(ENDED, _this2.props.onEnded);\n\n        _this2.player.addEventListener(SEEK, _this2.props.onSeek); // Prevent weird isLoading behaviour when streams are offline\n\n\n        _this2.player.addEventListener(ONLINE, _this2.props.onLoaded);\n\n        _this2.player.addEventListener(OFFLINE, _this2.props.onLoaded);\n      }, onError);\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('seek', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.callPlayer('getDuration');\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.callPlayer('getCurrentTime');\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return null;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var style = {\n        width: '100%',\n        height: '100%'\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: style,\n        id: this.playerID\n      });\n    }\n  }]);\n\n  return Twitch;\n}(_react.Component);\n\nexports[\"default\"] = Twitch;\n\n_defineProperty(Twitch, \"displayName\", 'Twitch');\n\n_defineProperty(Twitch, \"canPlay\", _patterns.canPlay.twitch);\n\n_defineProperty(Twitch, \"loopOnEnded\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://play.vidyard.com/embed/v4.js';\nvar SDK_GLOBAL = 'VidyardV4';\nvar SDK_GLOBAL_READY = 'onVidyardAPI';\n\nvar Vidyard = /*#__PURE__*/function (_Component) {\n  _inherits(Vidyard, _Component);\n\n  var _super = _createSuper(Vidyard);\n\n  function Vidyard() {\n    var _this;\n\n    _classCallCheck(this, Vidyard);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.setVolume(0);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      if (_this.props.volume !== null) {\n        _this.setVolume(_this.props.volume);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n      _this.container = container;\n    });\n\n    return _this;\n  }\n\n  _createClass(Vidyard, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          playing = _this$props.playing,\n          config = _this$props.config,\n          onError = _this$props.onError,\n          onDuration = _this$props.onDuration;\n      var id = url && url.match(_patterns.MATCH_URL_VIDYARD)[1];\n\n      if (this.player) {\n        this.stop();\n      }\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (Vidyard) {\n        if (!_this2.container) return;\n        Vidyard.api.addReadyListener(function (data, player) {\n          _this2.player = player;\n\n          _this2.player.on('ready', _this2.props.onReady);\n\n          _this2.player.on('play', _this2.props.onPlay);\n\n          _this2.player.on('pause', _this2.props.onPause);\n\n          _this2.player.on('seek', _this2.props.onSeek);\n\n          _this2.player.on('playerComplete', _this2.props.onEnded);\n        }, id);\n        Vidyard.api.renderPlayer(_objectSpread({\n          uuid: id,\n          container: _this2.container,\n          autoplay: playing ? 1 : 0\n        }, config.options));\n        Vidyard.api.getPlayerMetadata(id).then(function (meta) {\n          _this2.duration = meta.length_in_seconds;\n          onDuration(meta.length_in_seconds);\n        });\n      }, onError);\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      window.VidyardV4.api.destroyPlayer(this.player);\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(amount) {\n      this.callPlayer('seek', amount);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction);\n    }\n  }, {\n    key: \"setPlaybackRate\",\n    value: function setPlaybackRate(rate) {\n      this.callPlayer('setPlaybackSpeed', rate);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.callPlayer('currentTime');\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return null;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var display = this.props.display;\n      var style = {\n        width: '100%',\n        height: '100%',\n        display: display\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: style\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        ref: this.ref\n      }));\n    }\n  }]);\n\n  return Vidyard;\n}(_react.Component);\n\nexports[\"default\"] = Vidyard;\n\n_defineProperty(Vidyard, \"displayName\", 'Vidyard');\n\n_defineProperty(Vidyard, \"canPlay\", _patterns.canPlay.vidyard);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://player.vimeo.com/api/player.js';\nvar SDK_GLOBAL = 'Vimeo';\n\nvar Vimeo = /*#__PURE__*/function (_Component) {\n  _inherits(Vimeo, _Component);\n\n  var _super = _createSuper(Vimeo);\n\n  function Vimeo() {\n    var _this;\n\n    _classCallCheck(this, Vimeo);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.setVolume(0);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      if (_this.props.volume !== null) {\n        _this.setVolume(_this.props.volume);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n      _this.container = container;\n    });\n\n    return _this;\n  }\n\n  _createClass(Vimeo, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      this.duration = null;\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Vimeo) {\n        if (!_this2.container) return;\n        var _this2$props$config = _this2.props.config,\n            playerOptions = _this2$props$config.playerOptions,\n            title = _this2$props$config.title;\n        _this2.player = new Vimeo.Player(_this2.container, _objectSpread({\n          url: url,\n          autoplay: _this2.props.playing,\n          muted: _this2.props.muted,\n          loop: _this2.props.loop,\n          playsinline: _this2.props.playsinline,\n          controls: _this2.props.controls\n        }, playerOptions));\n\n        _this2.player.ready().then(function () {\n          var iframe = _this2.container.querySelector('iframe');\n\n          iframe.style.width = '100%';\n          iframe.style.height = '100%';\n\n          if (title) {\n            iframe.title = title;\n          }\n        })[\"catch\"](_this2.props.onError);\n\n        _this2.player.on('loaded', function () {\n          _this2.props.onReady();\n\n          _this2.refreshDuration();\n        });\n\n        _this2.player.on('play', function () {\n          _this2.props.onPlay();\n\n          _this2.refreshDuration();\n        });\n\n        _this2.player.on('pause', _this2.props.onPause);\n\n        _this2.player.on('seeked', function (e) {\n          return _this2.props.onSeek(e.seconds);\n        });\n\n        _this2.player.on('ended', _this2.props.onEnded);\n\n        _this2.player.on('error', _this2.props.onError);\n\n        _this2.player.on('timeupdate', function (_ref) {\n          var seconds = _ref.seconds;\n          _this2.currentTime = seconds;\n        });\n\n        _this2.player.on('progress', function (_ref2) {\n          var seconds = _ref2.seconds;\n          _this2.secondsLoaded = seconds;\n        });\n\n        _this2.player.on('bufferstart', _this2.props.onBuffer);\n\n        _this2.player.on('bufferend', _this2.props.onBufferEnd);\n      }, this.props.onError);\n    }\n  }, {\n    key: \"refreshDuration\",\n    value: function refreshDuration() {\n      var _this3 = this;\n\n      this.player.getDuration().then(function (duration) {\n        _this3.duration = duration;\n      });\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      var promise = this.callPlayer('play');\n\n      if (promise) {\n        promise[\"catch\"](this.props.onError);\n      }\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      this.callPlayer('unload');\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('setCurrentTime', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction);\n    }\n  }, {\n    key: \"setLoop\",\n    value: function setLoop(loop) {\n      this.callPlayer('setLoop', loop);\n    }\n  }, {\n    key: \"setPlaybackRate\",\n    value: function setPlaybackRate(rate) {\n      this.callPlayer('setPlaybackRate', rate);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.duration;\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.currentTime;\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return this.secondsLoaded;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var display = this.props.display;\n      var style = {\n        width: '100%',\n        height: '100%',\n        overflow: 'hidden',\n        display: display\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        key: this.props.url,\n        ref: this.ref,\n        style: style\n      });\n    }\n  }]);\n\n  return Vimeo;\n}(_react.Component);\n\nexports[\"default\"] = Vimeo;\n\n_defineProperty(Vimeo, \"displayName\", 'Vimeo');\n\n_defineProperty(Vimeo, \"canPlay\", _patterns.canPlay.vimeo);\n\n_defineProperty(Vimeo, \"forceLoad\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://fast.wistia.com/assets/external/E-v1.js';\nvar SDK_GLOBAL = 'Wistia';\nvar PLAYER_ID_PREFIX = 'wistia-player-';\n\nvar Wistia = /*#__PURE__*/function (_Component) {\n  _inherits(Wistia, _Component);\n\n  var _super = _createSuper(Wistia);\n\n  function Wistia() {\n    var _this;\n\n    _classCallCheck(this, Wistia);\n\n    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n      _args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(_args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"playerID\", _this.props.config.playerId || \"\".concat(PLAYER_ID_PREFIX).concat((0, _utils.randomString)()));\n\n    _defineProperty(_assertThisInitialized(_this), \"onPlay\", function () {\n      var _this$props;\n\n      return (_this$props = _this.props).onPlay.apply(_this$props, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPause\", function () {\n      var _this$props2;\n\n      return (_this$props2 = _this.props).onPause.apply(_this$props2, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onSeek\", function () {\n      var _this$props3;\n\n      return (_this$props3 = _this.props).onSeek.apply(_this$props3, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onEnded\", function () {\n      var _this$props4;\n\n      return (_this$props4 = _this.props).onEnded.apply(_this$props4, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onPlaybackRateChange\", function () {\n      var _this$props5;\n\n      return (_this$props5 = _this.props).onPlaybackRateChange.apply(_this$props5, arguments);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('mute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('unmute');\n    });\n\n    return _this;\n  }\n\n  _createClass(Wistia, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this2 = this;\n\n      var _this$props6 = this.props,\n          playing = _this$props6.playing,\n          muted = _this$props6.muted,\n          controls = _this$props6.controls,\n          _onReady = _this$props6.onReady,\n          config = _this$props6.config,\n          onError = _this$props6.onError;\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Wistia) {\n        if (config.customControls) {\n          config.customControls.forEach(function (control) {\n            return Wistia.defineControl(control);\n          });\n        }\n\n        window._wq = window._wq || [];\n\n        window._wq.push({\n          id: _this2.playerID,\n          options: _objectSpread({\n            autoPlay: playing,\n            silentAutoPlay: 'allow',\n            muted: muted,\n            controlsVisibleOnLoad: controls,\n            fullscreenButton: controls,\n            playbar: controls,\n            playbackRateControl: controls,\n            qualityControl: controls,\n            volumeControl: controls,\n            settingsControl: controls,\n            smallPlayButton: controls\n          }, config.options),\n          onReady: function onReady(player) {\n            _this2.player = player;\n\n            _this2.unbind();\n\n            _this2.player.bind('play', _this2.onPlay);\n\n            _this2.player.bind('pause', _this2.onPause);\n\n            _this2.player.bind('seek', _this2.onSeek);\n\n            _this2.player.bind('end', _this2.onEnded);\n\n            _this2.player.bind('playbackratechange', _this2.onPlaybackRateChange);\n\n            _onReady();\n          }\n        });\n      }, onError);\n    }\n  }, {\n    key: \"unbind\",\n    value: function unbind() {\n      this.player.unbind('play', this.onPlay);\n      this.player.unbind('pause', this.onPause);\n      this.player.unbind('seek', this.onSeek);\n      this.player.unbind('end', this.onEnded);\n      this.player.unbind('playbackratechange', this.onPlaybackRateChange);\n    } // Proxy methods to prevent listener leaks\n\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('play');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pause');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      this.unbind();\n      this.callPlayer('remove');\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(seconds) {\n      this.callPlayer('time', seconds);\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('volume', fraction);\n    }\n  }, {\n    key: \"setPlaybackRate\",\n    value: function setPlaybackRate(rate) {\n      this.callPlayer('playbackRate', rate);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.callPlayer('duration');\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.callPlayer('time');\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return null;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var url = this.props.url;\n      var videoID = url && url.match(_patterns.MATCH_URL_WISTIA)[1];\n      var className = \"wistia_embed wistia_async_\".concat(videoID);\n      var style = {\n        width: '100%',\n        height: '100%'\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        id: this.playerID,\n        key: videoID,\n        className: className,\n        style: style\n      });\n    }\n  }]);\n\n  return Wistia;\n}(_react.Component);\n\nexports[\"default\"] = Wistia;\n\n_defineProperty(Wistia, \"displayName\", 'Wistia');\n\n_defineProperty(Wistia, \"canPlay\", _patterns.canPlay.wistia);\n\n_defineProperty(Wistia, \"loopOnEnded\", true);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SDK_URL = 'https://www.youtube.com/iframe_api';\nvar SDK_GLOBAL = 'YT';\nvar SDK_GLOBAL_READY = 'onYouTubeIframeAPIReady';\nvar MATCH_PLAYLIST = /[?&](?:list|channel)=([a-zA-Z0-9_-]+)/;\nvar MATCH_USER_UPLOADS = /user\\/([a-zA-Z0-9_-]+)\\/?/;\nvar MATCH_NOCOOKIE = /youtube-nocookie\\.com/;\nvar NOCOOKIE_HOST = 'https://www.youtube-nocookie.com';\n\nvar YouTube = /*#__PURE__*/function (_Component) {\n  _inherits(YouTube, _Component);\n\n  var _super = _createSuper(YouTube);\n\n  function YouTube() {\n    var _this;\n\n    _classCallCheck(this, YouTube);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n    _defineProperty(_assertThisInitialized(_this), \"parsePlaylist\", function (url) {\n      if (url instanceof Array) {\n        return {\n          listType: 'playlist',\n          playlist: url.map(_this.getID).join(',')\n        };\n      }\n\n      if (MATCH_PLAYLIST.test(url)) {\n        var _url$match = url.match(MATCH_PLAYLIST),\n            _url$match2 = _slicedToArray(_url$match, 2),\n            playlistId = _url$match2[1];\n\n        return {\n          listType: 'playlist',\n          list: playlistId.replace(/^UC/, 'UU')\n        };\n      }\n\n      if (MATCH_USER_UPLOADS.test(url)) {\n        var _url$match3 = url.match(MATCH_USER_UPLOADS),\n            _url$match4 = _slicedToArray(_url$match3, 2),\n            username = _url$match4[1];\n\n        return {\n          listType: 'user_uploads',\n          list: username\n        };\n      }\n\n      return {};\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onStateChange\", function (event) {\n      var data = event.data;\n      var _this$props = _this.props,\n          onPlay = _this$props.onPlay,\n          onPause = _this$props.onPause,\n          onBuffer = _this$props.onBuffer,\n          onBufferEnd = _this$props.onBufferEnd,\n          onEnded = _this$props.onEnded,\n          onReady = _this$props.onReady,\n          loop = _this$props.loop,\n          _this$props$config = _this$props.config,\n          playerVars = _this$props$config.playerVars,\n          onUnstarted = _this$props$config.onUnstarted;\n      var _window$SDK_GLOBAL$Pl = window[SDK_GLOBAL].PlayerState,\n          UNSTARTED = _window$SDK_GLOBAL$Pl.UNSTARTED,\n          PLAYING = _window$SDK_GLOBAL$Pl.PLAYING,\n          PAUSED = _window$SDK_GLOBAL$Pl.PAUSED,\n          BUFFERING = _window$SDK_GLOBAL$Pl.BUFFERING,\n          ENDED = _window$SDK_GLOBAL$Pl.ENDED,\n          CUED = _window$SDK_GLOBAL$Pl.CUED;\n      if (data === UNSTARTED) onUnstarted();\n\n      if (data === PLAYING) {\n        onPlay();\n        onBufferEnd();\n      }\n\n      if (data === PAUSED) onPause();\n      if (data === BUFFERING) onBuffer();\n\n      if (data === ENDED) {\n        var isPlaylist = !!_this.callPlayer('getPlaylist'); // Only loop manually if not playing a playlist\n\n        if (loop && !isPlaylist) {\n          if (playerVars.start) {\n            _this.seekTo(playerVars.start);\n          } else {\n            _this.play();\n          }\n        }\n\n        onEnded();\n      }\n\n      if (data === CUED) onReady();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n      _this.callPlayer('mute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n      _this.callPlayer('unMute');\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n      _this.container = container;\n    });\n\n    return _this;\n  }\n\n  _createClass(YouTube, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.onMount && this.props.onMount(this);\n    }\n  }, {\n    key: \"getID\",\n    value: function getID(url) {\n      if (!url || url instanceof Array || MATCH_PLAYLIST.test(url)) {\n        return null;\n      }\n\n      return url.match(_patterns.MATCH_URL_YOUTUBE)[1];\n    }\n  }, {\n    key: \"load\",\n    value: function load(url, isReady) {\n      var _this2 = this;\n\n      var _this$props2 = this.props,\n          playing = _this$props2.playing,\n          muted = _this$props2.muted,\n          playsinline = _this$props2.playsinline,\n          controls = _this$props2.controls,\n          loop = _this$props2.loop,\n          config = _this$props2.config,\n          _onError = _this$props2.onError;\n      var playerVars = config.playerVars,\n          embedOptions = config.embedOptions;\n      var id = this.getID(url);\n\n      if (isReady) {\n        if (MATCH_PLAYLIST.test(url) || MATCH_USER_UPLOADS.test(url) || url instanceof Array) {\n          this.player.loadPlaylist(this.parsePlaylist(url));\n          return;\n        }\n\n        this.player.cueVideoById({\n          videoId: id,\n          startSeconds: (0, _utils.parseStartTime)(url) || playerVars.start,\n          endSeconds: (0, _utils.parseEndTime)(url) || playerVars.end\n        });\n        return;\n      }\n\n      (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (YT) {\n        return YT.loaded;\n      }).then(function (YT) {\n        if (!_this2.container) return;\n        _this2.player = new YT.Player(_this2.container, _objectSpread({\n          width: '100%',\n          height: '100%',\n          videoId: id,\n          playerVars: _objectSpread(_objectSpread({\n            autoplay: playing ? 1 : 0,\n            mute: muted ? 1 : 0,\n            controls: controls ? 1 : 0,\n            start: (0, _utils.parseStartTime)(url),\n            end: (0, _utils.parseEndTime)(url),\n            origin: window.location.origin,\n            playsinline: playsinline ? 1 : 0\n          }, _this2.parsePlaylist(url)), playerVars),\n          events: {\n            onReady: function onReady() {\n              if (loop) {\n                _this2.player.setLoop(true); // Enable playlist looping\n\n              }\n\n              _this2.props.onReady();\n            },\n            onPlaybackRateChange: function onPlaybackRateChange(event) {\n              return _this2.props.onPlaybackRateChange(event.data);\n            },\n            onStateChange: _this2.onStateChange,\n            onError: function onError(event) {\n              return _onError(event.data);\n            }\n          },\n          host: MATCH_NOCOOKIE.test(url) ? NOCOOKIE_HOST : undefined\n        }, embedOptions));\n      }, _onError);\n\n      if (embedOptions.events) {\n        console.warn('Using `embedOptions.events` will likely break things. Use ReactPlayer’s callback props instead, eg onReady, onPlay, onPause');\n      }\n    }\n  }, {\n    key: \"play\",\n    value: function play() {\n      this.callPlayer('playVideo');\n    }\n  }, {\n    key: \"pause\",\n    value: function pause() {\n      this.callPlayer('pauseVideo');\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      if (!document.body.contains(this.callPlayer('getIframe'))) return;\n      this.callPlayer('stopVideo');\n    }\n  }, {\n    key: \"seekTo\",\n    value: function seekTo(amount) {\n      this.callPlayer('seekTo', amount);\n\n      if (!this.props.playing) {\n        this.pause();\n      }\n    }\n  }, {\n    key: \"setVolume\",\n    value: function setVolume(fraction) {\n      this.callPlayer('setVolume', fraction * 100);\n    }\n  }, {\n    key: \"setPlaybackRate\",\n    value: function setPlaybackRate(rate) {\n      this.callPlayer('setPlaybackRate', rate);\n    }\n  }, {\n    key: \"setLoop\",\n    value: function setLoop(loop) {\n      this.callPlayer('setLoop', loop);\n    }\n  }, {\n    key: \"getDuration\",\n    value: function getDuration() {\n      return this.callPlayer('getDuration');\n    }\n  }, {\n    key: \"getCurrentTime\",\n    value: function getCurrentTime() {\n      return this.callPlayer('getCurrentTime');\n    }\n  }, {\n    key: \"getSecondsLoaded\",\n    value: function getSecondsLoaded() {\n      return this.callPlayer('getVideoLoadedFraction') * this.getDuration();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var display = this.props.display;\n      var style = {\n        width: '100%',\n        height: '100%',\n        display: display\n      };\n      return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        style: style\n      }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n        ref: this.ref\n      }));\n    }\n  }]);\n\n  return YouTube;\n}(_react.Component);\n\nexports[\"default\"] = YouTube;\n\n_defineProperty(YouTube, \"displayName\", 'YouTube');\n\n_defineProperty(YouTube, \"canPlay\", _patterns.canPlay.youtube);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _utils = require(\"../utils\");\n\nvar _patterns = require(\"../patterns\");\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = [{\n  key: 'youtube',\n  name: 'YouTube',\n  canPlay: _patterns.canPlay.youtube,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./YouTube'));\n    });\n  })\n}, {\n  key: 'soundcloud',\n  name: 'SoundCloud',\n  canPlay: _patterns.canPlay.soundcloud,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./SoundCloud'));\n    });\n  })\n}, {\n  key: 'vimeo',\n  name: 'Vimeo',\n  canPlay: _patterns.canPlay.vimeo,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Vimeo'));\n    });\n  })\n}, {\n  key: 'facebook',\n  name: 'Facebook',\n  canPlay: _patterns.canPlay.facebook,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Facebook'));\n    });\n  })\n}, {\n  key: 'streamable',\n  name: 'Streamable',\n  canPlay: _patterns.canPlay.streamable,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Streamable'));\n    });\n  })\n}, {\n  key: 'wistia',\n  name: 'Wistia',\n  canPlay: _patterns.canPlay.wistia,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Wistia'));\n    });\n  })\n}, {\n  key: 'twitch',\n  name: 'Twitch',\n  canPlay: _patterns.canPlay.twitch,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Twitch'));\n    });\n  })\n}, {\n  key: 'dailymotion',\n  name: 'DailyMotion',\n  canPlay: _patterns.canPlay.dailymotion,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./DailyMotion'));\n    });\n  })\n}, {\n  key: 'mixcloud',\n  name: 'Mixcloud',\n  canPlay: _patterns.canPlay.mixcloud,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Mixcloud'));\n    });\n  })\n}, {\n  key: 'vidyard',\n  name: 'Vidyard',\n  canPlay: _patterns.canPlay.vidyard,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Vidyard'));\n    });\n  })\n}, {\n  key: 'kaltura',\n  name: 'Kaltura',\n  canPlay: _patterns.canPlay.kaltura,\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./Kaltura'));\n    });\n  })\n}, {\n  key: 'file',\n  name: 'FilePlayer',\n  canPlay: _patterns.canPlay.file,\n  canEnablePIP: function canEnablePIP(url) {\n    return _patterns.canPlay.file(url) && (document.pictureInPictureEnabled || (0, _utils.supportsWebKitPresentationMode)()) && !_patterns.AUDIO_EXTENSIONS.test(url);\n  },\n  lazyPlayer: /*#__PURE__*/(0, _react.lazy)(function () {\n    return Promise.resolve().then(function () {\n      return _interopRequireWildcard(require('./FilePlayer'));\n    });\n  })\n}];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.defaultProps = exports.propTypes = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar string = _propTypes[\"default\"].string,\n    bool = _propTypes[\"default\"].bool,\n    number = _propTypes[\"default\"].number,\n    array = _propTypes[\"default\"].array,\n    oneOfType = _propTypes[\"default\"].oneOfType,\n    shape = _propTypes[\"default\"].shape,\n    object = _propTypes[\"default\"].object,\n    func = _propTypes[\"default\"].func,\n    node = _propTypes[\"default\"].node;\nvar propTypes = {\n  url: oneOfType([string, array, object]),\n  playing: bool,\n  loop: bool,\n  controls: bool,\n  volume: number,\n  muted: bool,\n  playbackRate: number,\n  width: oneOfType([string, number]),\n  height: oneOfType([string, number]),\n  style: object,\n  progressInterval: number,\n  playsinline: bool,\n  pip: bool,\n  stopOnUnmount: bool,\n  light: oneOfType([bool, string]),\n  playIcon: node,\n  previewTabIndex: number,\n  fallback: node,\n  oEmbedUrl: string,\n  wrapper: oneOfType([string, func, shape({\n    render: func.isRequired\n  })]),\n  config: shape({\n    soundcloud: shape({\n      options: object\n    }),\n    youtube: shape({\n      playerVars: object,\n      embedOptions: object,\n      onUnstarted: func\n    }),\n    facebook: shape({\n      appId: string,\n      version: string,\n      playerId: string,\n      attributes: object\n    }),\n    dailymotion: shape({\n      params: object\n    }),\n    vimeo: shape({\n      playerOptions: object,\n      title: string\n    }),\n    file: shape({\n      attributes: object,\n      tracks: array,\n      forceVideo: bool,\n      forceAudio: bool,\n      forceHLS: bool,\n      forceDASH: bool,\n      forceFLV: bool,\n      hlsOptions: object,\n      hlsVersion: string,\n      dashVersion: string,\n      flvVersion: string\n    }),\n    wistia: shape({\n      options: object,\n      playerId: string,\n      customControls: array\n    }),\n    mixcloud: shape({\n      options: object\n    }),\n    twitch: shape({\n      options: object,\n      playerId: string\n    }),\n    vidyard: shape({\n      options: object\n    })\n  }),\n  onReady: func,\n  onStart: func,\n  onPlay: func,\n  onPause: func,\n  onBuffer: func,\n  onBufferEnd: func,\n  onEnded: func,\n  onError: func,\n  onDuration: func,\n  onSeek: func,\n  onPlaybackRateChange: func,\n  onProgress: func,\n  onClickPreview: func,\n  onEnablePIP: func,\n  onDisablePIP: func\n};\nexports.propTypes = propTypes;\n\nvar noop = function noop() {};\n\nvar defaultProps = {\n  playing: false,\n  loop: false,\n  controls: false,\n  volume: null,\n  muted: false,\n  playbackRate: 1,\n  width: '640px',\n  height: '360px',\n  style: {},\n  progressInterval: 1000,\n  playsinline: false,\n  pip: false,\n  stopOnUnmount: true,\n  light: false,\n  fallback: null,\n  wrapper: 'div',\n  previewTabIndex: 0,\n  oEmbedUrl: 'https://noembed.com/embed?url={url}',\n  config: {\n    soundcloud: {\n      options: {\n        visual: true,\n        // Undocumented, but makes player fill container and look better\n        buying: false,\n        liking: false,\n        download: false,\n        sharing: false,\n        show_comments: false,\n        show_playcount: false\n      }\n    },\n    youtube: {\n      playerVars: {\n        playsinline: 1,\n        showinfo: 0,\n        rel: 0,\n        iv_load_policy: 3,\n        modestbranding: 1\n      },\n      embedOptions: {},\n      onUnstarted: noop\n    },\n    facebook: {\n      appId: '1309697205772819',\n      version: 'v3.3',\n      playerId: null,\n      attributes: {}\n    },\n    dailymotion: {\n      params: {\n        api: 1,\n        'endscreen-enable': false\n      }\n    },\n    vimeo: {\n      playerOptions: {\n        autopause: false,\n        byline: false,\n        portrait: false,\n        title: false\n      },\n      title: null\n    },\n    file: {\n      attributes: {},\n      tracks: [],\n      forceVideo: false,\n      forceAudio: false,\n      forceHLS: false,\n      forceDASH: false,\n      forceFLV: false,\n      hlsOptions: {},\n      hlsVersion: '1.1.4',\n      dashVersion: '3.1.3',\n      flvVersion: '1.5.0'\n    },\n    wistia: {\n      options: {},\n      playerId: null,\n      customControls: null\n    },\n    mixcloud: {\n      options: {\n        hide_cover: 1\n      }\n    },\n    twitch: {\n      options: {},\n      playerId: null\n    },\n    vidyard: {\n      options: {}\n    }\n  },\n  onReady: noop,\n  onStart: noop,\n  onPlay: noop,\n  onPause: noop,\n  onBuffer: noop,\n  onBufferEnd: noop,\n  onEnded: noop,\n  onError: noop,\n  onDuration: noop,\n  onSeek: noop,\n  onPlaybackRateChange: noop,\n  onProgress: noop,\n  onClickPreview: noop,\n  onEnablePIP: noop,\n  onDisablePIP: noop\n};\nexports.defaultProps = defaultProps;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.parseStartTime = parseStartTime;\nexports.parseEndTime = parseEndTime;\nexports.randomString = randomString;\nexports.queryString = queryString;\nexports.getSDK = getSDK;\nexports.getConfig = getConfig;\nexports.omit = omit;\nexports.callPlayer = callPlayer;\nexports.isMediaStream = isMediaStream;\nexports.isBlobUrl = isBlobUrl;\nexports.supportsWebKitPresentationMode = supportsWebKitPresentationMode;\n\nvar _loadScript = _interopRequireDefault(require(\"load-script\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nvar MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nvar MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nvar MATCH_NUMERIC = /^\\d+$/; // Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\n\nfunction parseTimeParam(url, pattern) {\n  if (url instanceof Array) {\n    return undefined;\n  }\n\n  var match = url.match(pattern);\n\n  if (match) {\n    var stamp = match[1];\n\n    if (stamp.match(MATCH_START_STAMP)) {\n      return parseTimeString(stamp);\n    }\n\n    if (MATCH_NUMERIC.test(stamp)) {\n      return parseInt(stamp);\n    }\n  }\n\n  return undefined;\n}\n\nfunction parseTimeString(stamp) {\n  var seconds = 0;\n  var array = MATCH_START_STAMP.exec(stamp);\n\n  while (array !== null) {\n    var _array = array,\n        _array2 = _slicedToArray(_array, 3),\n        count = _array2[1],\n        period = _array2[2];\n\n    if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;\n    if (period === 'm') seconds += parseInt(count, 10) * 60;\n    if (period === 's') seconds += parseInt(count, 10);\n    array = MATCH_START_STAMP.exec(stamp);\n  }\n\n  return seconds;\n}\n\nfunction parseStartTime(url) {\n  return parseTimeParam(url, MATCH_START_QUERY);\n}\n\nfunction parseEndTime(url) {\n  return parseTimeParam(url, MATCH_END_QUERY);\n} // http://stackoverflow.com/a/38622545\n\n\nfunction randomString() {\n  return Math.random().toString(36).substr(2, 5);\n}\n\nfunction queryString(object) {\n  return Object.keys(object).map(function (key) {\n    return \"\".concat(key, \"=\").concat(object[key]);\n  }).join('&');\n}\n\nfunction getGlobal(key) {\n  if (window[key]) {\n    return window[key];\n  }\n\n  if (window.exports && window.exports[key]) {\n    return window.exports[key];\n  }\n\n  if (window.module && window.module.exports && window.module.exports[key]) {\n    return window.module.exports[key];\n  }\n\n  return null;\n} // Util function to load an external SDK\n// or return the SDK if it is already loaded\n\n\nvar requests = {};\n\nfunction getSDK(url, sdkGlobal) {\n  var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n    return true;\n  };\n  var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript[\"default\"];\n  var existingGlobal = getGlobal(sdkGlobal);\n\n  if (existingGlobal && isLoaded(existingGlobal)) {\n    return Promise.resolve(existingGlobal);\n  }\n\n  return new Promise(function (resolve, reject) {\n    // If we are already loading the SDK, add the resolve and reject\n    // functions to the existing array of requests\n    if (requests[url]) {\n      requests[url].push({\n        resolve: resolve,\n        reject: reject\n      });\n      return;\n    }\n\n    requests[url] = [{\n      resolve: resolve,\n      reject: reject\n    }];\n\n    var onLoaded = function onLoaded(sdk) {\n      // When loaded, resolve all pending request promises\n      requests[url].forEach(function (request) {\n        return request.resolve(sdk);\n      });\n    };\n\n    if (sdkReady) {\n      var previousOnReady = window[sdkReady];\n\n      window[sdkReady] = function () {\n        if (previousOnReady) previousOnReady();\n        onLoaded(getGlobal(sdkGlobal));\n      };\n    }\n\n    fetchScript(url, function (err) {\n      if (err) {\n        // Loading the SDK failed – reject all requests and\n        // reset the array of requests for this SDK\n        requests[url].forEach(function (request) {\n          return request.reject(err);\n        });\n        requests[url] = null;\n      } else if (!sdkReady) {\n        onLoaded(getGlobal(sdkGlobal));\n      }\n    });\n  });\n}\n\nfunction getConfig(props, defaultProps) {\n  return (0, _deepmerge[\"default\"])(defaultProps.config, props.config);\n}\n\nfunction omit(object) {\n  var _ref;\n\n  for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    arrays[_key - 1] = arguments[_key];\n  }\n\n  var omitKeys = (_ref = []).concat.apply(_ref, arrays);\n\n  var output = {};\n  var keys = Object.keys(object);\n\n  for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {\n    var key = _keys[_i2];\n\n    if (omitKeys.indexOf(key) === -1) {\n      output[key] = object[key];\n    }\n  }\n\n  return output;\n}\n\nfunction callPlayer(method) {\n  var _this$player;\n\n  // Util method for calling a method on this.player\n  // but guard against errors and console.warn instead\n  if (!this.player || !this.player[method]) {\n    var message = \"ReactPlayer: \".concat(this.constructor.displayName, \" player could not call %c\").concat(method, \"%c \\u2013 \");\n\n    if (!this.player) {\n      message += 'The player was not available';\n    } else if (!this.player[method]) {\n      message += 'The method was not available';\n    }\n\n    console.warn(message, 'font-weight: bold', '');\n    return null;\n  }\n\n  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    args[_key2 - 1] = arguments[_key2];\n  }\n\n  return (_this$player = this.player)[method].apply(_this$player, args);\n}\n\nfunction isMediaStream(url) {\n  return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;\n}\n\nfunction isBlobUrl(url) {\n  return /^blob:/.test(url);\n}\n\nfunction supportsWebKitPresentationMode() {\n  var video = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.createElement('video');\n  // Check if Safari supports PiP, and is not on mobile (other than iPad)\n  // iPhone safari appears to \"support\" PiP through the check, however PiP does not function\n  var notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n  return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === 'function' && notMobile;\n}","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = GeneratorFunctionPrototype;\n  define(Gp, \"constructor\", GeneratorFunctionPrototype);\n  define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  });\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  define(Gp, iteratorSymbol, function() {\n    return this;\n  });\n\n  define(Gp, \"toString\", function() {\n    return \"[object Generator]\";\n  });\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, in modern engines\n  // we can explicitly access globalThis. In older engines we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n  return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n  var cursor = nodes.length\n    , sorted = new Array(cursor)\n    , visited = {}\n    , i = cursor\n    // Better data structures make algorithm much faster.\n    , outgoingEdges = makeOutgoingEdges(edges)\n    , nodesHash = makeNodesHash(nodes)\n\n  // check for unknown nodes\n  edges.forEach(function(edge) {\n    if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n      throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n    }\n  })\n\n  while (i--) {\n    if (!visited[i]) visit(nodes[i], i, new Set())\n  }\n\n  return sorted\n\n  function visit(node, i, predecessors) {\n    if(predecessors.has(node)) {\n      var nodeRep\n      try {\n        nodeRep = \", node was:\" + JSON.stringify(node)\n      } catch(e) {\n        nodeRep = \"\"\n      }\n      throw new Error('Cyclic dependency' + nodeRep)\n    }\n\n    if (!nodesHash.has(node)) {\n      throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n    }\n\n    if (visited[i]) return;\n    visited[i] = true\n\n    var outgoing = outgoingEdges.get(node) || new Set()\n    outgoing = Array.from(outgoing)\n\n    if (i = outgoing.length) {\n      predecessors.add(node)\n      do {\n        var child = outgoing[--i]\n        visit(child, nodesHash.get(child), predecessors)\n      } while (i)\n      predecessors.delete(node)\n    }\n\n    sorted[--cursor] = node\n  }\n}\n\nfunction uniqueNodes(arr){\n  var res = new Set()\n  for (var i = 0, len = arr.length; i < len; i++) {\n    var edge = arr[i]\n    res.add(edge[0])\n    res.add(edge[1])\n  }\n  return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n  var edges = new Map()\n  for (var i = 0, len = arr.length; i < len; i++) {\n    var edge = arr[i]\n    if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n    if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n    edges.get(edge[0]).add(edge[1])\n  }\n  return edges\n}\n\nfunction makeNodesHash(arr){\n  var res = new Map()\n  for (var i = 0, len = arr.length; i < len; i++) {\n    res.set(arr[i], i)\n  }\n  return res\n}\n","(function(root){\n\n  // Let's borrow a couple of things from Underscore that we'll need\n\n  // _.each\n  var breaker = {},\n      AP = Array.prototype,\n      OP = Object.prototype,\n\n      hasOwn = OP.hasOwnProperty,\n      toString = OP.toString,\n      forEach = AP.forEach,\n      indexOf = AP.indexOf,\n      slice = AP.slice;\n\n  var _each = function( obj, iterator, context ) {\n    var key, i, l;\n\n    if ( !obj ) {\n      return;\n    }\n    if ( forEach && obj.forEach === forEach ) {\n      obj.forEach( iterator, context );\n    } else if ( obj.length === +obj.length ) {\n      for ( i = 0, l = obj.length; i < l; i++ ) {\n        if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {\n          return;\n        }\n      }\n    } else {\n      for ( key in obj ) {\n        if ( hasOwn.call( obj, key ) ) {\n          if ( iterator.call( context, obj[key], key, obj) === breaker ) {\n            return;\n          }\n        }\n      }\n    }\n  };\n\n  // _.isFunction\n  var _isFunction = function( obj ) {\n    return !!(obj && obj.constructor && obj.call && obj.apply);\n  };\n\n  // _.extend\n  var _extend = function( obj ) {\n\n    _each( slice.call( arguments, 1), function( source ) {\n      var prop;\n\n      for ( prop in source ) {\n        if ( source[prop] !== void 0 ) {\n          obj[ prop ] = source[ prop ];\n        }\n      }\n    });\n    return obj;\n  };\n\n  // $.inArray\n  var _inArray = function( elem, arr, i ) {\n    var len;\n\n    if ( arr ) {\n      if ( indexOf ) {\n        return indexOf.call( arr, elem, i );\n      }\n\n      len = arr.length;\n      i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n      for ( ; i < len; i++ ) {\n        // Skip accessing in sparse arrays\n        if ( i in arr && arr[ i ] === elem ) {\n          return i;\n        }\n      }\n    }\n\n    return -1;\n  };\n\n  // And some jQuery specific helpers\n\n  var class2type = {};\n\n  // Populate the class2type map\n  _each(\"Boolean Number String Function Array Date RegExp Object\".split(\" \"), function(name, i) {\n    class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n  });\n\n  var _type = function( obj ) {\n    return obj == null ?\n      String( obj ) :\n      class2type[ toString.call(obj) ] || \"object\";\n  };\n\n  // Now start the jQuery-cum-Underscore implementation. Some very\n  // minor changes to the jQuery source to get this working.\n\n  // Internal Deferred namespace\n  var _d = {};\n  // String to Object options format cache\n  var optionsCache = {};\n\n  // Convert String-formatted options into Object-formatted ones and store in cache\n  function createOptions( options ) {\n    var object = optionsCache[ options ] = {};\n    _each( options.split( /\\s+/ ), function( flag ) {\n      object[ flag ] = true;\n    });\n    return object;\n  }\n\n  _d.Callbacks = function( options ) {\n\n    // Convert options from String-formatted to Object-formatted if needed\n    // (we check in cache first)\n    options = typeof options === \"string\" ?\n      ( optionsCache[ options ] || createOptions( options ) ) :\n      _extend( {}, options );\n\n    var // Last fire value (for non-forgettable lists)\n      memory,\n      // Flag to know if list was already fired\n      fired,\n      // Flag to know if list is currently firing\n      firing,\n      // First callback to fire (used internally by add and fireWith)\n      firingStart,\n      // End of the loop when firing\n      firingLength,\n      // Index of currently firing callback (modified by remove if needed)\n      firingIndex,\n      // Actual callback list\n      list = [],\n      // Stack of fire calls for repeatable lists\n      stack = !options.once && [],\n      // Fire callbacks\n      fire = function( data ) {\n        memory = options.memory && data;\n        fired = true;\n        firingIndex = firingStart || 0;\n        firingStart = 0;\n        firingLength = list.length;\n        firing = true;\n        for ( ; list && firingIndex < firingLength; firingIndex++ ) {\n          if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n            memory = false; // To prevent further calls using add\n            break;\n          }\n        }\n        firing = false;\n        if ( list ) {\n          if ( stack ) {\n            if ( stack.length ) {\n              fire( stack.shift() );\n            }\n          } else if ( memory ) {\n            list = [];\n          } else {\n            self.disable();\n          }\n        }\n      },\n      // Actual Callbacks object\n      self = {\n        // Add a callback or a collection of callbacks to the list\n        add: function() {\n          if ( list ) {\n            // First, we save the current length\n            var start = list.length;\n            (function add( args ) {\n              _each( args, function( arg ) {\n                var type = _type( arg );\n                if ( type === \"function\" ) {\n                  if ( !options.unique || !self.has( arg ) ) {\n                    list.push( arg );\n                  }\n                } else if ( arg && arg.length && type !== \"string\" ) {\n                  // Inspect recursively\n                  add( arg );\n                }\n              });\n            })( arguments );\n            // Do we need to add the callbacks to the\n            // current firing batch?\n            if ( firing ) {\n              firingLength = list.length;\n            // With memory, if we're not firing then\n            // we should call right away\n            } else if ( memory ) {\n              firingStart = start;\n              fire( memory );\n            }\n          }\n          return this;\n        },\n        // Remove a callback from the list\n        remove: function() {\n          if ( list ) {\n            _each( arguments, function( arg ) {\n              var index;\n              while( ( index = _inArray( arg, list, index ) ) > -1 ) {\n                list.splice( index, 1 );\n                // Handle firing indexes\n                if ( firing ) {\n                  if ( index <= firingLength ) {\n                    firingLength--;\n                  }\n                  if ( index <= firingIndex ) {\n                    firingIndex--;\n                  }\n                }\n              }\n            });\n          }\n          return this;\n        },\n        // Control if a given callback is in the list\n        has: function( fn ) {\n          return _inArray( fn, list ) > -1;\n        },\n        // Remove all callbacks from the list\n        empty: function() {\n          list = [];\n          return this;\n        },\n        // Have the list do nothing anymore\n        disable: function() {\n          list = stack = memory = undefined;\n          return this;\n        },\n        // Is it disabled?\n        disabled: function() {\n          return !list;\n        },\n        // Lock the list in its current state\n        lock: function() {\n          stack = undefined;\n          if ( !memory ) {\n            self.disable();\n          }\n          return this;\n        },\n        // Is it locked?\n        locked: function() {\n          return !stack;\n        },\n        // Call all callbacks with the given context and arguments\n        fireWith: function( context, args ) {\n          args = args || [];\n          args = [ context, args.slice ? args.slice() : args ];\n          if ( list && ( !fired || stack ) ) {\n            if ( firing ) {\n              stack.push( args );\n            } else {\n              fire( args );\n            }\n          }\n          return this;\n        },\n        // Call all the callbacks with the given arguments\n        fire: function() {\n          self.fireWith( this, arguments );\n          return this;\n        },\n        // To know if the callbacks have already been called at least once\n        fired: function() {\n          return !!fired;\n        }\n      };\n\n    return self;\n  };\n\n  _d.Deferred = function( func ) {\n\n    var tuples = [\n        // action, add listener, listener list, final state\n        [ \"resolve\", \"done\", _d.Callbacks(\"once memory\"), \"resolved\" ],\n        [ \"reject\", \"fail\", _d.Callbacks(\"once memory\"), \"rejected\" ],\n        [ \"notify\", \"progress\", _d.Callbacks(\"memory\") ]\n      ],\n      state = \"pending\",\n      promise = {\n        state: function() {\n          return state;\n        },\n        always: function() {\n          deferred.done( arguments ).fail( arguments );\n          return this;\n        },\n        then: function( /* fnDone, fnFail, fnProgress */ ) {\n          var fns = arguments;\n\n          return _d.Deferred(function( newDefer ) {\n\n            _each( tuples, function( tuple, i ) {\n              var action = tuple[ 0 ],\n                fn = fns[ i ];\n\n              // deferred[ done | fail | progress ] for forwarding actions to newDefer\n              deferred[ tuple[1] ]( _isFunction( fn ) ?\n\n                function() {\n                  var returned;\n                  try { returned = fn.apply( this, arguments ); } catch(e){\n                    newDefer.reject(e);\n                    return;\n                  }\n\n                  if ( returned && _isFunction( returned.promise ) ) {\n                    returned.promise()\n                      .done( newDefer.resolve )\n                      .fail( newDefer.reject )\n                      .progress( newDefer.notify );\n                  } else {\n                    newDefer[ action !== \"notify\" ? 'resolveWith' : action + 'With']( this === deferred ? newDefer : this, [ returned ] );\n                  }\n                } :\n\n                newDefer[ action ]\n              );\n            });\n\n            fns = null;\n\n          }).promise();\n\n        },\n        // Get a promise for this deferred\n        // If obj is provided, the promise aspect is added to the object\n        promise: function( obj ) {\n          return obj != null ? _extend( obj, promise ) : promise;\n        }\n      },\n      deferred = {};\n\n    // Keep pipe for back-compat\n    promise.pipe = promise.then;\n\n    // Add list-specific methods\n    _each( tuples, function( tuple, i ) {\n      var list = tuple[ 2 ],\n        stateString = tuple[ 3 ];\n\n      // promise[ done | fail | progress ] = list.add\n      promise[ tuple[1] ] = list.add;\n\n      // Handle state\n      if ( stateString ) {\n        list.add(function() {\n          // state = [ resolved | rejected ]\n          state = stateString;\n\n        // [ reject_list | resolve_list ].disable; progress_list.lock\n        }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n      }\n\n      // deferred[ resolve | reject | notify ] = list.fire\n      deferred[ tuple[0] ] = list.fire;\n      deferred[ tuple[0] + \"With\" ] = list.fireWith;\n    });\n\n    // Make the deferred a promise\n    promise.promise( deferred );\n\n    // Call given func if any\n    if ( func ) {\n      func.call( deferred, deferred );\n    }\n\n    // All done!\n    return deferred;\n  };\n\n  // Deferred helper\n  _d.when = function( subordinate /* , ..., subordinateN */ ) {\n    var i = 0,\n      resolveValues = _type(subordinate) === 'array' && arguments.length === 1 ?\n        subordinate : slice.call( arguments ),\n      length = resolveValues.length,\n\n      // the count of uncompleted subordinates\n      remaining = length !== 1 || ( subordinate && _isFunction( subordinate.promise ) ) ? length : 0,\n\n      // the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n      deferred = remaining === 1 ? subordinate : _d.Deferred(),\n\n      // Update function for both resolve and progress values\n      updateFunc = function( i, contexts, values ) {\n        return function( value ) {\n          contexts[ i ] = this;\n          values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n          if( values === progressValues ) {\n            deferred.notifyWith( contexts, values );\n          } else if ( !( --remaining ) ) {\n            deferred.resolveWith( contexts, values );\n          }\n        };\n      },\n\n      progressValues, progressContexts, resolveContexts;\n\n    // add listeners to Deferred subordinates; treat others as resolved\n    if ( length > 1 ) {\n      progressValues = new Array( length );\n      progressContexts = new Array( length );\n      resolveContexts = new Array( length );\n      for ( ; i < length; i++ ) {\n        if ( resolveValues[ i ] && _isFunction( resolveValues[ i ].promise ) ) {\n          resolveValues[ i ].promise()\n            .done( updateFunc( i, resolveContexts, resolveValues ) )\n            .fail( deferred.reject )\n            .progress( updateFunc( i, progressContexts, progressValues ) );\n        } else {\n          --remaining;\n        }\n      }\n    }\n\n    // if we're not waiting on anything, resolve the master\n    if ( !remaining ) {\n      deferred.resolveWith( resolveContexts, resolveValues );\n    }\n\n    return deferred.promise();\n  };\n\n  // Try exporting as a Common.js Module\n  if ( typeof module !== \"undefined\" && module.exports ) {\n    module.exports = _d;\n\n  // Or mixin to Underscore.js\n  } else if ( typeof root._ !== \"undefined\" ) {\n    root._.mixin(_d);\n\n  // Or assign it to window._\n  } else {\n    root._ = _d;\n  }\n\n})(this);\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n  var printWarning = function printWarning(format, args) {\n    var len = arguments.length;\n    args = new Array(len > 1 ? len - 1 : 0);\n    for (var key = 1; key < len; key++) {\n      args[key - 1] = arguments[key];\n    }\n    var argIndex = 0;\n    var message = 'Warning: ' +\n      format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  }\n\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n          '`warning(condition, format, ...args)` requires a warning ' +\n          'message argument'\n      );\n    }\n    if (!condition) {\n      printWarning.apply(null, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.defaultFontFamily = exports.defaultFontSize = exports.InverseRangeColor = exports.RangeColor = void 0;\r\nexports.RangeColor = {\r\n    active: \"#fff\",\r\n    normal: \"#007b5f\",\r\n    borderline: \"#ecaa00\",\r\n    out: \"#ef3340\",\r\n    annotation: \"#592b8a\",\r\n    lightBackground: \"#eef7fd\",\r\n    line: \"#326295\",\r\n    lifeAgeWeightHeight: \"#dee2e6\"\r\n};\r\nexports.InverseRangeColor = {\r\n    normal: \"#fff\",\r\n    borderline: \"#fff\",\r\n    out: \"#fff\",\r\n    lifeAgeWeightHeight: \"#326295\"\r\n};\r\nexports.defaultFontSize = \"12\";\r\nexports.defaultFontFamily = 'system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RangeChart = exports.getDownloadTranslations = exports.getAnnotations = exports.getOptions = exports.resultRange = exports.rangeColor = exports.mapSeries = void 0;\r\nvar react_1 = __importStar(require(\"react\"));\r\nvar react_apexcharts_1 = __importDefault(require(\"react-apexcharts\"));\r\nvar ChartStyles_1 = require(\"./ChartStyles\");\r\nvar downloadTranslations = [\"result\", \"laboratoryReport\", \"labSlipId\", \"sid\", \"name\", \"gender\", \"collected\", \"reportedDate\"];\r\nfunction adjustSeries(range, decimals) {\r\n    if (decimals === undefined) {\r\n        return range;\r\n    }\r\n    var _a = __spreadArray([], range, true), bottom = _a[0], top = _a[1];\r\n    var ajustedTop = +(top - Math.pow(10, (-decimals))).toFixed(decimals);\r\n    if (ajustedTop <= bottom) {\r\n        ajustedTop = top;\r\n    }\r\n    return [bottom, ajustedTop];\r\n}\r\nfunction mapSeries(range, translation, lifeAgeWeightHeight) {\r\n    var series = [];\r\n    if (!range) {\r\n        return series;\r\n    }\r\n    var top = range.scaleMax;\r\n    if (lifeAgeWeightHeight) {\r\n        series.push({ name: \" \", color: ChartStyles_1.RangeColor.lifeAgeWeightHeight, labelColor: ChartStyles_1.InverseRangeColor.lifeAgeWeightHeight, data: [{ x: \" \", y: [range.scaleMin, top] }], fixedRange: [] });\r\n        return series;\r\n    }\r\n    if (range.high !== undefined) {\r\n        series.push({ name: \"high\", color: ChartStyles_1.RangeColor.out, labelColor: ChartStyles_1.RangeColor.active, data: [{ x: \" \", y: [range.high, top] }], fixedRange: [] });\r\n        top = range.high;\r\n    }\r\n    if (range.borderlineHigh !== undefined) {\r\n        series.push({ name: \"borderlineHigh\", color: ChartStyles_1.RangeColor.borderline, labelColor: ChartStyles_1.RangeColor.active, data: [{ x: \" \", y: [range.borderlineHigh, top] }], fixedRange: [] });\r\n        top = range.borderlineHigh;\r\n    }\r\n    if (range.normal !== undefined) {\r\n        series.push({ name: \"normal\", color: ChartStyles_1.RangeColor.normal, labelColor: ChartStyles_1.RangeColor.active, data: [{ x: \" \", y: [range.normal, top] }], fixedRange: [] });\r\n        top = range.normal;\r\n    }\r\n    if (range.borderlineLow !== undefined) {\r\n        series.push({ name: \"borderlineLow\", color: ChartStyles_1.RangeColor.borderline, labelColor: ChartStyles_1.RangeColor.active, data: [{ x: \" \", y: [range.borderlineLow, top] }], fixedRange: [] });\r\n        top = range.borderlineLow;\r\n    }\r\n    if (range.low !== undefined) {\r\n        series.push({ name: \"low\", color: ChartStyles_1.RangeColor.out, labelColor: ChartStyles_1.RangeColor.active, data: [{ x: \" \", y: [range.low, top] }], fixedRange: [] });\r\n    }\r\n    for (var i = 0; i < series.length; i++) {\r\n        series[i].name = translation(\"results.\".concat(series[i].name)).toUpperCase();\r\n        var current = series[i].data[0].y;\r\n        series[i].fixedRange = i === 0 ? current : adjustSeries(current, range.decimals);\r\n    }\r\n    return series;\r\n}\r\nexports.mapSeries = mapSeries;\r\nfunction rangeColor(series, result, outOfRangeColor) {\r\n    if (outOfRangeColor === void 0) { outOfRangeColor = ChartStyles_1.RangeColor.active; }\r\n    var range = resultRange(series, result);\r\n    return [(range === null || range === void 0 ? void 0 : range.color) || outOfRangeColor, (range === null || range === void 0 ? void 0 : range.labelColor) || ChartStyles_1.RangeColor.active];\r\n}\r\nexports.rangeColor = rangeColor;\r\nfunction resultRange(series, result) {\r\n    var range = series.find(function (s) { return s.data[0].y[0] === result && result === s.data[0].y[1]; });\r\n    if (!range) {\r\n        range = series.find(function (s) { return s.data[0].y[0] <= result && result < s.data[0].y[1]; });\r\n    }\r\n    if (!range && series.length) {\r\n        var lastSeria = series[0];\r\n        if (lastSeria.data[0].y[0] <= result && result <= lastSeria.data[0].y[1]) {\r\n            range = lastSeria;\r\n        }\r\n    }\r\n    return range;\r\n}\r\nexports.resultRange = resultRange;\r\nfunction getOptions(series, range, lifeAgeWeightHeight, annotations) {\r\n    return {\r\n        chart: {\r\n            type: \"rangeBar\",\r\n            id: range === null || range === void 0 ? void 0 : range.testCode,\r\n            toolbar: {\r\n                show: false\r\n            },\r\n            selection: {\r\n                enabled: false\r\n            },\r\n            zoom: {\r\n                enabled: false\r\n            },\r\n            fontFamily: ChartStyles_1.defaultFontFamily\r\n        },\r\n        plotOptions: {\r\n            bar: {\r\n                horizontal: true,\r\n                rangeBarGroupRows: true\r\n            }\r\n        },\r\n        grid: {\r\n            padding: { left: -4 },\r\n            yaxis: {\r\n                lines: {\r\n                    show: false\r\n                },\r\n            }\r\n        },\r\n        xaxis: {\r\n            min: range === null || range === void 0 ? void 0 : range.scaleMin,\r\n            max: range === null || range === void 0 ? void 0 : range.scaleMax,\r\n            tickAmount: 5,\r\n            labels: {\r\n                trim: true,\r\n                formatter: function (value) {\r\n                    return isNumber(value) ? (+(+value).toFixed(2)).toString() : value;\r\n                }\r\n            }\r\n        },\r\n        legend: {\r\n            show: false\r\n        },\r\n        stroke: {\r\n            width: 2,\r\n            colors: [ChartStyles_1.RangeColor.active]\r\n        },\r\n        states: {\r\n            hover: {\r\n                filter: {\r\n                    type: \"none\"\r\n                }\r\n            },\r\n            active: {\r\n                filter: {\r\n                    type: \"none\"\r\n                }\r\n            },\r\n        },\r\n        fill: {\r\n            opacity: 1\r\n        },\r\n        colors: [function (_a) {\r\n                var seriesIndex = _a.seriesIndex, w = _a.w;\r\n                return w.globals.initialSeries[seriesIndex].color;\r\n            }],\r\n        dataLabels: {\r\n            enabled: true,\r\n            formatter: function (_val, opts) {\r\n                return opts.w.globals.initialSeries[opts.seriesIndex].name;\r\n            },\r\n            style: {\r\n                colors: series.map(function (s) { return s.labelColor; }),\r\n                fontWeight: \"bold\",\r\n                fontFamily: ChartStyles_1.defaultFontFamily\r\n            }\r\n        },\r\n        tooltip: {\r\n            enabled: !lifeAgeWeightHeight,\r\n            custom: function (_a) {\r\n                var seriesIndex = _a.seriesIndex, w = _a.w;\r\n                var name = w.globals.initialSeries[seriesIndex].name;\r\n                var from = w.globals.initialSeries[seriesIndex].fixedRange[0];\r\n                var to = w.globals.initialSeries[seriesIndex].fixedRange[1];\r\n                return \"<div class=\\\"apexcharts-tooltip-rangebar\\\"><div> <span class=\\\"series-name\\\">\".concat(name, \"</span></div><div> <span class=\\\"category\\\"> </span> <span class=\\\"value start-value\\\">\").concat(from, \"</span> <span class=\\\"separator\\\">-</span> <span class=\\\"value end-value\\\">\").concat(to, \"</span></div></div>\");\r\n            }\r\n        },\r\n        annotations: {\r\n            xaxis: annotations\r\n        }\r\n    };\r\n}\r\nexports.getOptions = getOptions;\r\nfunction getAnnotations(series, range, numericResult, lifeAge) {\r\n    var annotationValue = lifeAge ? (numericResult && resultRange(series, numericResult) ? numericResult : range === null || range === void 0 ? void 0 : range.scaleMin) : numericResult;\r\n    var annotations = [\r\n        {\r\n            x: annotationValue,\r\n            opacity: 100,\r\n            strokeDashArray: 0,\r\n            borderWidth: 3,\r\n            borderColor: ChartStyles_1.RangeColor.annotation,\r\n            offsetY: 0,\r\n            label: {\r\n                borderWidth: 0,\r\n                offsetY: -12,\r\n                orientation: \"horizontal\",\r\n                style: {\r\n                    cssClass: \"apexcharts-xaxis-annotation-label-tooltip\",\r\n                    color: rangeColor(series, annotationValue || 0)[1],\r\n                    background: rangeColor(series, annotationValue || 0)[0],\r\n                    fontSize: ChartStyles_1.defaultFontSize,\r\n                    fontWeight: \"bold\",\r\n                    padding: {\r\n                        left: 8,\r\n                        right: 8,\r\n                        top: 4,\r\n                        bottom: 10\r\n                    }\r\n                },\r\n                text: annotationValue === null || annotationValue === void 0 ? void 0 : annotationValue.toString()\r\n            }\r\n        }\r\n    ];\r\n    return annotations;\r\n}\r\nexports.getAnnotations = getAnnotations;\r\nfunction getDownloadTranslations(translation) {\r\n    return downloadTranslations.map(function (key) { return ({ key: \"results.\".concat(key), value: translation(\"results.\".concat(key)) }); });\r\n}\r\nexports.getDownloadTranslations = getDownloadTranslations;\r\nvar isNumber = function (val) { return typeof val === \"number\" && !isNaN(val); };\r\nfunction RangeChart(props) {\r\n    var _a = (0, react_1.useState)([]), series = _a[0], setSeries = _a[1];\r\n    var _b = (0, react_1.useState)(undefined), options = _b[0], setOptions = _b[1];\r\n    var _c = (0, react_1.useState)(false), annotationTooltip = _c[0], setAnnotationTooltip = _c[1];\r\n    var _d = (0, react_1.useState)(undefined), annotationTooltipEvent = _d[0], setAnnotationTooltipEvent = _d[1];\r\n    (0, react_1.useEffect)(function () {\r\n        var onScroll = function (event) {\r\n            setAnnotationTooltip(false);\r\n        };\r\n        window.addEventListener(\"scroll\", onScroll);\r\n        return function () { return window.removeEventListener(\"scroll\", onScroll); };\r\n    }, []);\r\n    (0, react_1.useEffect)(function () {\r\n        var _a;\r\n        if (!props.range) {\r\n            return;\r\n        }\r\n        var series = mapSeries(props.range, props.translation, props.lifeAgeWeightHeight);\r\n        setSeries(series);\r\n        var annotations = getAnnotations(series, props.range, props.numericResult, props.lifeAge);\r\n        annotations[0].label.mouseEnter = function (_, e) {\r\n            var rect = e.target.getBoundingClientRect();\r\n            if (e.clientX >= rect.left && e.clientX <= rect.right && e.clientY >= rect.top && e.clientY <= rect.bottom) {\r\n                setAnnotationTooltipEvent(e);\r\n                setAnnotationTooltip(true);\r\n            }\r\n        };\r\n        annotations[0].label.mouseLeave = function (_, e) {\r\n            var rect = e.target.getBoundingClientRect();\r\n            if (e.clientX >= rect.left && e.clientX <= rect.right && e.clientY >= rect.top && e.clientY <= rect.bottom - 7) {\r\n                setAnnotationTooltipEvent(e);\r\n                setAnnotationTooltip(true);\r\n            }\r\n            else {\r\n                setAnnotationTooltip(false);\r\n            }\r\n        };\r\n        if (props.secondResult !== undefined && props.secondResult !== props.numericResult) {\r\n            annotations.push({\r\n                x: props.secondResult,\r\n                opacity: 100,\r\n                strokeDashArray: 0,\r\n                borderWidth: 3,\r\n                borderColor: ChartStyles_1.RangeColor.annotation,\r\n                offsetY: 0,\r\n                label: {\r\n                    borderWidth: 0,\r\n                    offsetY: -12,\r\n                    orientation: \"horizontal\",\r\n                    style: {\r\n                        color: ChartStyles_1.RangeColor.active,\r\n                        background: ChartStyles_1.RangeColor.annotation,\r\n                        fontSize: ChartStyles_1.defaultFontSize,\r\n                        fontWeight: \"bold\",\r\n                        padding: {\r\n                            left: 8,\r\n                            right: 8,\r\n                            top: 4,\r\n                            bottom: 10\r\n                        }\r\n                    },\r\n                    text: (_a = props.secondResult) === null || _a === void 0 ? void 0 : _a.toString()\r\n                }\r\n            });\r\n        }\r\n        setOptions(getOptions(series, props.range, props.lifeAgeWeightHeight, annotations));\r\n    }, [props.range, props.numericResult, props.lifeAge, props.lifeAgeWeightHeight, props.secondResult, props.translation]);\r\n    return (react_1.default.createElement(react_1.default.Fragment, null,\r\n        options && react_1.default.createElement(react_apexcharts_1.default, { series: series, options: options, height: 132, width: \"100%\", type: \"rangeBar\" }),\r\n        annotationTooltip && react_1.default.createElement(\"div\", { className: \"apexcharts-tooltip apexcharts-theme-light custom-chart-annotation-tooltip\", style: { left: annotationTooltipEvent === null || annotationTooltipEvent === void 0 ? void 0 : annotationTooltipEvent.clientX, top: annotationTooltipEvent === null || annotationTooltipEvent === void 0 ? void 0 : annotationTooltipEvent.clientY } },\r\n            react_1.default.createElement(\"div\", { className: \"apexcharts-tooltip-rangebar\" },\r\n                react_1.default.createElement(\"div\", null,\r\n                    react_1.default.createElement(\"span\", { className: \"category\" }, props.translation(\"results.yourResult\")))))));\r\n}\r\nexports.RangeChart = RangeChart;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.defaultFontFamily = exports.defaultFontSize = exports.InverseRangeColor = exports.RangeColor = exports.getDownloadTranslations = exports.getAnnotations = exports.getOptions = exports.resultRange = exports.rangeColor = exports.mapSeries = exports.RangeChart = void 0;\r\nvar RangeChart_1 = require(\"./RangeChart\");\r\nObject.defineProperty(exports, \"RangeChart\", { enumerable: true, get: function () { return RangeChart_1.RangeChart; } });\r\nObject.defineProperty(exports, \"mapSeries\", { enumerable: true, get: function () { return RangeChart_1.mapSeries; } });\r\nObject.defineProperty(exports, \"rangeColor\", { enumerable: true, get: function () { return RangeChart_1.rangeColor; } });\r\nObject.defineProperty(exports, \"resultRange\", { enumerable: true, get: function () { return RangeChart_1.resultRange; } });\r\nObject.defineProperty(exports, \"getOptions\", { enumerable: true, get: function () { return RangeChart_1.getOptions; } });\r\nObject.defineProperty(exports, \"getAnnotations\", { enumerable: true, get: function () { return RangeChart_1.getAnnotations; } });\r\nObject.defineProperty(exports, \"getDownloadTranslations\", { enumerable: true, get: function () { return RangeChart_1.getDownloadTranslations; } });\r\nvar ChartStyles_1 = require(\"./ChartStyles\");\r\nObject.defineProperty(exports, \"RangeColor\", { enumerable: true, get: function () { return ChartStyles_1.RangeColor; } });\r\nObject.defineProperty(exports, \"InverseRangeColor\", { enumerable: true, get: function () { return ChartStyles_1.InverseRangeColor; } });\r\nObject.defineProperty(exports, \"defaultFontSize\", { enumerable: true, get: function () { return ChartStyles_1.defaultFontSize; } });\r\nObject.defineProperty(exports, \"defaultFontFamily\", { enumerable: true, get: function () { return ChartStyles_1.defaultFontFamily; } });\r\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","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"b502a12c\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"accessmyhealth:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\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\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(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(function(id) { return 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\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkaccessmyhealth\"] = self[\"webpackChunkaccessmyhealth\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n  if (from === undefined) from = '';\n\n  var toParts = (to && to.split('/')) || [];\n  var fromParts = (from && from.split('/')) || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n  if (\n    mustEndAbs &&\n    fromParts[0] !== '' &&\n    (!fromParts[0] || !isAbsolute(fromParts[0]))\n  )\n    fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n  return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n  // Test for strict equality first.\n  if (a === b) return true;\n\n  // Otherwise, if either of them == null they are not equal.\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return (\n      Array.isArray(b) &&\n      a.length === b.length &&\n      a.every(function(item, index) {\n        return valueEqual(item, b[index]);\n      })\n    );\n  }\n\n  if (typeof a === 'object' || typeof b === 'object') {\n    var aValue = valueOf(a);\n    var bValue = valueOf(b);\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    return Object.keys(Object.assign({}, a, b)).every(function(key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n    if (condition) {\n        return;\n    }\n    if (isProduction) {\n        throw new Error(prefix);\n    }\n    var provided = typeof message === 'function' ? message() : message;\n    var value = provided ? prefix + \": \" + provided : prefix;\n    throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n  return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n  var hashIndex = pathname.indexOf('#');\n\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n}\nfunction createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n  var path = pathname || '/';\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n  return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n  var location;\n\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n}\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n  var prompt = null;\n\n  function setPrompt(nextPrompt) {\n    process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n    prompt = nextPrompt;\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  }\n\n  function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  }\n\n  var listeners = [];\n\n  function appendListener(fn) {\n    var isActive = true;\n\n    function listener() {\n      if (isActive) fn.apply(void 0, arguments);\n    }\n\n    listeners.push(listener);\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function notifyListeners() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(void 0, args);\n    });\n  }\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n  callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = window.navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n  return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n  var _props = props,\n      _props$forceRefresh = _props.forceRefresh,\n      forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n      _props$getUserConfirm = _props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = _props.keyLength,\n      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n    var path = pathname + search + hash;\n    process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path, state, key);\n  }\n\n  function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  }\n\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n    handlePop(getDOMLocation(event.state));\n  }\n\n  function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  }\n\n  var forceNextPop = false;\n\n  function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  }\n\n  function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  }\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key]; // Public interface\n\n  function createHref(location) {\n    return basename + createPath(location);\n  }\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.pushState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex + 1);\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n        window.location.href = href;\n      }\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.replaceState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n        window.location.replace(href);\n      }\n    });\n  }\n\n  function go(n) {\n    globalHistory.go(n);\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  var listenerCount = 0;\n\n  function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1 && delta === 1) {\n      window.addEventListener(PopStateEvent, handlePopState);\n      if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      window.removeEventListener(PopStateEvent, handlePopState);\n      if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n    }\n  }\n\n  var isBlocked = false;\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  }\n\n  function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  }\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: stripLeadingSlash,\n    decodePath: addLeadingSlash\n  },\n  slash: {\n    encodePath: addLeadingSlash,\n    decodePath: addLeadingSlash\n  }\n};\n\nfunction stripHash(url) {\n  var hashIndex = url.indexOf('#');\n  return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n  window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n  var globalHistory = window.history;\n  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n  var _props = props,\n      _props$getUserConfirm = _props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n      _props$hashType = _props.hashType,\n      hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n  function getDOMLocation() {\n    var path = decodePath(getHashPath());\n    process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path);\n  }\n\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  function locationsAreEqual$$1(a, b) {\n    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n  }\n\n  function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n      if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n      handlePop(location);\n    }\n  }\n\n  function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  }\n\n  function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  } // Ensure the hash is encoded properly before doing anything else.\n\n\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n  var initialLocation = getDOMLocation();\n  var allPaths = [createPath(initialLocation)]; // Public interface\n\n  function createHref(location) {\n    var baseTag = document.querySelector('base');\n    var href = '';\n\n    if (baseTag && baseTag.getAttribute('href')) {\n      href = stripHash(window.location.href);\n    }\n\n    return href + '#' + encodePath(basename + createPath(location));\n  }\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, undefined, undefined, history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n        var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex + 1);\n        nextPaths.push(path);\n        allPaths = nextPaths;\n        setState({\n          action: action,\n          location: location\n        });\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n        setState();\n      }\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, undefined, undefined, history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(createPath(history.location));\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n      setState({\n        action: action,\n        location: location\n      });\n    });\n  }\n\n  function go(n) {\n    process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n    globalHistory.go(n);\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  var listenerCount = 0;\n\n  function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1 && delta === 1) {\n      window.addEventListener(HashChangeEvent$1, handleHashChange);\n    } else if (listenerCount === 0) {\n      window.removeEventListener(HashChangeEvent$1, handleHashChange);\n    }\n  }\n\n  var isBlocked = false;\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  }\n\n  function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  }\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  var _props = props,\n      getUserConfirmation = _props.getUserConfirmation,\n      _props$initialEntries = _props.initialEntries,\n      initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n      _props$initialIndex = _props.initialIndex,\n      initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n      _props$keyLength = _props.keyLength,\n      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n  var transitionManager = createTransitionManager();\n\n  function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  }\n\n  function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  }\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n  }); // Public interface\n\n  var createHref = createPath;\n\n  function push(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n      var nextEntries = history.entries.slice(0);\n\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  }\n\n  function replace(path, state) {\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      history.entries[history.index] = location;\n      setState({\n        action: action,\n        location: location\n      });\n    });\n  }\n\n  function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  }\n\n  function block(prompt) {\n    if (prompt === void 0) {\n      prompt = false;\n    }\n\n    return transitionManager.setPrompt(prompt);\n  }\n\n  function listen(listener) {\n    return transitionManager.appendListener(listener);\n  }\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n  return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n  var key = '__global_unique_id__';\n  return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n  if (x === y) {\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    return x !== x && y !== y;\n  }\n}\n\nfunction createEventEmitter(value) {\n  var handlers = [];\n  return {\n    on: function on(handler) {\n      handlers.push(handler);\n    },\n    off: function off(handler) {\n      handlers = handlers.filter(function (h) {\n        return h !== handler;\n      });\n    },\n    get: function get() {\n      return value;\n    },\n    set: function set(newValue, changedBits) {\n      value = newValue;\n      handlers.forEach(function (handler) {\n        return handler(value, changedBits);\n      });\n    }\n  };\n}\n\nfunction onlyChild(children) {\n  return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n  var _Provider$childContex, _Consumer$contextType;\n\n  var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n  var Provider = /*#__PURE__*/function (_Component) {\n    _inheritsLoose(Provider, _Component);\n\n    function Provider() {\n      var _this;\n\n      _this = _Component.apply(this, arguments) || this;\n      _this.emitter = createEventEmitter(_this.props.value);\n      return _this;\n    }\n\n    var _proto = Provider.prototype;\n\n    _proto.getChildContext = function getChildContext() {\n      var _ref;\n\n      return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n    };\n\n    _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n      if (this.props.value !== nextProps.value) {\n        var oldValue = this.props.value;\n        var newValue = nextProps.value;\n        var changedBits;\n\n        if (objectIs(oldValue, newValue)) {\n          changedBits = 0;\n        } else {\n          changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n          if (process.env.NODE_ENV !== 'production') {\n            warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n          }\n\n          changedBits |= 0;\n\n          if (changedBits !== 0) {\n            this.emitter.set(nextProps.value, changedBits);\n          }\n        }\n      }\n    };\n\n    _proto.render = function render() {\n      return this.props.children;\n    };\n\n    return Provider;\n  }(Component);\n\n  Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n  var Consumer = /*#__PURE__*/function (_Component2) {\n    _inheritsLoose(Consumer, _Component2);\n\n    function Consumer() {\n      var _this2;\n\n      _this2 = _Component2.apply(this, arguments) || this;\n      _this2.state = {\n        value: _this2.getValue()\n      };\n\n      _this2.onUpdate = function (newValue, changedBits) {\n        var observedBits = _this2.observedBits | 0;\n\n        if ((observedBits & changedBits) !== 0) {\n          _this2.setState({\n            value: _this2.getValue()\n          });\n        }\n      };\n\n      return _this2;\n    }\n\n    var _proto2 = Consumer.prototype;\n\n    _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n      var observedBits = nextProps.observedBits;\n      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n    };\n\n    _proto2.componentDidMount = function componentDidMount() {\n      if (this.context[contextProp]) {\n        this.context[contextProp].on(this.onUpdate);\n      }\n\n      var observedBits = this.props.observedBits;\n      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n    };\n\n    _proto2.componentWillUnmount = function componentWillUnmount() {\n      if (this.context[contextProp]) {\n        this.context[contextProp].off(this.onUpdate);\n      }\n    };\n\n    _proto2.getValue = function getValue() {\n      if (this.context[contextProp]) {\n        return this.context[contextProp].get();\n      } else {\n        return defaultValue;\n      }\n    };\n\n    _proto2.render = function render() {\n      return onlyChild(this.props.children)(this.state.value);\n    };\n\n    return Consumer;\n  }(Component);\n\n  Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n  return {\n    Provider: Provider,\n    Consumer: Consumer\n  };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n  const context = createContext();\n  context.displayName = name;\n\n  return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n  static computeRootMatch(pathname) {\n    return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n  }\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      location: props.history.location\n    };\n\n    // This is a bit of a hack. We have to start listening for location\n    // changes here in the constructor in case there are any <Redirect>s\n    // on the initial render. If there are, they will replace/push when\n    // they mount and since cDM fires in children before parents, we may\n    // get a new location before the <Router> is mounted.\n    this._isMounted = false;\n    this._pendingLocation = null;\n\n    if (!props.staticContext) {\n      this.unlisten = props.history.listen(location => {\n        if (this._isMounted) {\n          this.setState({ location });\n        } else {\n          this._pendingLocation = location;\n        }\n      });\n    }\n  }\n\n  componentDidMount() {\n    this._isMounted = true;\n\n    if (this._pendingLocation) {\n      this.setState({ location: this._pendingLocation });\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.unlisten) {\n      this.unlisten();\n      this._isMounted = false;\n      this._pendingLocation = null;\n    }\n  }\n\n  render() {\n    return (\n      <RouterContext.Provider\n        value={{\n          history: this.props.history,\n          location: this.state.location,\n          match: Router.computeRootMatch(this.state.location.pathname),\n          staticContext: this.props.staticContext\n        }}\n      >\n        <HistoryContext.Provider\n          children={this.props.children || null}\n          value={this.props.history}\n        />\n      </RouterContext.Provider>\n    );\n  }\n}\n\nif (__DEV__) {\n  Router.propTypes = {\n    children: PropTypes.node,\n    history: PropTypes.object.isRequired,\n    staticContext: PropTypes.object\n  };\n\n  Router.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      prevProps.history === this.props.history,\n      \"You cannot change <Router history>\"\n    );\n  };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\n  }\n}\n\nif (__DEV__) {\n  MemoryRouter.propTypes = {\n    initialEntries: PropTypes.array,\n    initialIndex: PropTypes.number,\n    getUserConfirmation: PropTypes.func,\n    keyLength: PropTypes.number,\n    children: PropTypes.node\n  };\n\n  MemoryRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n    );\n  };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n  componentDidMount() {\n    if (this.props.onMount) this.props.onMount.call(this, this);\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n  }\n\n  componentWillUnmount() {\n    if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n  }\n\n  render() {\n    return null;\n  }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n  if (cache[path]) return cache[path];\n\n  const generator = pathToRegexp.compile(path);\n\n  if (cacheCount < cacheLimit) {\n    cache[path] = generator;\n    cacheCount++;\n  }\n\n  return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n  return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n  return (\n    <RouterContext.Consumer>\n      {context => {\n        invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n        const { history, staticContext } = context;\n\n        const method = push ? history.push : history.replace;\n        const location = createLocation(\n          computedMatch\n            ? typeof to === \"string\"\n              ? generatePath(to, computedMatch.params)\n              : {\n                  ...to,\n                  pathname: generatePath(to.pathname, computedMatch.params)\n                }\n            : to\n        );\n\n        // When rendering in a static context,\n        // set the new location immediately.\n        if (staticContext) {\n          method(location);\n          return null;\n        }\n\n        return (\n          <Lifecycle\n            onMount={() => {\n              method(location);\n            }}\n            onUpdate={(self, prevProps) => {\n              const prevLocation = createLocation(prevProps.to);\n              if (\n                !locationsAreEqual(prevLocation, {\n                  ...location,\n                  key: prevLocation.key\n                })\n              ) {\n                method(location);\n              }\n            }}\n            to={to}\n          />\n        );\n      }}\n    </RouterContext.Consumer>\n  );\n}\n\nif (__DEV__) {\n  Redirect.propTypes = {\n    push: PropTypes.bool,\n    from: PropTypes.string,\n    to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n  };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n  const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n  const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n  if (pathCache[path]) return pathCache[path];\n\n  const keys = [];\n  const regexp = pathToRegexp(path, keys, options);\n  const result = { regexp, keys };\n\n  if (cacheCount < cacheLimit) {\n    pathCache[path] = result;\n    cacheCount++;\n  }\n\n  return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n  if (typeof options === \"string\" || Array.isArray(options)) {\n    options = { path: options };\n  }\n\n  const { path, exact = false, strict = false, sensitive = false } = options;\n\n  const paths = [].concat(path);\n\n  return paths.reduce((matched, path) => {\n    if (!path && path !== \"\") return null;\n    if (matched) return matched;\n\n    const { regexp, keys } = compilePath(path, {\n      end: exact,\n      strict,\n      sensitive\n    });\n    const match = regexp.exec(pathname);\n\n    if (!match) return null;\n\n    const [url, ...values] = match;\n    const isExact = pathname === url;\n\n    if (exact && !isExact) return null;\n\n    return {\n      path, // the path used to match\n      url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n      isExact, // whether or not we matched exactly\n      params: keys.reduce((memo, key, index) => {\n        memo[key.name] = values[index];\n        return memo;\n      }, {})\n    };\n  }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n  return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n  const value = children(props);\n\n  warning(\n    value !== undefined,\n    \"You returned `undefined` from the `children` function of \" +\n      `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n      \"should have returned a React element or `null`\"\n  );\n\n  return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n  render() {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Route> outside a <Router>\");\n\n          const location = this.props.location || context.location;\n          const match = this.props.computedMatch\n            ? this.props.computedMatch // <Switch> already computed the match for us\n            : this.props.path\n            ? matchPath(location.pathname, this.props)\n            : context.match;\n\n          const props = { ...context, location, match };\n\n          let { children, component, render } = this.props;\n\n          // Preact uses an empty array as children by\n          // default, so use null if that's the case.\n          if (Array.isArray(children) && isEmptyChildren(children)) {\n            children = null;\n          }\n\n          return (\n            <RouterContext.Provider value={props}>\n              {props.match\n                ? children\n                  ? typeof children === \"function\"\n                    ? __DEV__\n                      ? evalChildrenDev(children, props, this.props.path)\n                      : children(props)\n                    : children\n                  : component\n                  ? React.createElement(component, props)\n                  : render\n                  ? render(props)\n                  : null\n                : typeof children === \"function\"\n                ? __DEV__\n                  ? evalChildrenDev(children, props, this.props.path)\n                  : children(props)\n                : null}\n            </RouterContext.Provider>\n          );\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n}\n\nif (__DEV__) {\n  Route.propTypes = {\n    children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n    component: (props, propName) => {\n      if (props[propName] && !isValidElementType(props[propName])) {\n        return new Error(\n          `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n        );\n      }\n    },\n    exact: PropTypes.bool,\n    location: PropTypes.object,\n    path: PropTypes.oneOfType([\n      PropTypes.string,\n      PropTypes.arrayOf(PropTypes.string)\n    ]),\n    render: PropTypes.func,\n    sensitive: PropTypes.bool,\n    strict: PropTypes.bool\n  };\n\n  Route.prototype.componentDidMount = function() {\n    warning(\n      !(\n        this.props.children &&\n        !isEmptyChildren(this.props.children) &&\n        this.props.component\n      ),\n      \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n    );\n\n    warning(\n      !(\n        this.props.children &&\n        !isEmptyChildren(this.props.children) &&\n        this.props.render\n      ),\n      \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n    );\n\n    warning(\n      !(this.props.component && this.props.render),\n      \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n    );\n  };\n\n  Route.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      !(this.props.location && !prevProps.location),\n      '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n    );\n\n    warning(\n      !(!this.props.location && prevProps.location),\n      '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n    );\n  };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n  return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n  if (!basename) return location;\n\n  return {\n    ...location,\n    pathname: addLeadingSlash(basename) + location.pathname\n  };\n}\n\nfunction stripBasename(basename, location) {\n  if (!basename) return location;\n\n  const base = addLeadingSlash(basename);\n\n  if (location.pathname.indexOf(base) !== 0) return location;\n\n  return {\n    ...location,\n    pathname: location.pathname.substr(base.length)\n  };\n}\n\nfunction createURL(location) {\n  return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n  return () => {\n    invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n  };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n  navigateTo(location, action) {\n    const { basename = \"\", context = {} } = this.props;\n    context.action = action;\n    context.location = addBasename(basename, createLocation(location));\n    context.url = createURL(context.location);\n  }\n\n  handlePush = location => this.navigateTo(location, \"PUSH\");\n  handleReplace = location => this.navigateTo(location, \"REPLACE\");\n  handleListen = () => noop;\n  handleBlock = () => noop;\n\n  render() {\n    const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n    const history = {\n      createHref: path => addLeadingSlash(basename + createURL(path)),\n      action: \"POP\",\n      location: stripBasename(basename, createLocation(location)),\n      push: this.handlePush,\n      replace: this.handleReplace,\n      go: staticHandler(\"go\"),\n      goBack: staticHandler(\"goBack\"),\n      goForward: staticHandler(\"goForward\"),\n      listen: this.handleListen,\n      block: this.handleBlock\n    };\n\n    return <Router {...rest} history={history} staticContext={context} />;\n  }\n}\n\nif (__DEV__) {\n  StaticRouter.propTypes = {\n    basename: PropTypes.string,\n    context: PropTypes.object,\n    location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n  };\n\n  StaticRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n    );\n  };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n  render() {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n          const location = this.props.location || context.location;\n\n          let element, match;\n\n          // We use React.Children.forEach instead of React.Children.toArray().find()\n          // here because toArray adds keys to all child elements and we do not want\n          // to trigger an unmount/remount for two <Route>s that render the same\n          // component at different URLs.\n          React.Children.forEach(this.props.children, child => {\n            if (match == null && React.isValidElement(child)) {\n              element = child;\n\n              const path = child.props.path || child.props.from;\n\n              match = path\n                ? matchPath(location.pathname, { ...child.props, path })\n                : context.match;\n            }\n          });\n\n          return match\n            ? React.cloneElement(element, { location, computedMatch: match })\n            : null;\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n}\n\nif (__DEV__) {\n  Switch.propTypes = {\n    children: PropTypes.node,\n    location: PropTypes.object\n  };\n\n  Switch.prototype.componentDidUpdate = function(prevProps) {\n    warning(\n      !(this.props.location && !prevProps.location),\n      '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n    );\n\n    warning(\n      !(!this.props.location && prevProps.location),\n      '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n    );\n  };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useHistory()\"\n    );\n  }\n\n  return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useLocation()\"\n    );\n  }\n\n  return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useParams()\"\n    );\n  }\n\n  const match = useContext(RouterContext).match;\n  return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n  if (__DEV__) {\n    invariant(\n      typeof useContext === \"function\",\n      \"You must use React >= 16.8 in order to use useRouteMatch()\"\n    );\n  }\n\n  const location = useLocation();\n  const match = useContext(RouterContext).match;\n  return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\n  }\n}\n\nif (__DEV__) {\n  BrowserRouter.propTypes = {\n    basename: PropTypes.string,\n    children: PropTypes.node,\n    forceRefresh: PropTypes.bool,\n    getUserConfirmation: PropTypes.func,\n    keyLength: PropTypes.number\n  };\n\n  BrowserRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n    );\n  };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n  history = createHistory(this.props);\n\n  render() {\n    return <Router history={this.history} children={this.props.children} />;\n  }\n}\n\nif (__DEV__) {\n  HashRouter.propTypes = {\n    basename: PropTypes.string,\n    children: PropTypes.node,\n    getUserConfirmation: PropTypes.func,\n    hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n  };\n\n  HashRouter.prototype.componentDidMount = function() {\n    warning(\n      !this.props.history,\n      \"<HashRouter> ignores the history prop. To use a custom history, \" +\n        \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n    );\n  };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n  typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n  return typeof to === \"string\"\n    ? createLocation(to, null, null, currentLocation)\n    : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n  resolveToLocation,\n  normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n  forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n  (\n    {\n      innerRef, // TODO: deprecate\n      navigate,\n      onClick,\n      ...rest\n    },\n    forwardedRef\n  ) => {\n    const { target } = rest;\n\n    let props = {\n      ...rest,\n      onClick: event => {\n        try {\n          if (onClick) onClick(event);\n        } catch (ex) {\n          event.preventDefault();\n          throw ex;\n        }\n\n        if (\n          !event.defaultPrevented && // onClick prevented default\n          event.button === 0 && // ignore everything but left clicks\n          (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n          !isModifiedEvent(event) // ignore clicks with modifier keys\n        ) {\n          event.preventDefault();\n          navigate();\n        }\n      }\n    };\n\n    // React 15 compat\n    if (forwardRefShim !== forwardRef) {\n      props.ref = forwardedRef || innerRef;\n    } else {\n      props.ref = innerRef;\n    }\n\n    /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n    return <a {...props} />;\n  }\n);\n\nif (__DEV__) {\n  LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n  (\n    {\n      component = LinkAnchor,\n      replace,\n      to,\n      innerRef, // TODO: deprecate\n      ...rest\n    },\n    forwardedRef\n  ) => {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <Link> outside a <Router>\");\n\n          const { history } = context;\n\n          const location = normalizeToLocation(\n            resolveToLocation(to, context.location),\n            context.location\n          );\n\n          const href = location ? history.createHref(location) : \"\";\n          const props = {\n            ...rest,\n            href,\n            navigate() {\n              const location = resolveToLocation(to, context.location);\n              const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n              const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n              method(location);\n            }\n          };\n\n          // React 15 compat\n          if (forwardRefShim !== forwardRef) {\n            props.ref = forwardedRef || innerRef;\n          } else {\n            props.innerRef = innerRef;\n          }\n\n          return React.createElement(component, props);\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n);\n\nif (__DEV__) {\n  const toType = PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.object,\n    PropTypes.func\n  ]);\n  const refType = PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.func,\n    PropTypes.shape({ current: PropTypes.any })\n  ]);\n\n  Link.displayName = \"Link\";\n\n  Link.propTypes = {\n    innerRef: refType,\n    onClick: PropTypes.func,\n    replace: PropTypes.bool,\n    target: PropTypes.string,\n    to: toType.isRequired\n  };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n  resolveToLocation,\n  normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n  forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n  return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n  (\n    {\n      \"aria-current\": ariaCurrent = \"page\",\n      activeClassName = \"active\", // TODO: deprecate\n      activeStyle, // TODO: deprecate\n      className: classNameProp,\n      exact,\n      isActive: isActiveProp,\n      location: locationProp,\n      sensitive,\n      strict,\n      style: styleProp,\n      to,\n      innerRef, // TODO: deprecate\n      ...rest\n    },\n    forwardedRef\n  ) => {\n    return (\n      <RouterContext.Consumer>\n        {context => {\n          invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n          const currentLocation = locationProp || context.location;\n          const toLocation = normalizeToLocation(\n            resolveToLocation(to, currentLocation),\n            currentLocation\n          );\n          const { pathname: path } = toLocation;\n          // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n          const escapedPath =\n            path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n          const match = escapedPath\n            ? matchPath(currentLocation.pathname, {\n                path: escapedPath,\n                exact,\n                sensitive,\n                strict\n              })\n            : null;\n          const isActive = !!(isActiveProp\n            ? isActiveProp(match, currentLocation)\n            : match);\n\n          let className =\n            typeof classNameProp === \"function\"\n              ? classNameProp(isActive)\n              : classNameProp;\n\n          let style =\n            typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n          if (isActive) {\n            className = joinClassnames(className, activeClassName);\n            style = { ...style, ...activeStyle };\n          }\n\n          const props = {\n            \"aria-current\": (isActive && ariaCurrent) || null,\n            className,\n            style,\n            to: toLocation,\n            ...rest\n          };\n\n          // React 15 compat\n          if (forwardRefShim !== forwardRef) {\n            props.ref = forwardedRef || innerRef;\n          } else {\n            props.innerRef = innerRef;\n          }\n\n          return <Link {...props} />;\n        }}\n      </RouterContext.Consumer>\n    );\n  }\n);\n\nif (__DEV__) {\n  NavLink.displayName = \"NavLink\";\n\n  const ariaCurrentType = PropTypes.oneOf([\n    \"page\",\n    \"step\",\n    \"location\",\n    \"date\",\n    \"time\",\n    \"true\",\n    \"false\"\n  ]);\n\n  NavLink.propTypes = {\n    ...Link.propTypes,\n    \"aria-current\": ariaCurrentType,\n    activeClassName: PropTypes.string,\n    activeStyle: PropTypes.object,\n    className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n    exact: PropTypes.bool,\n    isActive: PropTypes.func,\n    location: PropTypes.object,\n    sensitive: PropTypes.bool,\n    strict: PropTypes.bool,\n    style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n  };\n}\n\nexport default NavLink;\n","const niceErrors = {\n    0: `Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,\n    1(annotationType, key: PropertyKey) {\n        return `Cannot apply '${annotationType}' to '${key.toString()}': Field not found.`\n    },\n    /*\n    2(prop) {\n        return `invalid decorator for '${prop.toString()}'`\n    },\n    3(prop) {\n        return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n    },\n    4(prop) {\n        return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n    },\n    */\n    5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n    6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n    7: \"'entries()' can only be used on observable objects, arrays and maps\",\n    8: \"'set()' can only be used on observable objects, arrays and maps\",\n    9: \"'remove()' can only be used on observable objects, arrays and maps\",\n    10: \"'has()' can only be used on observable objects, arrays and maps\",\n    11: \"'get()' can only be used on observable objects, arrays and maps\",\n    12: `Invalid annotation`,\n    13: `Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,\n    14: \"Intercept handlers should return nothing or a change object\",\n    15: `Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,\n    16: `Modification exception: the internal structure of an observable array was changed.`,\n    17(index, length) {\n        return `[mobx.array] Index out of bounds, ${index} is larger than ${length}`\n    },\n    18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n    19(other) {\n        return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name\n    },\n    20(other) {\n        return \"Cannot initialize map from \" + other\n    },\n    21(dataStructure) {\n        return `Cannot convert to map from '${dataStructure}'`\n    },\n    22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n    23: \"It is not possible to get index atoms from arrays\",\n    24(thing) {\n        return \"Cannot obtain administration from \" + thing\n    },\n    25(property, name) {\n        return `the entry '${property}' does not exist in the observable map '${name}'`\n    },\n    26: \"please specify a property\",\n    27(property, name) {\n        return `no observable property '${property.toString()}' found on the observable object '${name}'`\n    },\n    28(thing) {\n        return \"Cannot obtain atom from \" + thing\n    },\n    29: \"Expecting some object\",\n    30: \"invalid action stack. did you forget to finish an action?\",\n    31: \"missing option for computed: get\",\n    32(name, derivation) {\n        return `Cycle detected in computation ${name}: ${derivation}`\n    },\n    33(name) {\n        return `The setter of computed value '${name}' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`\n    },\n    34(name) {\n        return `[ComputedValue '${name}'] It is not possible to assign a new value to a computed value.`\n    },\n    35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n    36: \"isolateGlobalState should be called before MobX is running any reactions\",\n    37(method) {\n        return `[mobx] \\`observableArray.${method}()\\` mutates the array in-place, which is not allowed inside a derivation. Use \\`array.slice().${method}()\\` instead`\n    },\n    38: \"'ownKeys()' can only be used on observable objects\",\n    39: \"'defineProperty()' can only be used on observable objects\"\n} as const\n\nconst errors: typeof niceErrors = __DEV__ ? niceErrors : ({} as any)\n\nexport function die(error: string | keyof typeof errors, ...args: any[]): never {\n    if (__DEV__) {\n        let e: any = typeof error === \"string\" ? error : errors[error]\n        if (typeof e === \"function\") e = e.apply(null, args as any)\n        throw new Error(`[MobX] ${e}`)\n    }\n    throw new Error(\n        typeof error === \"number\"\n            ? `[MobX] minified error nr: ${error}${\n                  args.length ? \" \" + args.map(String).join(\",\") : \"\"\n              }. Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts`\n            : `[MobX] ${error}`\n    )\n}\n","declare const window: any\ndeclare const self: any\n\nconst mockGlobal = {}\n\nexport function getGlobal() {\n    if (typeof globalThis !== \"undefined\") {\n        return globalThis\n    }\n    if (typeof window !== \"undefined\") {\n        return window\n    }\n    if (typeof global !== \"undefined\") {\n        return global\n    }\n    if (typeof self !== \"undefined\") {\n        return self\n    }\n    return mockGlobal\n}\n","import { globalState, die } from \"../internal\"\n\n// We shorten anything used > 5 times\nexport const assign = Object.assign\nexport const getDescriptor = Object.getOwnPropertyDescriptor\nexport const defineProperty = Object.defineProperty\nexport const objectPrototype = Object.prototype\n\nexport const EMPTY_ARRAY = []\nObject.freeze(EMPTY_ARRAY)\n\nexport const EMPTY_OBJECT = {}\nObject.freeze(EMPTY_OBJECT)\n\nexport interface Lambda {\n    (): void\n    name?: string\n}\n\nconst hasProxy = typeof Proxy !== \"undefined\"\nconst plainObjectString = Object.toString()\n\nexport function assertProxies() {\n    if (!hasProxy) {\n        die(\n            __DEV__\n                ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\"\n                : \"Proxy not available\"\n        )\n    }\n}\n\nexport function warnAboutProxyRequirement(msg: string) {\n    if (__DEV__ && globalState.verifyProxies) {\n        die(\n            \"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" +\n                msg\n        )\n    }\n}\n\nexport function getNextId() {\n    return ++globalState.mobxGuid\n}\n\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nexport function once(func: Lambda): Lambda {\n    let invoked = false\n    return function () {\n        if (invoked) {\n            return\n        }\n        invoked = true\n        return (func as any).apply(this, arguments)\n    }\n}\n\nexport const noop = () => {}\n\nexport function isFunction(fn: any): fn is Function {\n    return typeof fn === \"function\"\n}\n\nexport function isString(value: any): value is string {\n    return typeof value === \"string\"\n}\n\nexport function isStringish(value: any): value is string | number | symbol {\n    const t = typeof value\n    switch (t) {\n        case \"string\":\n        case \"symbol\":\n        case \"number\":\n            return true\n    }\n    return false\n}\n\nexport function isObject(value: any): value is Object {\n    return value !== null && typeof value === \"object\"\n}\n\nexport function isPlainObject(value: any) {\n    if (!isObject(value)) {\n        return false\n    }\n    const proto = Object.getPrototypeOf(value)\n    if (proto == null) {\n        return true\n    }\n    const protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n    return (\n        typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString\n    )\n}\n\n// https://stackoverflow.com/a/37865170\nexport function isGenerator(obj: any): boolean {\n    const constructor = obj?.constructor\n    if (!constructor) {\n        return false\n    }\n    if (\n        \"GeneratorFunction\" === constructor.name ||\n        \"GeneratorFunction\" === constructor.displayName\n    ) {\n        return true\n    }\n    return false\n}\n\nexport function addHiddenProp(object: any, propName: PropertyKey, value: any) {\n    defineProperty(object, propName, {\n        enumerable: false,\n        writable: true,\n        configurable: true,\n        value\n    })\n}\n\nexport function addHiddenFinalProp(object: any, propName: PropertyKey, value: any) {\n    defineProperty(object, propName, {\n        enumerable: false,\n        writable: false,\n        configurable: true,\n        value\n    })\n}\n\nexport function createInstanceofPredicate<T>(\n    name: string,\n    theClass: new (...args: any[]) => T\n): (x: any) => x is T {\n    const propName = \"isMobX\" + name\n    theClass.prototype[propName] = true\n    return function (x) {\n        return isObject(x) && x[propName] === true\n    } as any\n}\n\nexport function isES6Map(thing: any): thing is Map<any, any> {\n    return thing instanceof Map\n}\n\nexport function isES6Set(thing: any): thing is Set<any> {\n    return thing instanceof Set\n}\n\nconst hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\"\n\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nexport function getPlainObjectKeys(object: any) {\n    const keys = Object.keys(object)\n    // Not supported in IE, so there are not going to be symbol props anyway...\n    if (!hasGetOwnPropertySymbols) {\n        return keys\n    }\n    const symbols = Object.getOwnPropertySymbols(object)\n    if (!symbols.length) {\n        return keys\n    }\n    return [...keys, ...symbols.filter(s => objectPrototype.propertyIsEnumerable.call(object, s))]\n}\n\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nexport const ownKeys: (target: any) => Array<string | symbol> =\n    typeof Reflect !== \"undefined\" && Reflect.ownKeys\n        ? Reflect.ownKeys\n        : hasGetOwnPropertySymbols\n        ? obj => Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj) as any)\n        : /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport function stringifyKey(key: any): string {\n    if (typeof key === \"string\") {\n        return key\n    }\n    if (typeof key === \"symbol\") {\n        return key.toString()\n    }\n    return new String(key).toString()\n}\n\nexport function toPrimitive(value: any) {\n    return value === null ? null : typeof value === \"object\" ? \"\" + value : value\n}\n\nexport function hasProp(target: Object, prop: PropertyKey): boolean {\n    return objectPrototype.hasOwnProperty.call(target, prop)\n}\n\n// From Immer utils\nexport const getOwnPropertyDescriptors =\n    Object.getOwnPropertyDescriptors ||\n    function getOwnPropertyDescriptors(target: any) {\n        // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n        const res: any = {}\n        // Note: without polyfill for ownKeys, symbols won't be picked up\n        ownKeys(target).forEach(key => {\n            res[key] = getDescriptor(target, key)\n        })\n        return res\n    }\n","import { Annotation, addHiddenProp, AnnotationsMap, hasProp, die, isOverride } from \"../internal\"\n\nexport const storedAnnotationsSymbol = Symbol(\"mobx-stored-annotations\")\n\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nexport function createDecoratorAnnotation(annotation: Annotation): PropertyDecorator & Annotation {\n    function decorator(target, property) {\n        storeAnnotation(target, property, annotation)\n    }\n    return Object.assign(decorator, annotation)\n}\n\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nexport function storeAnnotation(prototype: any, key: PropertyKey, annotation: Annotation) {\n    if (!hasProp(prototype, storedAnnotationsSymbol)) {\n        addHiddenProp(prototype, storedAnnotationsSymbol, {\n            // Inherit annotations\n            ...prototype[storedAnnotationsSymbol]\n        })\n    }\n    // @override must override something\n    if (__DEV__ && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n        const fieldName = `${prototype.constructor.name}.prototype.${key.toString()}`\n        die(\n            `'${fieldName}' is decorated with 'override', ` +\n                `but no such decorated member was found on prototype.`\n        )\n    }\n    // Cannot re-decorate\n    assertNotDecorated(prototype, annotation, key)\n\n    // Ignore override\n    if (!isOverride(annotation)) {\n        prototype[storedAnnotationsSymbol][key] = annotation\n    }\n}\n\nfunction assertNotDecorated(prototype: object, annotation: Annotation, key: PropertyKey) {\n    if (__DEV__ && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n        const fieldName = `${prototype.constructor.name}.prototype.${key.toString()}`\n        const currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_\n        const requestedAnnotationType = annotation.annotationType_\n        die(\n            `Cannot apply '@${requestedAnnotationType}' to '${fieldName}':` +\n                `\\nThe field is already decorated with '@${currentAnnotationType}'.` +\n                `\\nRe-decorating fields is not allowed.` +\n                `\\nUse '@override' decorator for methods overriden by subclass.`\n        )\n    }\n}\n\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nexport function collectStoredAnnotations(target): AnnotationsMap<any, any> {\n    if (!hasProp(target, storedAnnotationsSymbol)) {\n        if (__DEV__ && !target[storedAnnotationsSymbol]) {\n            die(\n                `No annotations were passed to makeObservable, but no decorated members have been found either`\n            )\n        }\n        // We need a copy as we will remove annotation from the list once it's applied.\n        addHiddenProp(target, storedAnnotationsSymbol, { ...target[storedAnnotationsSymbol] })\n    }\n    return target[storedAnnotationsSymbol]\n}\n","import {\n    die,\n    Annotation,\n    hasProp,\n    createDecoratorAnnotation,\n    ObservableObjectAdministration,\n    MakeResult\n} from \"../internal\"\n\nconst OVERRIDE = \"override\"\n\nexport const override: Annotation & PropertyDecorator = createDecoratorAnnotation({\n    annotationType_: OVERRIDE,\n    make_,\n    extend_\n})\n\nexport function isOverride(annotation: Annotation): boolean {\n    return annotation.annotationType_ === OVERRIDE\n}\n\nfunction make_(adm: ObservableObjectAdministration, key): MakeResult {\n    // Must not be plain object\n    if (__DEV__ && adm.isPlainObject_) {\n        die(\n            `Cannot apply '${this.annotationType_}' to '${adm.name_}.${key.toString()}':` +\n                `\\n'${this.annotationType_}' cannot be used on plain objects.`\n        )\n    }\n    // Must override something\n    if (__DEV__ && !hasProp(adm.appliedAnnotations_!, key)) {\n        die(\n            `'${adm.name_}.${key.toString()}' is annotated with '${this.annotationType_}', ` +\n                `but no such annotated member was found on prototype.`\n        )\n    }\n    return MakeResult.Cancel\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap): boolean {\n    die(`'${this.annotationType_}' can only be used with 'makeObservable'`)\n}\n","import {\n    IDerivationState_,\n    IObservable,\n    IDerivation,\n    createInstanceofPredicate,\n    endBatch,\n    getNextId,\n    noop,\n    onBecomeObserved,\n    onBecomeUnobserved,\n    propagateChanged,\n    reportObserved,\n    startBatch,\n    Lambda\n} from \"../internal\"\n\nexport const $mobx = Symbol(\"mobx administration\")\n\nexport interface IAtom extends IObservable {\n    reportObserved(): boolean\n    reportChanged()\n}\n\nexport class Atom implements IAtom {\n    isPendingUnobservation_ = false // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n    isBeingObserved_ = false\n    observers_ = new Set<IDerivation>()\n\n    diffValue_ = 0\n    lastAccessedBy_ = 0\n    lowestObserverState_ = IDerivationState_.NOT_TRACKING_\n    /**\n     * Create a new atom. For debugging purposes it is recommended to give it a name.\n     * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n     */\n    constructor(public name_ = __DEV__ ? \"Atom@\" + getNextId() : \"Atom\") {}\n\n    // onBecomeObservedListeners\n    public onBOL: Set<Lambda> | undefined\n    // onBecomeUnobservedListeners\n    public onBUOL: Set<Lambda> | undefined\n\n    public onBO() {\n        if (this.onBOL) {\n            this.onBOL.forEach(listener => listener())\n        }\n    }\n\n    public onBUO() {\n        if (this.onBUOL) {\n            this.onBUOL.forEach(listener => listener())\n        }\n    }\n\n    /**\n     * Invoke this method to notify mobx that your atom has been used somehow.\n     * Returns true if there is currently a reactive context.\n     */\n    public reportObserved(): boolean {\n        return reportObserved(this)\n    }\n\n    /**\n     * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n     */\n    public reportChanged() {\n        startBatch()\n        propagateChanged(this)\n        endBatch()\n    }\n\n    toString() {\n        return this.name_\n    }\n}\n\nexport const isAtom = createInstanceofPredicate(\"Atom\", Atom)\n\nexport function createAtom(\n    name: string,\n    onBecomeObservedHandler: () => void = noop,\n    onBecomeUnobservedHandler: () => void = noop\n): IAtom {\n    const atom = new Atom(name)\n    // default `noop` listener will not initialize the hook Set\n    if (onBecomeObservedHandler !== noop) {\n        onBecomeObserved(atom, onBecomeObservedHandler)\n    }\n\n    if (onBecomeUnobservedHandler !== noop) {\n        onBecomeUnobserved(atom, onBecomeUnobservedHandler)\n    }\n    return atom\n}\n","import {\n    IComputedValue,\n    IObservable,\n    IObservableArray,\n    Lambda,\n    ObservableMap,\n    getAtom,\n    ObservableSet,\n    isFunction,\n    IObservableValue\n} from \"../internal\"\n\nconst ON_BECOME_OBSERVED = \"onBO\"\nconst ON_BECOME_UNOBSERVED = \"onBUO\"\n\nexport function onBecomeObserved(\n    value:\n        | IObservable\n        | IComputedValue<any>\n        | IObservableArray<any>\n        | ObservableMap<any, any>\n        | ObservableSet<any>\n        | IObservableValue<any>,\n    listener: Lambda\n): Lambda\nexport function onBecomeObserved<K, V = any>(\n    value: ObservableMap<K, V> | Object,\n    property: K,\n    listener: Lambda\n): Lambda\nexport function onBecomeObserved(thing, arg2, arg3?): Lambda {\n    return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3)\n}\n\nexport function onBecomeUnobserved(\n    value:\n        | IObservable\n        | IComputedValue<any>\n        | IObservableArray<any>\n        | ObservableMap<any, any>\n        | ObservableSet<any>\n        | IObservableValue<any>,\n    listener: Lambda\n): Lambda\nexport function onBecomeUnobserved<K, V = any>(\n    value: ObservableMap<K, V> | Object,\n    property: K,\n    listener: Lambda\n): Lambda\nexport function onBecomeUnobserved(thing, arg2, arg3?): Lambda {\n    return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3)\n}\n\nfunction interceptHook(hook: \"onBO\" | \"onBUO\", thing, arg2, arg3) {\n    const atom: IObservable =\n        typeof arg3 === \"function\" ? getAtom(thing, arg2) : (getAtom(thing) as any)\n    const cb = isFunction(arg3) ? arg3 : arg2\n    const listenersKey = `${hook}L` as \"onBOL\" | \"onBUOL\"\n\n    if (atom[listenersKey]) {\n        atom[listenersKey]!.add(cb)\n    } else {\n        atom[listenersKey] = new Set<Lambda>([cb])\n    }\n\n    return function () {\n        const hookListeners = atom[listenersKey]\n        if (hookListeners) {\n            hookListeners.delete(cb)\n            if (hookListeners.size === 0) {\n                delete atom[listenersKey]\n            }\n        }\n    }\n}\n","import { deepEqual } from \"../internal\"\n\nexport interface IEqualsComparer<T> {\n    (a: T, b: T): boolean\n}\n\nfunction identityComparer(a: any, b: any): boolean {\n    return a === b\n}\n\nfunction structuralComparer(a: any, b: any): boolean {\n    return deepEqual(a, b)\n}\n\nfunction shallowComparer(a: any, b: any): boolean {\n    return deepEqual(a, b, 1)\n}\n\nfunction defaultComparer(a: any, b: any): boolean {\n    if (Object.is) {\n        return Object.is(a, b)\n    }\n\n    return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b\n}\n\nexport const comparer = {\n    identity: identityComparer,\n    structural: structuralComparer,\n    default: defaultComparer,\n    shallow: shallowComparer\n}\n","import {\n    deepEqual,\n    isES6Map,\n    isES6Set,\n    isObservable,\n    isObservableArray,\n    isObservableMap,\n    isObservableSet,\n    isObservableObject,\n    isPlainObject,\n    observable,\n    die,\n    isAction,\n    autoAction,\n    flow,\n    isFlow,\n    isGenerator\n} from \"../internal\"\n\nexport interface IEnhancer<T> {\n    (newValue: T, oldValue: T | undefined, name: string): T\n}\n\nexport function deepEnhancer(v, _, name) {\n    // it is an observable already, done\n    if (isObservable(v)) {\n        return v\n    }\n\n    // something that can be converted and mutated?\n    if (Array.isArray(v)) {\n        return observable.array(v, { name })\n    }\n    if (isPlainObject(v)) {\n        return observable.object(v, undefined, { name })\n    }\n    if (isES6Map(v)) {\n        return observable.map(v, { name })\n    }\n    if (isES6Set(v)) {\n        return observable.set(v, { name })\n    }\n    if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n        if (isGenerator(v)) {\n            return flow(v)\n        } else {\n            return autoAction(name, v)\n        }\n    }\n    return v\n}\n\nexport function shallowEnhancer(v, _, name): any {\n    if (v === undefined || v === null) {\n        return v\n    }\n    if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n        return v\n    }\n    if (Array.isArray(v)) {\n        return observable.array(v, { name, deep: false })\n    }\n    if (isPlainObject(v)) {\n        return observable.object(v, undefined, { name, deep: false })\n    }\n    if (isES6Map(v)) {\n        return observable.map(v, { name, deep: false })\n    }\n    if (isES6Set(v)) {\n        return observable.set(v, { name, deep: false })\n    }\n\n    if (__DEV__) {\n        die(\n            \"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\"\n        )\n    }\n}\n\nexport function referenceEnhancer(newValue?) {\n    // never turn into an observable\n    return newValue\n}\n\nexport function refStructEnhancer(v, oldValue): any {\n    if (__DEV__ && isObservable(v)) {\n        die(`observable.struct should not be used with observable values`)\n    }\n    if (deepEqual(v, oldValue)) {\n        return oldValue\n    }\n    return v\n}\n","import {\n    ObservableObjectAdministration,\n    createAction,\n    isAction,\n    defineProperty,\n    die,\n    isFunction,\n    Annotation,\n    globalState,\n    MakeResult\n} from \"../internal\"\n\nexport function createActionAnnotation(name: string, options?: object): Annotation {\n    return {\n        annotationType_: name,\n        options_: options,\n        make_,\n        extend_\n    }\n}\n\nfunction make_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    source: object\n): MakeResult {\n    // bound\n    if (this.options_?.bound) {\n        return this.extend_(adm, key, descriptor, false) === null\n            ? MakeResult.Cancel\n            : MakeResult.Break\n    }\n    // own\n    if (source === adm.target_) {\n        return this.extend_(adm, key, descriptor, false) === null\n            ? MakeResult.Cancel\n            : MakeResult.Continue\n    }\n    // prototype\n    if (isAction(descriptor.value)) {\n        // A prototype could have been annotated already by other constructor,\n        // rest of the proto chain must be annotated already\n        return MakeResult.Break\n    }\n    const actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false)\n    defineProperty(source, key, actionDescriptor)\n    return MakeResult.Continue\n}\n\nfunction extend_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    proxyTrap: boolean\n): boolean | null {\n    const actionDescriptor = createActionDescriptor(adm, this, key, descriptor)\n    return adm.defineProperty_(key, actionDescriptor, proxyTrap)\n}\n\nfunction assertActionDescriptor(\n    adm: ObservableObjectAdministration,\n    { annotationType_ }: Annotation,\n    key: PropertyKey,\n    { value }: PropertyDescriptor\n) {\n    if (__DEV__ && !isFunction(value)) {\n        die(\n            `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n                `\\n'${annotationType_}' can only be used on properties with a function value.`\n        )\n    }\n}\n\nexport function createActionDescriptor(\n    adm: ObservableObjectAdministration,\n    annotation: Annotation,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    // provides ability to disable safeDescriptors for prototypes\n    safeDescriptors: boolean = globalState.safeDescriptors\n) {\n    assertActionDescriptor(adm, annotation, key, descriptor)\n    let { value } = descriptor\n    if (annotation.options_?.bound) {\n        value = value.bind(adm.proxy_ ?? adm.target_)\n    }\n    return {\n        value: createAction(\n            annotation.options_?.name ?? key.toString(),\n            value,\n            annotation.options_?.autoAction ?? false,\n            // https://github.com/mobxjs/mobx/discussions/3140\n            annotation.options_?.bound ? adm.proxy_ ?? adm.target_ : undefined\n        ),\n        // Non-configurable for classes\n        // prevents accidental field redefinition in subclass\n        configurable: safeDescriptors ? adm.isPlainObject_ : true,\n        // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n        enumerable: false,\n        // Non-obsevable, therefore non-writable\n        // Also prevents rewriting in subclass constructor\n        writable: safeDescriptors ? false : true\n    }\n}\n","import {\n    ObservableObjectAdministration,\n    Annotation,\n    defineProperty,\n    die,\n    flow,\n    isFlow,\n    isFunction,\n    globalState,\n    MakeResult,\n    hasProp\n} from \"../internal\"\n\nexport function createFlowAnnotation(name: string, options?: object): Annotation {\n    return {\n        annotationType_: name,\n        options_: options,\n        make_,\n        extend_\n    }\n}\n\nfunction make_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    source: object\n): MakeResult {\n    // own\n    if (source === adm.target_) {\n        return this.extend_(adm, key, descriptor, false) === null\n            ? MakeResult.Cancel\n            : MakeResult.Continue\n    }\n    // prototype\n    // bound - must annotate protos to support super.flow()\n    if (this.options_?.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n        if (this.extend_(adm, key, descriptor, false) === null) {\n            return MakeResult.Cancel\n        }\n    }\n    if (isFlow(descriptor.value)) {\n        // A prototype could have been annotated already by other constructor,\n        // rest of the proto chain must be annotated already\n        return MakeResult.Break\n    }\n    const flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false)\n    defineProperty(source, key, flowDescriptor)\n    return MakeResult.Continue\n}\n\nfunction extend_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    proxyTrap: boolean\n): boolean | null {\n    const flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, this.options_?.bound)\n    return adm.defineProperty_(key, flowDescriptor, proxyTrap)\n}\n\nfunction assertFlowDescriptor(\n    adm: ObservableObjectAdministration,\n    { annotationType_ }: Annotation,\n    key: PropertyKey,\n    { value }: PropertyDescriptor\n) {\n    if (__DEV__ && !isFunction(value)) {\n        die(\n            `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n                `\\n'${annotationType_}' can only be used on properties with a generator function value.`\n        )\n    }\n}\n\nfunction createFlowDescriptor(\n    adm: ObservableObjectAdministration,\n    annotation: Annotation,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    bound: boolean,\n    // provides ability to disable safeDescriptors for prototypes\n    safeDescriptors: boolean = globalState.safeDescriptors\n): PropertyDescriptor {\n    assertFlowDescriptor(adm, annotation, key, descriptor)\n    let { value } = descriptor\n    // In case of flow.bound, the descriptor can be from already annotated prototype\n    if (!isFlow(value)) {\n        value = flow(value)\n    }\n    if (bound) {\n        // We do not keep original function around, so we bind the existing flow\n        value = value.bind(adm.proxy_ ?? adm.target_)\n        // This is normally set by `flow`, but `bind` returns new function...\n        value.isMobXFlow = true\n    }\n    return {\n        value,\n        // Non-configurable for classes\n        // prevents accidental field redefinition in subclass\n        configurable: safeDescriptors ? adm.isPlainObject_ : true,\n        // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n        enumerable: false,\n        // Non-obsevable, therefore non-writable\n        // Also prevents rewriting in subclass constructor\n        writable: safeDescriptors ? false : true\n    }\n}\n","import { ObservableObjectAdministration, die, Annotation, MakeResult } from \"../internal\"\n\nexport function createComputedAnnotation(name: string, options?: object): Annotation {\n    return {\n        annotationType_: name,\n        options_: options,\n        make_,\n        extend_\n    }\n}\n\nfunction make_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor\n): MakeResult {\n    return this.extend_(adm, key, descriptor, false) === null ? MakeResult.Cancel : MakeResult.Break\n}\n\nfunction extend_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    proxyTrap: boolean\n): boolean | null {\n    assertComputedDescriptor(adm, this, key, descriptor)\n    return adm.defineComputedProperty_(\n        key,\n        {\n            ...this.options_,\n            get: descriptor.get,\n            set: descriptor.set\n        },\n        proxyTrap\n    )\n}\n\nfunction assertComputedDescriptor(\n    adm: ObservableObjectAdministration,\n    { annotationType_ }: Annotation,\n    key: PropertyKey,\n    { get }: PropertyDescriptor\n) {\n    if (__DEV__ && !get) {\n        die(\n            `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n                `\\n'${annotationType_}' can only be used on getter(+setter) properties.`\n        )\n    }\n}\n","import {\n    ObservableObjectAdministration,\n    deepEnhancer,\n    die,\n    Annotation,\n    MakeResult\n} from \"../internal\"\n\nexport function createObservableAnnotation(name: string, options?: object): Annotation {\n    return {\n        annotationType_: name,\n        options_: options,\n        make_,\n        extend_\n    }\n}\n\nfunction make_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor\n): MakeResult {\n    return this.extend_(adm, key, descriptor, false) === null ? MakeResult.Cancel : MakeResult.Break\n}\n\nfunction extend_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    proxyTrap: boolean\n): boolean | null {\n    assertObservableDescriptor(adm, this, key, descriptor)\n    return adm.defineObservableProperty_(\n        key,\n        descriptor.value,\n        this.options_?.enhancer ?? deepEnhancer,\n        proxyTrap\n    )\n}\n\nfunction assertObservableDescriptor(\n    adm: ObservableObjectAdministration,\n    { annotationType_ }: Annotation,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor\n) {\n    if (__DEV__ && !(\"value\" in descriptor)) {\n        die(\n            `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n                `\\n'${annotationType_}' cannot be used on getter/setter properties`\n        )\n    }\n}\n","import {\n    ObservableObjectAdministration,\n    observable,\n    Annotation,\n    defineProperty,\n    createAction,\n    globalState,\n    flow,\n    computed,\n    autoAction,\n    isGenerator,\n    MakeResult\n} from \"../internal\"\n\nconst AUTO = \"true\"\n\nexport const autoAnnotation: Annotation = createAutoAnnotation()\n\nexport function createAutoAnnotation(options?: object): Annotation {\n    return {\n        annotationType_: AUTO,\n        options_: options,\n        make_,\n        extend_\n    }\n}\n\nfunction make_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    source: object\n): MakeResult {\n    // getter -> computed\n    if (descriptor.get) {\n        return computed.make_(adm, key, descriptor, source)\n    }\n    // lone setter -> action setter\n    if (descriptor.set) {\n        // TODO make action applicable to setter and delegate to action.make_\n        const set = createAction(key.toString(), descriptor.set) as (v: any) => void\n        // own\n        if (source === adm.target_) {\n            return adm.defineProperty_(key, {\n                configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n                set\n            }) === null\n                ? MakeResult.Cancel\n                : MakeResult.Continue\n        }\n        // proto\n        defineProperty(source, key, {\n            configurable: true,\n            set\n        })\n        return MakeResult.Continue\n    }\n    // function on proto -> autoAction/flow\n    if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n        if (isGenerator(descriptor.value)) {\n            const flowAnnotation = this.options_?.autoBind ? flow.bound : flow\n            return flowAnnotation.make_(adm, key, descriptor, source)\n        }\n        const actionAnnotation = this.options_?.autoBind ? autoAction.bound : autoAction\n        return actionAnnotation.make_(adm, key, descriptor, source)\n    }\n    // other -> observable\n    // Copy props from proto as well, see test:\n    // \"decorate should work with Object.create\"\n    let observableAnnotation = this.options_?.deep === false ? observable.ref : observable\n    // if function respect autoBind option\n    if (typeof descriptor.value === \"function\" && this.options_?.autoBind) {\n        descriptor.value = descriptor.value.bind(adm.proxy_ ?? adm.target_)\n    }\n    return observableAnnotation.make_(adm, key, descriptor, source)\n}\n\nfunction extend_(\n    adm: ObservableObjectAdministration,\n    key: PropertyKey,\n    descriptor: PropertyDescriptor,\n    proxyTrap: boolean\n): boolean | null {\n    // getter -> computed\n    if (descriptor.get) {\n        return computed.extend_(adm, key, descriptor, proxyTrap)\n    }\n    // lone setter -> action setter\n    if (descriptor.set) {\n        // TODO make action applicable to setter and delegate to action.extend_\n        return adm.defineProperty_(\n            key,\n            {\n                configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n                set: createAction(key.toString(), descriptor.set) as (v: any) => void\n            },\n            proxyTrap\n        )\n    }\n    // other -> observable\n    // if function respect autoBind option\n    if (typeof descriptor.value === \"function\" && this.options_?.autoBind) {\n        descriptor.value = descriptor.value.bind(adm.proxy_ ?? adm.target_)\n    }\n    let observableAnnotation = this.options_?.deep === false ? observable.ref : observable\n    return observableAnnotation.extend_(adm, key, descriptor, proxyTrap)\n}\n","import {\n    IEnhancer,\n    IEqualsComparer,\n    IObservableArray,\n    IObservableMapInitialValues,\n    IObservableSetInitialValues,\n    IObservableValue,\n    ObservableMap,\n    ObservableSet,\n    ObservableValue,\n    asDynamicObservableObject,\n    createObservableArray,\n    deepEnhancer,\n    extendObservable,\n    isES6Map,\n    isES6Set,\n    isObservable,\n    isPlainObject,\n    referenceEnhancer,\n    Annotation,\n    shallowEnhancer,\n    refStructEnhancer,\n    AnnotationsMap,\n    asObservableObject,\n    storeAnnotation,\n    createDecoratorAnnotation,\n    createLegacyArray,\n    globalState,\n    assign,\n    isStringish,\n    createObservableAnnotation,\n    createAutoAnnotation\n} from \"../internal\"\n\nexport const OBSERVABLE = \"observable\"\nexport const OBSERVABLE_REF = \"observable.ref\"\nexport const OBSERVABLE_SHALLOW = \"observable.shallow\"\nexport const OBSERVABLE_STRUCT = \"observable.struct\"\n\nexport type CreateObservableOptions = {\n    name?: string\n    equals?: IEqualsComparer<any>\n    deep?: boolean\n    defaultDecorator?: Annotation\n    proxy?: boolean\n    autoBind?: boolean\n}\n\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nexport const defaultCreateObservableOptions: CreateObservableOptions = {\n    deep: true,\n    name: undefined,\n    defaultDecorator: undefined,\n    proxy: true\n}\nObject.freeze(defaultCreateObservableOptions)\n\nexport function asCreateObservableOptions(thing: any): CreateObservableOptions {\n    return thing || defaultCreateObservableOptions\n}\n\nconst observableAnnotation = createObservableAnnotation(OBSERVABLE)\nconst observableRefAnnotation = createObservableAnnotation(OBSERVABLE_REF, {\n    enhancer: referenceEnhancer\n})\nconst observableShallowAnnotation = createObservableAnnotation(OBSERVABLE_SHALLOW, {\n    enhancer: shallowEnhancer\n})\nconst observableStructAnnotation = createObservableAnnotation(OBSERVABLE_STRUCT, {\n    enhancer: refStructEnhancer\n})\nconst observableDecoratorAnnotation = createDecoratorAnnotation(observableAnnotation)\n\nexport function getEnhancerFromOptions(options: CreateObservableOptions): IEnhancer<any> {\n    return options.deep === true\n        ? deepEnhancer\n        : options.deep === false\n        ? referenceEnhancer\n        : getEnhancerFromAnnotation(options.defaultDecorator)\n}\n\nexport function getAnnotationFromOptions(\n    options?: CreateObservableOptions\n): Annotation | undefined {\n    return options ? options.defaultDecorator ?? createAutoAnnotation(options) : undefined\n}\n\nexport function getEnhancerFromAnnotation(annotation?: Annotation): IEnhancer<any> {\n    return !annotation ? deepEnhancer : annotation.options_?.enhancer ?? deepEnhancer\n}\n\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v: any, arg2?: any, arg3?: any) {\n    // @observable someProp;\n    if (isStringish(arg2)) {\n        storeAnnotation(v, arg2, observableAnnotation)\n        return\n    }\n\n    // already observable - ignore\n    if (isObservable(v)) {\n        return v\n    }\n\n    // plain object\n    if (isPlainObject(v)) {\n        return observable.object(v, arg2, arg3)\n    }\n\n    // Array\n    if (Array.isArray(v)) {\n        return observable.array(v, arg2)\n    }\n\n    // Map\n    if (isES6Map(v)) {\n        return observable.map(v, arg2)\n    }\n\n    // Set\n    if (isES6Set(v)) {\n        return observable.set(v, arg2)\n    }\n\n    // other object - ignore\n    if (typeof v === \"object\" && v !== null) {\n        return v\n    }\n\n    // anything else\n    return observable.box(v, arg2)\n}\nObject.assign(createObservable, observableDecoratorAnnotation)\n\nexport interface IObservableFactory extends Annotation, PropertyDecorator {\n    <T = any>(value: T[], options?: CreateObservableOptions): IObservableArray<T>\n    <T = any>(value: Set<T>, options?: CreateObservableOptions): ObservableSet<T>\n    <K = any, V = any>(value: Map<K, V>, options?: CreateObservableOptions): ObservableMap<K, V>\n    <T extends object>(\n        value: T,\n        decorators?: AnnotationsMap<T, never>,\n        options?: CreateObservableOptions\n    ): T\n\n    box: <T = any>(value?: T, options?: CreateObservableOptions) => IObservableValue<T>\n    array: <T = any>(initialValues?: T[], options?: CreateObservableOptions) => IObservableArray<T>\n    set: <T = any>(\n        initialValues?: IObservableSetInitialValues<T>,\n        options?: CreateObservableOptions\n    ) => ObservableSet<T>\n    map: <K = any, V = any>(\n        initialValues?: IObservableMapInitialValues<K, V>,\n        options?: CreateObservableOptions\n    ) => ObservableMap<K, V>\n    object: <T = any>(\n        props: T,\n        decorators?: AnnotationsMap<T, never>,\n        options?: CreateObservableOptions\n    ) => T\n\n    /**\n     * Decorator that creates an observable that only observes the references, but doesn't try to turn the assigned value into an observable.ts.\n     */\n    ref: Annotation & PropertyDecorator\n    /**\n     * Decorator that creates an observable converts its value (objects, maps or arrays) into a shallow observable structure\n     */\n    shallow: Annotation & PropertyDecorator\n    deep: Annotation & PropertyDecorator\n    struct: Annotation & PropertyDecorator\n}\n\nconst observableFactories: IObservableFactory = {\n    box<T = any>(value?: T, options?: CreateObservableOptions): IObservableValue<T> {\n        const o = asCreateObservableOptions(options)\n        return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals)\n    },\n    array<T = any>(initialValues?: T[], options?: CreateObservableOptions): IObservableArray<T> {\n        const o = asCreateObservableOptions(options)\n        return (\n            globalState.useProxies === false || o.proxy === false\n                ? createLegacyArray\n                : createObservableArray\n        )(initialValues, getEnhancerFromOptions(o), o.name)\n    },\n    map<K = any, V = any>(\n        initialValues?: IObservableMapInitialValues<K, V>,\n        options?: CreateObservableOptions\n    ): ObservableMap<K, V> {\n        const o = asCreateObservableOptions(options)\n        return new ObservableMap<K, V>(initialValues, getEnhancerFromOptions(o), o.name)\n    },\n    set<T = any>(\n        initialValues?: IObservableSetInitialValues<T>,\n        options?: CreateObservableOptions\n    ): ObservableSet<T> {\n        const o = asCreateObservableOptions(options)\n        return new ObservableSet<T>(initialValues, getEnhancerFromOptions(o), o.name)\n    },\n    object<T = any>(\n        props: T,\n        decorators?: AnnotationsMap<T, never>,\n        options?: CreateObservableOptions\n    ): T {\n        return extendObservable(\n            globalState.useProxies === false || options?.proxy === false\n                ? asObservableObject({}, options)\n                : asDynamicObservableObject({}, options),\n            props,\n            decorators\n        )\n    },\n    ref: createDecoratorAnnotation(observableRefAnnotation),\n    shallow: createDecoratorAnnotation(observableShallowAnnotation),\n    deep: observableDecoratorAnnotation,\n    struct: createDecoratorAnnotation(observableStructAnnotation)\n} as any\n\n// eslint-disable-next-line\nexport var observable: IObservableFactory = assign(createObservable, observableFactories)\n","import {\n    $mobx,\n    IIsObservableObject,\n    ObservableObjectAdministration,\n    warnAboutProxyRequirement,\n    assertProxies,\n    die,\n    isStringish,\n    globalState,\n    CreateObservableOptions,\n    asObservableObject\n} from \"../internal\"\n\nfunction getAdm(target): ObservableObjectAdministration {\n    return target[$mobx]\n}\n\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nconst objectProxyTraps: ProxyHandler<any> = {\n    has(target: IIsObservableObject, name: PropertyKey): boolean {\n        if (__DEV__ && globalState.trackingDerivation) {\n            warnAboutProxyRequirement(\n                \"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\"\n            )\n        }\n        return getAdm(target).has_(name)\n    },\n    get(target: IIsObservableObject, name: PropertyKey): any {\n        return getAdm(target).get_(name)\n    },\n    set(target: IIsObservableObject, name: PropertyKey, value: any): boolean {\n        if (!isStringish(name)) {\n            return false\n        }\n        if (__DEV__ && !getAdm(target).values_.has(name)) {\n            warnAboutProxyRequirement(\n                \"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\"\n            )\n        }\n        // null (intercepted) -> true (success)\n        return getAdm(target).set_(name, value, true) ?? true\n    },\n    deleteProperty(target: IIsObservableObject, name: PropertyKey): boolean {\n        if (__DEV__) {\n            warnAboutProxyRequirement(\n                \"delete properties from an observable object. Use 'remove' from 'mobx' instead.\"\n            )\n        }\n        if (!isStringish(name)) {\n            return false\n        }\n        // null (intercepted) -> true (success)\n        return getAdm(target).delete_(name, true) ?? true\n    },\n    defineProperty(\n        target: IIsObservableObject,\n        name: PropertyKey,\n        descriptor: PropertyDescriptor\n    ): boolean {\n        if (__DEV__) {\n            warnAboutProxyRequirement(\n                \"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\"\n            )\n        }\n        // null (intercepted) -> true (success)\n        return getAdm(target).defineProperty_(name, descriptor) ?? true\n    },\n    ownKeys(target: IIsObservableObject): ArrayLike<string | symbol> {\n        if (__DEV__ && globalState.trackingDerivation) {\n            warnAboutProxyRequirement(\n                \"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\"\n            )\n        }\n        return getAdm(target).ownKeys_()\n    },\n    preventExtensions(target) {\n        die(13)\n    }\n}\n\nexport function asDynamicObservableObject(\n    target: any,\n    options?: CreateObservableOptions\n): IIsObservableObject {\n    assertProxies()\n    target = asObservableObject(target, options)\n    return (target[$mobx].proxy_ ??= new Proxy(target, objectProxyTraps))\n}\n","import {\n    ComputedValue,\n    IComputedValueOptions,\n    Annotation,\n    storeAnnotation,\n    createDecoratorAnnotation,\n    isStringish,\n    isPlainObject,\n    isFunction,\n    die,\n    IComputedValue,\n    createComputedAnnotation,\n    comparer\n} from \"../internal\"\n\nexport const COMPUTED = \"computed\"\nexport const COMPUTED_STRUCT = \"computed.struct\"\n\nexport interface IComputedFactory extends Annotation, PropertyDecorator {\n    // @computed(opts)\n    <T>(options: IComputedValueOptions<T>): Annotation & PropertyDecorator\n    // computed(fn, opts)\n    <T>(func: () => T, options?: IComputedValueOptions<T>): IComputedValue<T>\n\n    struct: Annotation & PropertyDecorator\n}\n\nconst computedAnnotation = createComputedAnnotation(COMPUTED)\nconst computedStructAnnotation = createComputedAnnotation(COMPUTED_STRUCT, {\n    equals: comparer.structural\n})\n\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nexport const computed: IComputedFactory = function computed(arg1, arg2) {\n    if (isStringish(arg2)) {\n        // @computed\n        return storeAnnotation(arg1, arg2, computedAnnotation)\n    }\n    if (isPlainObject(arg1)) {\n        // @computed({ options })\n        return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1))\n    }\n\n    // computed(expr, options?)\n    if (__DEV__) {\n        if (!isFunction(arg1)) {\n            die(\"First argument to `computed` should be an expression.\")\n        }\n        if (isFunction(arg2)) {\n            die(\n                \"A setter as second argument is no longer supported, use `{ set: fn }` option instead\"\n            )\n        }\n    }\n    const opts: IComputedValueOptions<any> = isPlainObject(arg2) ? arg2 : {}\n    opts.get = arg1\n    opts.name ||= arg1.name || \"\" /* for generated name */\n\n    return new ComputedValue(opts)\n} as any\n\nObject.assign(computed, computedAnnotation)\n\ncomputed.struct = createDecoratorAnnotation(computedStructAnnotation)\n","import {\n    IDerivation,\n    endBatch,\n    globalState,\n    isSpyEnabled,\n    spyReportEnd,\n    spyReportStart,\n    startBatch,\n    untrackedEnd,\n    untrackedStart,\n    isFunction,\n    allowStateReadsStart,\n    allowStateReadsEnd,\n    ACTION,\n    EMPTY_ARRAY,\n    die,\n    getDescriptor\n} from \"../internal\"\n\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nlet currentActionId = 0\nlet nextActionId = 1\nconst isFunctionNameConfigurable = getDescriptor(() => {}, \"name\")?.configurable ?? false\n\n// we can safely recycle this object\nconst tmpNameDescriptor: PropertyDescriptor = {\n    value: \"action\",\n    configurable: true,\n    writable: false,\n    enumerable: false\n}\n\nexport function createAction(\n    actionName: string,\n    fn: Function,\n    autoAction: boolean = false,\n    ref?: Object\n): Function {\n    if (__DEV__) {\n        if (!isFunction(fn)) {\n            die(\"`action` can only be invoked on functions\")\n        }\n        if (typeof actionName !== \"string\" || !actionName) {\n            die(`actions should have valid names, got: '${actionName}'`)\n        }\n    }\n    function res() {\n        return executeAction(actionName, autoAction, fn, ref || this, arguments)\n    }\n    res.isMobxAction = true\n    if (isFunctionNameConfigurable) {\n        tmpNameDescriptor.value = actionName\n        Object.defineProperty(res, \"name\", tmpNameDescriptor)\n    }\n    return res\n}\n\nexport function executeAction(\n    actionName: string,\n    canRunAsDerivation: boolean,\n    fn: Function,\n    scope?: any,\n    args?: IArguments\n) {\n    const runInfo = _startAction(actionName, canRunAsDerivation, scope, args)\n    try {\n        return fn.apply(scope, args)\n    } catch (err) {\n        runInfo.error_ = err\n        throw err\n    } finally {\n        _endAction(runInfo)\n    }\n}\n\nexport interface IActionRunInfo {\n    prevDerivation_: IDerivation | null\n    prevAllowStateChanges_: boolean\n    prevAllowStateReads_: boolean\n    notifySpy_: boolean\n    startTime_: number\n    error_?: any\n    parentActionId_: number\n    actionId_: number\n    runAsAction_?: boolean\n}\n\nexport function _startAction(\n    actionName: string,\n    canRunAsDerivation: boolean, // true for autoAction\n    scope: any,\n    args?: IArguments\n): IActionRunInfo {\n    const notifySpy_ = __DEV__ && isSpyEnabled() && !!actionName\n    let startTime_: number = 0\n    if (__DEV__ && notifySpy_) {\n        startTime_ = Date.now()\n        const flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY\n        spyReportStart({\n            type: ACTION,\n            name: actionName,\n            object: scope,\n            arguments: flattenedArgs\n        })\n    }\n    const prevDerivation_ = globalState.trackingDerivation\n    const runAsAction = !canRunAsDerivation || !prevDerivation_\n    startBatch()\n    let prevAllowStateChanges_ = globalState.allowStateChanges // by default preserve previous allow\n    if (runAsAction) {\n        untrackedStart()\n        prevAllowStateChanges_ = allowStateChangesStart(true)\n    }\n    const prevAllowStateReads_ = allowStateReadsStart(true)\n    const runInfo = {\n        runAsAction_: runAsAction,\n        prevDerivation_,\n        prevAllowStateChanges_,\n        prevAllowStateReads_,\n        notifySpy_,\n        startTime_,\n        actionId_: nextActionId++,\n        parentActionId_: currentActionId\n    }\n    currentActionId = runInfo.actionId_\n    return runInfo\n}\n\nexport function _endAction(runInfo: IActionRunInfo) {\n    if (currentActionId !== runInfo.actionId_) {\n        die(30)\n    }\n    currentActionId = runInfo.parentActionId_\n\n    if (runInfo.error_ !== undefined) {\n        globalState.suppressReactionErrors = true\n    }\n    allowStateChangesEnd(runInfo.prevAllowStateChanges_)\n    allowStateReadsEnd(runInfo.prevAllowStateReads_)\n    endBatch()\n    if (runInfo.runAsAction_) {\n        untrackedEnd(runInfo.prevDerivation_)\n    }\n    if (__DEV__ && runInfo.notifySpy_) {\n        spyReportEnd({ time: Date.now() - runInfo.startTime_ })\n    }\n    globalState.suppressReactionErrors = false\n}\n\nexport function allowStateChanges<T>(allowStateChanges: boolean, func: () => T): T {\n    const prev = allowStateChangesStart(allowStateChanges)\n    try {\n        return func()\n    } finally {\n        allowStateChangesEnd(prev)\n    }\n}\n\nexport function allowStateChangesStart(allowStateChanges: boolean) {\n    const prev = globalState.allowStateChanges\n    globalState.allowStateChanges = allowStateChanges\n    return prev\n}\n\nexport function allowStateChangesEnd(prev: boolean) {\n    globalState.allowStateChanges = prev\n}\n","import {\n    Atom,\n    IEnhancer,\n    IInterceptable,\n    IEqualsComparer,\n    IInterceptor,\n    IListenable,\n    Lambda,\n    checkIfStateModificationsAreAllowed,\n    comparer,\n    createInstanceofPredicate,\n    getNextId,\n    hasInterceptors,\n    hasListeners,\n    interceptChange,\n    isSpyEnabled,\n    notifyListeners,\n    registerInterceptor,\n    registerListener,\n    spyReport,\n    spyReportEnd,\n    spyReportStart,\n    toPrimitive,\n    globalState,\n    IUNCHANGED,\n    UPDATE\n} from \"../internal\"\n\nexport interface IValueWillChange<T> {\n    object: IObservableValue<T>\n    type: \"update\"\n    newValue: T\n}\n\nexport type IValueDidChange<T = any> = {\n    type: \"update\"\n    observableKind: \"value\"\n    object: IObservableValue<T>\n    debugObjectName: string\n    newValue: unknown\n    oldValue: unknown\n}\nexport type IBoxDidChange<T = any> =\n    | {\n          type: \"create\"\n          observableKind: \"value\"\n          object: IObservableValue<T>\n          debugObjectName: string\n          newValue: unknown\n      }\n    | IValueDidChange<T>\n\nexport interface IObservableValue<T> {\n    get(): T\n    set(value: T): void\n    intercept_(handler: IInterceptor<IValueWillChange<T>>): Lambda\n    observe_(listener: (change: IValueDidChange<T>) => void, fireImmediately?: boolean): Lambda\n}\n\nconst CREATE = \"create\"\n\nexport class ObservableValue<T>\n    extends Atom\n    implements IObservableValue<T>, IInterceptable<IValueWillChange<T>>, IListenable\n{\n    hasUnreportedChange_ = false\n    interceptors_\n    changeListeners_\n    value_\n    dehancer: any\n\n    constructor(\n        value: T,\n        public enhancer: IEnhancer<T>,\n        public name_ = __DEV__ ? \"ObservableValue@\" + getNextId() : \"ObservableValue\",\n        notifySpy = true,\n        private equals: IEqualsComparer<any> = comparer.default\n    ) {\n        super(name_)\n        this.value_ = enhancer(value, undefined, name_)\n        if (__DEV__ && notifySpy && isSpyEnabled()) {\n            // only notify spy if this is a stand-alone observable\n            spyReport({\n                type: CREATE,\n                object: this,\n                observableKind: \"value\",\n                debugObjectName: this.name_,\n                newValue: \"\" + this.value_\n            })\n        }\n    }\n\n    private dehanceValue(value: T): T {\n        if (this.dehancer !== undefined) {\n            return this.dehancer(value)\n        }\n        return value\n    }\n\n    public set(newValue: T) {\n        const oldValue = this.value_\n        newValue = this.prepareNewValue_(newValue) as any\n        if (newValue !== globalState.UNCHANGED) {\n            const notifySpy = isSpyEnabled()\n            if (__DEV__ && notifySpy) {\n                spyReportStart({\n                    type: UPDATE,\n                    object: this,\n                    observableKind: \"value\",\n                    debugObjectName: this.name_,\n                    newValue,\n                    oldValue\n                })\n            }\n            this.setNewValue_(newValue)\n            if (__DEV__ && notifySpy) {\n                spyReportEnd()\n            }\n        }\n    }\n\n    private prepareNewValue_(newValue): T | IUNCHANGED {\n        checkIfStateModificationsAreAllowed(this)\n        if (hasInterceptors(this)) {\n            const change = interceptChange<IValueWillChange<T>>(this, {\n                object: this,\n                type: UPDATE,\n                newValue\n            })\n            if (!change) {\n                return globalState.UNCHANGED\n            }\n            newValue = change.newValue\n        }\n        // apply modifier\n        newValue = this.enhancer(newValue, this.value_, this.name_)\n        return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue\n    }\n\n    setNewValue_(newValue: T) {\n        const oldValue = this.value_\n        this.value_ = newValue\n        this.reportChanged()\n        if (hasListeners(this)) {\n            notifyListeners(this, {\n                type: UPDATE,\n                object: this,\n                newValue,\n                oldValue\n            })\n        }\n    }\n\n    public get(): T {\n        this.reportObserved()\n        return this.dehanceValue(this.value_)\n    }\n\n    intercept_(handler: IInterceptor<IValueWillChange<T>>): Lambda {\n        return registerInterceptor(this, handler)\n    }\n\n    observe_(listener: (change: IValueDidChange<T>) => void, fireImmediately?: boolean): Lambda {\n        if (fireImmediately) {\n            listener({\n                observableKind: \"value\",\n                debugObjectName: this.name_,\n                object: this,\n                type: UPDATE,\n                newValue: this.value_,\n                oldValue: undefined\n            })\n        }\n        return registerListener(this, listener)\n    }\n\n    raw() {\n        // used by MST ot get undehanced value\n        return this.value_\n    }\n\n    toJSON() {\n        return this.get()\n    }\n\n    toString() {\n        return `${this.name_}[${this.value_}]`\n    }\n\n    valueOf(): T {\n        return toPrimitive(this.get())\n    }\n\n    [Symbol.toPrimitive]() {\n        return this.valueOf()\n    }\n}\n\nexport const isObservableValue = createInstanceofPredicate(\"ObservableValue\", ObservableValue) as (\n    x: any\n) => x is IObservableValue<any>\n","import {\n    IAtom,\n    IDepTreeNode,\n    IObservable,\n    addObserver,\n    globalState,\n    isComputedValue,\n    removeObserver\n} from \"../internal\"\n\nexport enum IDerivationState_ {\n    // before being run or (outside batch and not being observed)\n    // at this point derivation is not holding any data about dependency tree\n    NOT_TRACKING_ = -1,\n    // no shallow dependency changed since last computation\n    // won't recalculate derivation\n    // this is what makes mobx fast\n    UP_TO_DATE_ = 0,\n    // some deep dependency changed, but don't know if shallow dependency changed\n    // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n    // currently only ComputedValue will propagate POSSIBLY_STALE\n    //\n    // having this state is second big optimization:\n    // don't have to recompute on every dependency change, but only when it's needed\n    POSSIBLY_STALE_ = 1,\n    // A shallow dependency has changed since last computation and the derivation\n    // will need to recompute when it's needed next.\n    STALE_ = 2\n}\n\nexport enum TraceMode {\n    NONE,\n    LOG,\n    BREAK\n}\n\n/**\n * A derivation is everything that can be derived from the state (all the atoms) in a pure manner.\n * See https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n */\nexport interface IDerivation extends IDepTreeNode {\n    observing_: IObservable[]\n    newObserving_: null | IObservable[]\n    dependenciesState_: IDerivationState_\n    /**\n     * Id of the current run of a derivation. Each time the derivation is tracked\n     * this number is increased by one. This number is globally unique\n     */\n    runId_: number\n    /**\n     * amount of dependencies used by the derivation in this run, which has not been bound yet.\n     */\n    unboundDepsCount_: number\n    onBecomeStale_(): void\n    isTracing_: TraceMode\n\n    /**\n     *  warn if the derivation has no dependencies after creation/update\n     */\n    requiresObservable_?: boolean\n}\n\nexport class CaughtException {\n    constructor(public cause: any) {\n        // Empty\n    }\n}\n\nexport function isCaughtException(e: any): e is CaughtException {\n    return e instanceof CaughtException\n}\n\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nexport function shouldCompute(derivation: IDerivation): boolean {\n    switch (derivation.dependenciesState_) {\n        case IDerivationState_.UP_TO_DATE_:\n            return false\n        case IDerivationState_.NOT_TRACKING_:\n        case IDerivationState_.STALE_:\n            return true\n        case IDerivationState_.POSSIBLY_STALE_: {\n            // state propagation can occur outside of action/reactive context #2195\n            const prevAllowStateReads = allowStateReadsStart(true)\n            const prevUntracked = untrackedStart() // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n            const obs = derivation.observing_,\n                l = obs.length\n            for (let i = 0; i < l; i++) {\n                const obj = obs[i]\n                if (isComputedValue(obj)) {\n                    if (globalState.disableErrorBoundaries) {\n                        obj.get()\n                    } else {\n                        try {\n                            obj.get()\n                        } catch (e) {\n                            // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n                            untrackedEnd(prevUntracked)\n                            allowStateReadsEnd(prevAllowStateReads)\n                            return true\n                        }\n                    }\n                    // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n                    // and `derivation` is an observer of `obj`\n                    // invariantShouldCompute(derivation)\n                    if ((derivation.dependenciesState_ as any) === IDerivationState_.STALE_) {\n                        untrackedEnd(prevUntracked)\n                        allowStateReadsEnd(prevAllowStateReads)\n                        return true\n                    }\n                }\n            }\n            changeDependenciesStateTo0(derivation)\n            untrackedEnd(prevUntracked)\n            allowStateReadsEnd(prevAllowStateReads)\n            return false\n        }\n    }\n}\n\nexport function isComputingDerivation() {\n    return globalState.trackingDerivation !== null // filter out actions inside computations\n}\n\nexport function checkIfStateModificationsAreAllowed(atom: IAtom) {\n    if (!__DEV__) {\n        return\n    }\n    const hasObservers = atom.observers_.size > 0\n    // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n    if (\n        !globalState.allowStateChanges &&\n        (hasObservers || globalState.enforceActions === \"always\")\n    ) {\n        console.warn(\n            \"[MobX] \" +\n                (globalState.enforceActions\n                    ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \"\n                    : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") +\n                atom.name_\n        )\n    }\n}\n\nexport function checkIfStateReadsAreAllowed(observable: IObservable) {\n    if (__DEV__ && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n        console.warn(\n            `[mobx] Observable '${observable.name_}' being read outside a reactive context.`\n        )\n    }\n}\n\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nexport function trackDerivedFunction<T>(derivation: IDerivation, f: () => T, context: any) {\n    const prevAllowStateReads = allowStateReadsStart(true)\n    // pre allocate array allocation + room for variation in deps\n    // array will be trimmed by bindDependencies\n    changeDependenciesStateTo0(derivation)\n    derivation.newObserving_ = new Array(derivation.observing_.length + 100)\n    derivation.unboundDepsCount_ = 0\n    derivation.runId_ = ++globalState.runId\n    const prevTracking = globalState.trackingDerivation\n    globalState.trackingDerivation = derivation\n    globalState.inBatch++\n    let result\n    if (globalState.disableErrorBoundaries === true) {\n        result = f.call(context)\n    } else {\n        try {\n            result = f.call(context)\n        } catch (e) {\n            result = new CaughtException(e)\n        }\n    }\n    globalState.inBatch--\n    globalState.trackingDerivation = prevTracking\n    bindDependencies(derivation)\n\n    warnAboutDerivationWithoutDependencies(derivation)\n    allowStateReadsEnd(prevAllowStateReads)\n    return result\n}\n\nfunction warnAboutDerivationWithoutDependencies(derivation: IDerivation) {\n    if (!__DEV__) {\n        return\n    }\n\n    if (derivation.observing_.length !== 0) {\n        return\n    }\n\n    if (globalState.reactionRequiresObservable || derivation.requiresObservable_) {\n        console.warn(\n            `[mobx] Derivation '${derivation.name_}' is created/updated without reading any observable value.`\n        )\n    }\n}\n\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation: IDerivation) {\n    // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n    const prevObserving = derivation.observing_\n    const observing = (derivation.observing_ = derivation.newObserving_!)\n    let lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_\n\n    // Go through all new observables and check diffValue: (this list can contain duplicates):\n    //   0: first occurrence, change to 1 and keep it\n    //   1: extra occurrence, drop it\n    let i0 = 0,\n        l = derivation.unboundDepsCount_\n    for (let i = 0; i < l; i++) {\n        const dep = observing[i]\n        if (dep.diffValue_ === 0) {\n            dep.diffValue_ = 1\n            if (i0 !== i) {\n                observing[i0] = dep\n            }\n            i0++\n        }\n\n        // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n        // not hitting the condition\n        if ((dep as any as IDerivation).dependenciesState_ > lowestNewObservingDerivationState) {\n            lowestNewObservingDerivationState = (dep as any as IDerivation).dependenciesState_\n        }\n    }\n    observing.length = i0\n\n    derivation.newObserving_ = null // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n\n    // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n    //   0: it's not in new observables, unobserve it\n    //   1: it keeps being observed, don't want to notify it. change to 0\n    l = prevObserving.length\n    while (l--) {\n        const dep = prevObserving[l]\n        if (dep.diffValue_ === 0) {\n            removeObserver(dep, derivation)\n        }\n        dep.diffValue_ = 0\n    }\n\n    // Go through all new observables and check diffValue: (now it should be unique)\n    //   0: it was set to 0 in last loop. don't need to do anything.\n    //   1: it wasn't observed, let's observe it. set back to 0\n    while (i0--) {\n        const dep = observing[i0]\n        if (dep.diffValue_ === 1) {\n            dep.diffValue_ = 0\n            addObserver(dep, derivation)\n        }\n    }\n\n    // Some new observed derivations may become stale during this derivation computation\n    // so they have had no chance to propagate staleness (#916)\n    if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n        derivation.dependenciesState_ = lowestNewObservingDerivationState\n        derivation.onBecomeStale_()\n    }\n}\n\nexport function clearObserving(derivation: IDerivation) {\n    // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n    const obs = derivation.observing_\n    derivation.observing_ = []\n    let i = obs.length\n    while (i--) {\n        removeObserver(obs[i], derivation)\n    }\n\n    derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_\n}\n\nexport function untracked<T>(action: () => T): T {\n    const prev = untrackedStart()\n    try {\n        return action()\n    } finally {\n        untrackedEnd(prev)\n    }\n}\n\nexport function untrackedStart(): IDerivation | null {\n    const prev = globalState.trackingDerivation\n    globalState.trackingDerivation = null\n    return prev\n}\n\nexport function untrackedEnd(prev: IDerivation | null) {\n    globalState.trackingDerivation = prev\n}\n\nexport function allowStateReadsStart(allowStateReads: boolean) {\n    const prev = globalState.allowStateReads\n    globalState.allowStateReads = allowStateReads\n    return prev\n}\n\nexport function allowStateReadsEnd(prev: boolean) {\n    globalState.allowStateReads = prev\n}\n\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nexport function changeDependenciesStateTo0(derivation: IDerivation) {\n    if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n        return\n    }\n    derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_\n\n    const obs = derivation.observing_\n    let i = obs.length\n    while (i--) {\n        obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_\n    }\n}\n","import {\n    CaughtException,\n    IDerivation,\n    IDerivationState_,\n    IEqualsComparer,\n    IObservable,\n    Lambda,\n    TraceMode,\n    autorun,\n    clearObserving,\n    comparer,\n    createAction,\n    createInstanceofPredicate,\n    endBatch,\n    getNextId,\n    globalState,\n    isCaughtException,\n    isSpyEnabled,\n    propagateChangeConfirmed,\n    propagateMaybeChanged,\n    reportObserved,\n    shouldCompute,\n    spyReport,\n    startBatch,\n    toPrimitive,\n    trackDerivedFunction,\n    untrackedEnd,\n    untrackedStart,\n    UPDATE,\n    die,\n    allowStateChangesStart,\n    allowStateChangesEnd\n} from \"../internal\"\n\nexport interface IComputedValue<T> {\n    get(): T\n    set(value: T): void\n    observe_(listener: (change: IComputedDidChange<T>) => void, fireImmediately?: boolean): Lambda\n}\n\nexport interface IComputedValueOptions<T> {\n    get?: () => T\n    set?: (value: T) => void\n    name?: string\n    equals?: IEqualsComparer<T>\n    context?: any\n    requiresReaction?: boolean\n    keepAlive?: boolean\n}\n\nexport type IComputedDidChange<T = any> = {\n    type: \"update\"\n    observableKind: \"computed\"\n    object: unknown\n    debugObjectName: string\n    newValue: T\n    oldValue: T | undefined\n}\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n *    give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n *    if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n *    go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nexport class ComputedValue<T> implements IObservable, IComputedValue<T>, IDerivation {\n    dependenciesState_ = IDerivationState_.NOT_TRACKING_\n    observing_: IObservable[] = [] // nodes we are looking at. Our value depends on these nodes\n    newObserving_ = null // during tracking it's an array with new observed observers\n    isBeingObserved_ = false\n    isPendingUnobservation_: boolean = false\n    observers_ = new Set<IDerivation>()\n    diffValue_ = 0\n    runId_ = 0\n    lastAccessedBy_ = 0\n    lowestObserverState_ = IDerivationState_.UP_TO_DATE_\n    unboundDepsCount_ = 0\n    protected value_: T | undefined | CaughtException = new CaughtException(null)\n    name_: string\n    triggeredBy_?: string\n    isComputing_: boolean = false // to check for cycles\n    isRunningSetter_: boolean = false\n    derivation: () => T // N.B: unminified as it is used by MST\n    setter_?: (value: T) => void\n    isTracing_: TraceMode = TraceMode.NONE\n    scope_: Object | undefined\n    private equals_: IEqualsComparer<any>\n    private requiresReaction_: boolean | undefined\n    keepAlive_: boolean\n\n    /**\n     * Create a new computed value based on a function expression.\n     *\n     * The `name` property is for debug purposes only.\n     *\n     * The `equals` property specifies the comparer function to use to determine if a newly produced\n     * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n     * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n     * Structural comparison can be convenient if you always produce a new aggregated object and\n     * don't want to notify observers if it is structurally the same.\n     * This is useful for working with vectors, mouse coordinates etc.\n     */\n    constructor(options: IComputedValueOptions<T>) {\n        if (!options.get) {\n            die(31)\n        }\n        this.derivation = options.get!\n        this.name_ = options.name || (__DEV__ ? \"ComputedValue@\" + getNextId() : \"ComputedValue\")\n        if (options.set) {\n            this.setter_ = createAction(\n                __DEV__ ? this.name_ + \"-setter\" : \"ComputedValue-setter\",\n                options.set\n            ) as any\n        }\n        this.equals_ =\n            options.equals ||\n            ((options as any).compareStructural || (options as any).struct\n                ? comparer.structural\n                : comparer.default)\n        this.scope_ = options.context\n        this.requiresReaction_ = options.requiresReaction\n        this.keepAlive_ = !!options.keepAlive\n    }\n\n    onBecomeStale_() {\n        propagateMaybeChanged(this)\n    }\n\n    public onBOL: Set<Lambda> | undefined\n    public onBUOL: Set<Lambda> | undefined\n\n    public onBO() {\n        if (this.onBOL) {\n            this.onBOL.forEach(listener => listener())\n        }\n    }\n\n    public onBUO() {\n        if (this.onBUOL) {\n            this.onBUOL.forEach(listener => listener())\n        }\n    }\n\n    /**\n     * Returns the current value of this computed value.\n     * Will evaluate its computation first if needed.\n     */\n    public get(): T {\n        if (this.isComputing_) {\n            die(32, this.name_, this.derivation)\n        }\n        if (\n            globalState.inBatch === 0 &&\n            // !globalState.trackingDerivatpion &&\n            this.observers_.size === 0 &&\n            !this.keepAlive_\n        ) {\n            if (shouldCompute(this)) {\n                this.warnAboutUntrackedRead_()\n                startBatch() // See perf test 'computed memoization'\n                this.value_ = this.computeValue_(false)\n                endBatch()\n            }\n        } else {\n            reportObserved(this)\n            if (shouldCompute(this)) {\n                let prevTrackingContext = globalState.trackingContext\n                if (this.keepAlive_ && !prevTrackingContext) {\n                    globalState.trackingContext = this\n                }\n                if (this.trackAndCompute()) {\n                    propagateChangeConfirmed(this)\n                }\n                globalState.trackingContext = prevTrackingContext\n            }\n        }\n        const result = this.value_!\n\n        if (isCaughtException(result)) {\n            throw result.cause\n        }\n        return result\n    }\n\n    public set(value: T) {\n        if (this.setter_) {\n            if (this.isRunningSetter_) {\n                die(33, this.name_)\n            }\n            this.isRunningSetter_ = true\n            try {\n                this.setter_.call(this.scope_, value)\n            } finally {\n                this.isRunningSetter_ = false\n            }\n        } else {\n            die(34, this.name_)\n        }\n    }\n\n    trackAndCompute(): boolean {\n        // N.B: unminified as it is used by MST\n        const oldValue = this.value_\n        const wasSuspended =\n            /* see #1208 */ this.dependenciesState_ === IDerivationState_.NOT_TRACKING_\n        const newValue = this.computeValue_(true)\n\n        const changed =\n            wasSuspended ||\n            isCaughtException(oldValue) ||\n            isCaughtException(newValue) ||\n            !this.equals_(oldValue, newValue)\n\n        if (changed) {\n            this.value_ = newValue\n\n            if (__DEV__ && isSpyEnabled()) {\n                spyReport({\n                    observableKind: \"computed\",\n                    debugObjectName: this.name_,\n                    object: this.scope_,\n                    type: \"update\",\n                    oldValue,\n                    newValue\n                } as IComputedDidChange)\n            }\n        }\n\n        return changed\n    }\n\n    computeValue_(track: boolean) {\n        this.isComputing_ = true\n        // don't allow state changes during computation\n        const prev = allowStateChangesStart(false)\n        let res: T | CaughtException\n        if (track) {\n            res = trackDerivedFunction(this, this.derivation, this.scope_)\n        } else {\n            if (globalState.disableErrorBoundaries === true) {\n                res = this.derivation.call(this.scope_)\n            } else {\n                try {\n                    res = this.derivation.call(this.scope_)\n                } catch (e) {\n                    res = new CaughtException(e)\n                }\n            }\n        }\n        allowStateChangesEnd(prev)\n        this.isComputing_ = false\n        return res\n    }\n\n    suspend_() {\n        if (!this.keepAlive_) {\n            clearObserving(this)\n            this.value_ = undefined // don't hold on to computed value!\n            if (__DEV__ && this.isTracing_ !== TraceMode.NONE) {\n                console.log(\n                    `[mobx.trace] Computed value '${this.name_}' was suspended and it will recompute on the next access.`\n                )\n            }\n        }\n    }\n\n    observe_(listener: (change: IComputedDidChange<T>) => void, fireImmediately?: boolean): Lambda {\n        let firstTime = true\n        let prevValue: T | undefined = undefined\n        return autorun(() => {\n            // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n            let newValue = this.get()\n            if (!firstTime || fireImmediately) {\n                const prevU = untrackedStart()\n                listener({\n                    observableKind: \"computed\",\n                    debugObjectName: this.name_,\n                    type: UPDATE,\n                    object: this,\n                    newValue,\n                    oldValue: prevValue\n                })\n                untrackedEnd(prevU)\n            }\n            firstTime = false\n            prevValue = newValue\n        })\n    }\n\n    warnAboutUntrackedRead_() {\n        if (!__DEV__) {\n            return\n        }\n        if (this.isTracing_ !== TraceMode.NONE) {\n            console.log(\n                `[mobx.trace] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.`\n            )\n        }\n        if (\n            typeof this.requiresReaction_ === \"boolean\"\n                ? this.requiresReaction_\n                : globalState.computedRequiresReaction\n        ) {\n            console.warn(\n                `[mobx] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.`\n            )\n        }\n    }\n\n    toString() {\n        return `${this.name_}[${this.derivation.toString()}]`\n    }\n\n    valueOf(): T {\n        return toPrimitive(this.get())\n    }\n\n    [Symbol.toPrimitive]() {\n        return this.valueOf()\n    }\n}\n\nexport const isComputedValue = createInstanceofPredicate(\"ComputedValue\", ComputedValue)\n","import {\n    Lambda,\n    ComputedValue,\n    IDependencyTree,\n    IDerivation,\n    IDerivationState_,\n    TraceMode,\n    getDependencyTree,\n    globalState,\n    runReactions,\n    checkIfStateReadsAreAllowed\n} from \"../internal\"\n\nexport interface IDepTreeNode {\n    name_: string\n    observing_?: IObservable[]\n}\n\nexport interface IObservable extends IDepTreeNode {\n    diffValue_: number\n    /**\n     * Id of the derivation *run* that last accessed this observable.\n     * If this id equals the *run* id of the current derivation,\n     * the dependency is already established\n     */\n    lastAccessedBy_: number\n    isBeingObserved_: boolean\n\n    lowestObserverState_: IDerivationState_ // Used to avoid redundant propagations\n    isPendingUnobservation_: boolean // Used to push itself to global.pendingUnobservations at most once per batch.\n\n    observers_: Set<IDerivation>\n\n    onBUO(): void\n    onBO(): void\n\n    onBUOL: Set<Lambda> | undefined\n    onBOL: Set<Lambda> | undefined\n}\n\nexport function hasObservers(observable: IObservable): boolean {\n    return observable.observers_ && observable.observers_.size > 0\n}\n\nexport function getObservers(observable: IObservable): Set<IDerivation> {\n    return observable.observers_\n}\n\n// function invariantObservers(observable: IObservable) {\n//     const list = observable.observers\n//     const map = observable.observersIndexes\n//     const l = list.length\n//     for (let i = 0; i < l; i++) {\n//         const id = list[i].__mapid\n//         if (i) {\n//             invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n//         } else {\n//             invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n//         }\n//     }\n//     invariant(\n//         list.length === 0 || Object.keys(map).length === list.length - 1,\n//         \"INTERNAL ERROR there is no junk in map\"\n//     )\n// }\nexport function addObserver(observable: IObservable, node: IDerivation) {\n    // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n    // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n    // invariantObservers(observable);\n\n    observable.observers_.add(node)\n    if (observable.lowestObserverState_ > node.dependenciesState_) {\n        observable.lowestObserverState_ = node.dependenciesState_\n    }\n\n    // invariantObservers(observable);\n    // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nexport function removeObserver(observable: IObservable, node: IDerivation) {\n    // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n    // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n    // invariantObservers(observable);\n    observable.observers_.delete(node)\n    if (observable.observers_.size === 0) {\n        // deleting last observer\n        queueForUnobservation(observable)\n    }\n    // invariantObservers(observable);\n    // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nexport function queueForUnobservation(observable: IObservable) {\n    if (observable.isPendingUnobservation_ === false) {\n        // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n        observable.isPendingUnobservation_ = true\n        globalState.pendingUnobservations.push(observable)\n    }\n}\n\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nexport function startBatch() {\n    globalState.inBatch++\n}\n\nexport function endBatch() {\n    if (--globalState.inBatch === 0) {\n        runReactions()\n        // the batch is actually about to finish, all unobserving should happen here.\n        const list = globalState.pendingUnobservations\n        for (let i = 0; i < list.length; i++) {\n            const observable = list[i]\n            observable.isPendingUnobservation_ = false\n            if (observable.observers_.size === 0) {\n                if (observable.isBeingObserved_) {\n                    // if this observable had reactive observers, trigger the hooks\n                    observable.isBeingObserved_ = false\n                    observable.onBUO()\n                }\n                if (observable instanceof ComputedValue) {\n                    // computed values are automatically teared down when the last observer leaves\n                    // this process happens recursively, this computed might be the last observabe of another, etc..\n                    observable.suspend_()\n                }\n            }\n        }\n        globalState.pendingUnobservations = []\n    }\n}\n\nexport function reportObserved(observable: IObservable): boolean {\n    checkIfStateReadsAreAllowed(observable)\n\n    const derivation = globalState.trackingDerivation\n    if (derivation !== null) {\n        /**\n         * Simple optimization, give each derivation run an unique id (runId)\n         * Check if last time this observable was accessed the same runId is used\n         * if this is the case, the relation is already known\n         */\n        if (derivation.runId_ !== observable.lastAccessedBy_) {\n            observable.lastAccessedBy_ = derivation.runId_\n            // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n            derivation.newObserving_![derivation.unboundDepsCount_++] = observable\n            if (!observable.isBeingObserved_ && globalState.trackingContext) {\n                observable.isBeingObserved_ = true\n                observable.onBO()\n            }\n        }\n        return true\n    } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n        queueForUnobservation(observable)\n    }\n\n    return false\n}\n\n// function invariantLOS(observable: IObservable, msg: string) {\n//     // it's expensive so better not run it in produciton. but temporarily helpful for testing\n//     const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n//     if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n//     throw new Error(\n//         \"lowestObserverState is wrong for \" +\n//             msg +\n//             \" because \" +\n//             min +\n//             \" < \" +\n//             observable.lowestObserverState\n//     )\n// }\n\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n\n// Called by Atom when its value changes\nexport function propagateChanged(observable: IObservable) {\n    // invariantLOS(observable, \"changed start\");\n    if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n        return\n    }\n    observable.lowestObserverState_ = IDerivationState_.STALE_\n\n    // Ideally we use for..of here, but the downcompiled version is really slow...\n    observable.observers_.forEach(d => {\n        if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n            if (__DEV__ && d.isTracing_ !== TraceMode.NONE) {\n                logTraceInfo(d, observable)\n            }\n            d.onBecomeStale_()\n        }\n        d.dependenciesState_ = IDerivationState_.STALE_\n    })\n    // invariantLOS(observable, \"changed end\");\n}\n\n// Called by ComputedValue when it recalculate and its value changed\nexport function propagateChangeConfirmed(observable: IObservable) {\n    // invariantLOS(observable, \"confirmed start\");\n    if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n        return\n    }\n    observable.lowestObserverState_ = IDerivationState_.STALE_\n\n    observable.observers_.forEach(d => {\n        if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n            d.dependenciesState_ = IDerivationState_.STALE_\n            if (__DEV__ && d.isTracing_ !== TraceMode.NONE) {\n                logTraceInfo(d, observable)\n            }\n        } else if (\n            d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n        ) {\n            observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_\n        }\n    })\n    // invariantLOS(observable, \"confirmed end\");\n}\n\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nexport function propagateMaybeChanged(observable: IObservable) {\n    // invariantLOS(observable, \"maybe start\");\n    if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n        return\n    }\n    observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_\n\n    observable.observers_.forEach(d => {\n        if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n            d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_\n            d.onBecomeStale_()\n        }\n    })\n    // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation: IDerivation, observable: IObservable) {\n    console.log(\n        `[mobx.trace] '${derivation.name_}' is invalidated due to a change in: '${observable.name_}'`\n    )\n    if (derivation.isTracing_ === TraceMode.BREAK) {\n        const lines = []\n        printDepTree(getDependencyTree(derivation), lines, 1)\n\n        // prettier-ignore\n        new Function(\n`debugger;\n/*\nTracing '${derivation.name_}'\n\nYou are entering this break point because derivation '${derivation.name_}' is being traced and '${observable.name_}' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n${derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\"}\n\nThe dependencies for this derivation are:\n\n${lines.join(\"\\n\")}\n*/\n    `)()\n    }\n}\n\nfunction printDepTree(tree: IDependencyTree, lines: string[], depth: number) {\n    if (lines.length >= 1000) {\n        lines.push(\"(and many more)\")\n        return\n    }\n    lines.push(`${\"\\t\".repeat(depth - 1)}${tree.name}`)\n    if (tree.dependencies) {\n        tree.dependencies.forEach(child => printDepTree(child, lines, depth + 1))\n    }\n}\n","import { IDerivation, IObservable, Reaction, die, getGlobal } from \"../internal\"\nimport { ComputedValue } from \"./computedvalue\"\n\n/**\n * These values will persist if global state is reset\n */\nconst persistentKeys: (keyof MobXGlobals)[] = [\n    \"mobxGuid\",\n    \"spyListeners\",\n    \"enforceActions\",\n    \"computedRequiresReaction\",\n    \"reactionRequiresObservable\",\n    \"observableRequiresReaction\",\n    \"allowStateReads\",\n    \"disableErrorBoundaries\",\n    \"runId\",\n    \"UNCHANGED\",\n    \"useProxies\"\n]\n\nexport type IUNCHANGED = {}\n\nexport class MobXGlobals {\n    /**\n     * MobXGlobals version.\n     * MobX compatiblity with other versions loaded in memory as long as this version matches.\n     * It indicates that the global state still stores similar information\n     *\n     * N.B: this version is unrelated to the package version of MobX, and is only the version of the\n     * internal state storage of MobX, and can be the same across many different package versions\n     */\n    version = 6\n\n    /**\n     * globally unique token to signal unchanged\n     */\n    UNCHANGED: IUNCHANGED = {}\n\n    /**\n     * Currently running derivation\n     */\n    trackingDerivation: IDerivation | null = null\n\n    /**\n     * Currently running reaction. This determines if we currently have a reactive context.\n     * (Tracking derivation is also set for temporal tracking of computed values inside actions,\n     * but trackingReaction can only be set by a form of Reaction)\n     */\n    trackingContext: Reaction | ComputedValue<any> | null = null\n\n    /**\n     * Each time a derivation is tracked, it is assigned a unique run-id\n     */\n    runId = 0\n\n    /**\n     * 'guid' for general purpose. Will be persisted amongst resets.\n     */\n    mobxGuid = 0\n\n    /**\n     * Are we in a batch block? (and how many of them)\n     */\n    inBatch: number = 0\n\n    /**\n     * Observables that don't have observers anymore, and are about to be\n     * suspended, unless somebody else accesses it in the same batch\n     *\n     * @type {IObservable[]}\n     */\n    pendingUnobservations: IObservable[] = []\n\n    /**\n     * List of scheduled, not yet executed, reactions.\n     */\n    pendingReactions: Reaction[] = []\n\n    /**\n     * Are we currently processing reactions?\n     */\n    isRunningReactions = false\n\n    /**\n     * Is it allowed to change observables at this point?\n     * In general, MobX doesn't allow that when running computations and React.render.\n     * To ensure that those functions stay pure.\n     */\n    allowStateChanges = false\n\n    /**\n     * Is it allowed to read observables at this point?\n     * Used to hold the state needed for `observableRequiresReaction`\n     */\n    allowStateReads = true\n\n    /**\n     * If strict mode is enabled, state changes are by default not allowed\n     */\n    enforceActions: boolean | \"always\" = true\n\n    /**\n     * Spy callbacks\n     */\n    spyListeners: { (change: any): void }[] = []\n\n    /**\n     * Globally attached error handlers that react specifically to errors in reactions\n     */\n    globalReactionErrorHandlers: ((error: any, derivation: IDerivation) => void)[] = []\n\n    /**\n     * Warn if computed values are accessed outside a reactive context\n     */\n    computedRequiresReaction = false\n\n    /**\n     * (Experimental)\n     * Warn if you try to create to derivation / reactive context without accessing any observable.\n     */\n    reactionRequiresObservable = false\n\n    /**\n     * (Experimental)\n     * Warn if observables are accessed outside a reactive context\n     */\n    observableRequiresReaction = false\n\n    /*\n     * Don't catch and rethrow exceptions. This is useful for inspecting the state of\n     * the stack when an exception occurs while debugging.\n     */\n    disableErrorBoundaries = false\n\n    /*\n     * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as\n     * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836\n     */\n    suppressReactionErrors = false\n\n    useProxies = true\n    /*\n     * print warnings about code that would fail if proxies weren't available\n     */\n    verifyProxies = false\n\n    /**\n     * False forces all object's descriptors to\n     * writable: true\n     * configurable: true\n     */\n    safeDescriptors = true\n}\n\nlet canMergeGlobalState = true\nlet isolateCalled = false\n\nexport let globalState: MobXGlobals = (function () {\n    let global = getGlobal()\n    if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n        canMergeGlobalState = false\n    }\n    if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n        canMergeGlobalState = false\n    }\n\n    if (!canMergeGlobalState) {\n        // Because this is a IIFE we need to let isolateCalled a chance to change\n        // so we run it after the event loop completed at least 1 iteration\n        setTimeout(() => {\n            if (!isolateCalled) {\n                die(35)\n            }\n        }, 1)\n        return new MobXGlobals()\n    } else if (global.__mobxGlobals) {\n        global.__mobxInstanceCount += 1\n        if (!global.__mobxGlobals.UNCHANGED) {\n            global.__mobxGlobals.UNCHANGED = {}\n        } // make merge backward compatible\n        return global.__mobxGlobals\n    } else {\n        global.__mobxInstanceCount = 1\n        return (global.__mobxGlobals = new MobXGlobals())\n    }\n})()\n\nexport function isolateGlobalState() {\n    if (\n        globalState.pendingReactions.length ||\n        globalState.inBatch ||\n        globalState.isRunningReactions\n    ) {\n        die(36)\n    }\n    isolateCalled = true\n    if (canMergeGlobalState) {\n        let global = getGlobal()\n        if (--global.__mobxInstanceCount === 0) {\n            global.__mobxGlobals = undefined\n        }\n        globalState = new MobXGlobals()\n    }\n}\n\nexport function getGlobalState(): any {\n    return globalState\n}\n\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nexport function resetGlobalState() {\n    const defaultGlobals = new MobXGlobals()\n    for (let key in defaultGlobals) {\n        if (persistentKeys.indexOf(key as any) === -1) {\n            globalState[key] = defaultGlobals[key]\n        }\n    }\n    globalState.allowStateChanges = !globalState.enforceActions\n}\n","import {\n    $mobx,\n    IDerivation,\n    IDerivationState_,\n    IObservable,\n    Lambda,\n    TraceMode,\n    clearObserving,\n    createInstanceofPredicate,\n    endBatch,\n    getNextId,\n    globalState,\n    isCaughtException,\n    isSpyEnabled,\n    shouldCompute,\n    spyReport,\n    spyReportEnd,\n    spyReportStart,\n    startBatch,\n    trace,\n    trackDerivedFunction\n} from \"../internal\"\n\n/**\n * Reactions are a special kind of derivations. Several things distinguishes them from normal reactive computations\n *\n * 1) They will always run, whether they are used by other computations or not.\n * This means that they are very suitable for triggering side effects like logging, updating the DOM and making network requests.\n * 2) They are not observable themselves\n * 3) They will always run after any 'normal' derivations\n * 4) They are allowed to change the state and thereby triggering themselves again, as long as they make sure the state propagates to a stable state in a reasonable amount of iterations.\n *\n * The state machine of a Reaction is as follows:\n *\n * 1) after creating, the reaction should be started by calling `runReaction` or by scheduling it (see also `autorun`)\n * 2) the `onInvalidate` handler should somehow result in a call to `this.track(someFunction)`\n * 3) all observables accessed in `someFunction` will be observed by this reaction.\n * 4) as soon as some of the dependencies has changed the Reaction will be rescheduled for another run (after the current mutation or transaction). `isScheduled` will yield true once a dependency is stale and during this period\n * 5) `onInvalidate` will be called, and we are back at step 1.\n *\n */\n\nexport interface IReactionPublic {\n    dispose(): void\n    trace(enterBreakPoint?: boolean): void\n}\n\nexport interface IReactionDisposer {\n    (): void\n    $mobx: Reaction\n}\n\nexport class Reaction implements IDerivation, IReactionPublic {\n    observing_: IObservable[] = [] // nodes we are looking at. Our value depends on these nodes\n    newObserving_: IObservable[] = []\n    dependenciesState_ = IDerivationState_.NOT_TRACKING_\n    diffValue_ = 0\n    runId_ = 0\n    unboundDepsCount_ = 0\n    isDisposed_ = false\n    isScheduled_ = false\n    isTrackPending_ = false\n    isRunning_ = false\n    isTracing_: TraceMode = TraceMode.NONE\n\n    constructor(\n        public name_: string = __DEV__ ? \"Reaction@\" + getNextId() : \"Reaction\",\n        private onInvalidate_: () => void,\n        private errorHandler_?: (error: any, derivation: IDerivation) => void,\n        public requiresObservable_ = false\n    ) {}\n\n    onBecomeStale_() {\n        this.schedule_()\n    }\n\n    schedule_() {\n        if (!this.isScheduled_) {\n            this.isScheduled_ = true\n            globalState.pendingReactions.push(this)\n            runReactions()\n        }\n    }\n\n    isScheduled() {\n        return this.isScheduled_\n    }\n\n    /**\n     * internal, use schedule() if you intend to kick off a reaction\n     */\n    runReaction_() {\n        if (!this.isDisposed_) {\n            startBatch()\n            this.isScheduled_ = false\n            const prev = globalState.trackingContext\n            globalState.trackingContext = this\n            if (shouldCompute(this)) {\n                this.isTrackPending_ = true\n\n                try {\n                    this.onInvalidate_()\n                    if (__DEV__ && this.isTrackPending_ && isSpyEnabled()) {\n                        // onInvalidate didn't trigger track right away..\n                        spyReport({\n                            name: this.name_,\n                            type: \"scheduled-reaction\"\n                        })\n                    }\n                } catch (e) {\n                    this.reportExceptionInDerivation_(e)\n                }\n            }\n            globalState.trackingContext = prev\n            endBatch()\n        }\n    }\n\n    track(fn: () => void) {\n        if (this.isDisposed_) {\n            return\n            // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n        }\n        startBatch()\n        const notify = isSpyEnabled()\n        let startTime\n        if (__DEV__ && notify) {\n            startTime = Date.now()\n            spyReportStart({\n                name: this.name_,\n                type: \"reaction\"\n            })\n        }\n        this.isRunning_ = true\n        const prevReaction = globalState.trackingContext // reactions could create reactions...\n        globalState.trackingContext = this\n        const result = trackDerivedFunction(this, fn, undefined)\n        globalState.trackingContext = prevReaction\n        this.isRunning_ = false\n        this.isTrackPending_ = false\n        if (this.isDisposed_) {\n            // disposed during last run. Clean up everything that was bound after the dispose call.\n            clearObserving(this)\n        }\n        if (isCaughtException(result)) {\n            this.reportExceptionInDerivation_(result.cause)\n        }\n        if (__DEV__ && notify) {\n            spyReportEnd({\n                time: Date.now() - startTime\n            })\n        }\n        endBatch()\n    }\n\n    reportExceptionInDerivation_(error: any) {\n        if (this.errorHandler_) {\n            this.errorHandler_(error, this)\n            return\n        }\n\n        if (globalState.disableErrorBoundaries) {\n            throw error\n        }\n\n        const message = __DEV__\n            ? `[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`\n            : `[mobx] uncaught error in '${this}'`\n        if (!globalState.suppressReactionErrors) {\n            console.error(message, error)\n            /** If debugging brought you here, please, read the above message :-). Tnx! */\n        } else if (__DEV__) {console.warn(`[mobx] (error in reaction '${this.name_}' suppressed, fix error of causing action below)`)} // prettier-ignore\n\n        if (__DEV__ && isSpyEnabled()) {\n            spyReport({\n                type: \"error\",\n                name: this.name_,\n                message,\n                error: \"\" + error\n            })\n        }\n\n        globalState.globalReactionErrorHandlers.forEach(f => f(error, this))\n    }\n\n    dispose() {\n        if (!this.isDisposed_) {\n            this.isDisposed_ = true\n            if (!this.isRunning_) {\n                // if disposed while running, clean up later. Maybe not optimal, but rare case\n                startBatch()\n                clearObserving(this)\n                endBatch()\n            }\n        }\n    }\n\n    getDisposer_(): IReactionDisposer {\n        const r = this.dispose.bind(this) as IReactionDisposer\n        r[$mobx] = this\n        return r\n    }\n\n    toString() {\n        return `Reaction[${this.name_}]`\n    }\n\n    trace(enterBreakPoint: boolean = false) {\n        trace(this, enterBreakPoint)\n    }\n}\n\nexport function onReactionError(handler: (error: any, derivation: IDerivation) => void): Lambda {\n    globalState.globalReactionErrorHandlers.push(handler)\n    return () => {\n        const idx = globalState.globalReactionErrorHandlers.indexOf(handler)\n        if (idx >= 0) {\n            globalState.globalReactionErrorHandlers.splice(idx, 1)\n        }\n    }\n}\n\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nconst MAX_REACTION_ITERATIONS = 100\n\nlet reactionScheduler: (fn: () => void) => void = f => f()\n\nexport function runReactions() {\n    // Trampolining, if runReactions are already running, new reactions will be picked up\n    if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n        return\n    }\n    reactionScheduler(runReactionsHelper)\n}\n\nfunction runReactionsHelper() {\n    globalState.isRunningReactions = true\n    const allReactions = globalState.pendingReactions\n    let iterations = 0\n\n    // While running reactions, new reactions might be triggered.\n    // Hence we work with two variables and check whether\n    // we converge to no remaining reactions after a while.\n    while (allReactions.length > 0) {\n        if (++iterations === MAX_REACTION_ITERATIONS) {\n            console.error(\n                __DEV__\n                    ? `Reaction doesn't converge to a stable state after ${MAX_REACTION_ITERATIONS} iterations.` +\n                          ` Probably there is a cycle in the reactive function: ${allReactions[0]}`\n                    : `[mobx] cycle in reaction: ${allReactions[0]}`\n            )\n            allReactions.splice(0) // clear reactions\n        }\n        let remainingReactions = allReactions.splice(0)\n        for (let i = 0, l = remainingReactions.length; i < l; i++) {\n            remainingReactions[i].runReaction_()\n        }\n    }\n    globalState.isRunningReactions = false\n}\n\nexport const isReaction = createInstanceofPredicate(\"Reaction\", Reaction)\n\nexport function setReactionScheduler(fn: (f: () => void) => void) {\n    const baseScheduler = reactionScheduler\n    reactionScheduler = f => fn(() => baseScheduler(f))\n}\n","import { TraceMode, die, getAtom, globalState } from \"../internal\"\n\nexport function trace(thing?: any, prop?: string, enterBreakPoint?: boolean): void\nexport function trace(thing?: any, enterBreakPoint?: boolean): void\nexport function trace(enterBreakPoint?: boolean): void\nexport function trace(...args: any[]): void {\n    if (!__DEV__) {\n        die(`trace() is not available in production builds`)\n    }\n    let enterBreakPoint = false\n    if (typeof args[args.length - 1] === \"boolean\") {\n        enterBreakPoint = args.pop()\n    }\n    const derivation = getAtomFromArgs(args)\n    if (!derivation) {\n        return die(\n            `'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly`\n        )\n    }\n    if (derivation.isTracing_ === TraceMode.NONE) {\n        console.log(`[mobx.trace] '${derivation.name_}' tracing enabled`)\n    }\n    derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG\n}\n\nfunction getAtomFromArgs(args): any {\n    switch (args.length) {\n        case 0:\n            return globalState.trackingDerivation\n        case 1:\n            return getAtom(args[0])\n        case 2:\n            return getAtom(args[0], args[1])\n    }\n}\n","import {\n    createAction,\n    executeAction,\n    Annotation,\n    storeAnnotation,\n    die,\n    isFunction,\n    isStringish,\n    createDecoratorAnnotation,\n    createActionAnnotation\n} from \"../internal\"\n\nexport const ACTION = \"action\"\nexport const ACTION_BOUND = \"action.bound\"\nexport const AUTOACTION = \"autoAction\"\nexport const AUTOACTION_BOUND = \"autoAction.bound\"\n\nconst DEFAULT_ACTION_NAME = \"<unnamed action>\"\n\nconst actionAnnotation = createActionAnnotation(ACTION)\nconst actionBoundAnnotation = createActionAnnotation(ACTION_BOUND, {\n    bound: true\n})\nconst autoActionAnnotation = createActionAnnotation(AUTOACTION, {\n    autoAction: true\n})\nconst autoActionBoundAnnotation = createActionAnnotation(AUTOACTION_BOUND, {\n    autoAction: true,\n    bound: true\n})\n\nexport interface IActionFactory extends Annotation, PropertyDecorator {\n    // nameless actions\n    <T extends Function | undefined | null>(fn: T): T\n    // named actions\n    <T extends Function | undefined | null>(name: string, fn: T): T\n\n    // named decorator\n    (customName: string): PropertyDecorator & Annotation\n\n    // decorator (name no longer supported)\n    bound: Annotation & PropertyDecorator\n}\n\nfunction createActionFactory(autoAction: boolean): IActionFactory {\n    const res: IActionFactory = function action(arg1, arg2?): any {\n        // action(fn() {})\n        if (isFunction(arg1)) {\n            return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction)\n        }\n        // action(\"name\", fn() {})\n        if (isFunction(arg2)) {\n            return createAction(arg1, arg2, autoAction)\n        }\n        // @action\n        if (isStringish(arg2)) {\n            return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation)\n        }\n        // action(\"name\") & @action(\"name\")\n        if (isStringish(arg1)) {\n            return createDecoratorAnnotation(\n                createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n                    name: arg1,\n                    autoAction\n                })\n            )\n        }\n\n        if (__DEV__) {\n            die(\"Invalid arguments for `action`\")\n        }\n    } as IActionFactory\n    return res\n}\n\nexport const action: IActionFactory = createActionFactory(false)\nObject.assign(action, actionAnnotation)\nexport const autoAction: IActionFactory = createActionFactory(true)\nObject.assign(autoAction, autoActionAnnotation)\n\naction.bound = createDecoratorAnnotation(actionBoundAnnotation)\nautoAction.bound = createDecoratorAnnotation(autoActionBoundAnnotation)\n\nexport function runInAction<T>(fn: () => T): T {\n    return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined)\n}\n\nexport function isAction(thing: any) {\n    return isFunction(thing) && thing.isMobxAction === true\n}\n","import {\n    EMPTY_OBJECT,\n    IEqualsComparer,\n    IReactionDisposer,\n    IReactionPublic,\n    Lambda,\n    Reaction,\n    action,\n    comparer,\n    getNextId,\n    isAction,\n    isFunction,\n    isPlainObject,\n    die,\n    allowStateChanges\n} from \"../internal\"\n\nexport interface IAutorunOptions {\n    delay?: number\n    name?: string\n    /**\n     * Experimental.\n     * Warns if the view doesn't track observables\n     */\n    requiresObservable?: boolean\n    scheduler?: (callback: () => void) => any\n    onError?: (error: any) => void\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nexport function autorun(\n    view: (r: IReactionPublic) => any,\n    opts: IAutorunOptions = EMPTY_OBJECT\n): IReactionDisposer {\n    if (__DEV__) {\n        if (!isFunction(view)) {\n            die(\"Autorun expects a function as first argument\")\n        }\n        if (isAction(view)) {\n            die(\"Autorun does not accept actions since actions are untrackable\")\n        }\n    }\n\n    const name: string =\n        opts?.name ?? (__DEV__ ? (view as any).name || \"Autorun@\" + getNextId() : \"Autorun\")\n    const runSync = !opts.scheduler && !opts.delay\n    let reaction: Reaction\n\n    if (runSync) {\n        // normal autorun\n        reaction = new Reaction(\n            name,\n            function (this: Reaction) {\n                this.track(reactionRunner)\n            },\n            opts.onError,\n            opts.requiresObservable\n        )\n    } else {\n        const scheduler = createSchedulerFromOptions(opts)\n        // debounced autorun\n        let isScheduled = false\n\n        reaction = new Reaction(\n            name,\n            () => {\n                if (!isScheduled) {\n                    isScheduled = true\n                    scheduler(() => {\n                        isScheduled = false\n                        if (!reaction.isDisposed_) {\n                            reaction.track(reactionRunner)\n                        }\n                    })\n                }\n            },\n            opts.onError,\n            opts.requiresObservable\n        )\n    }\n\n    function reactionRunner() {\n        view(reaction)\n    }\n\n    reaction.schedule_()\n    return reaction.getDisposer_()\n}\n\nexport type IReactionOptions<T, FireImmediately extends boolean> = IAutorunOptions & {\n    fireImmediately?: FireImmediately\n    equals?: IEqualsComparer<T>\n}\n\nconst run = (f: Lambda) => f()\n\nfunction createSchedulerFromOptions(opts: IAutorunOptions) {\n    return opts.scheduler\n        ? opts.scheduler\n        : opts.delay\n        ? (f: Lambda) => setTimeout(f, opts.delay!)\n        : run\n}\n\nexport function reaction<T, FireImmediately extends boolean = false>(\n    expression: (r: IReactionPublic) => T,\n    effect: (\n        arg: T,\n        prev: FireImmediately extends true ? T | undefined : T,\n        r: IReactionPublic\n    ) => void,\n    opts: IReactionOptions<T, FireImmediately> = EMPTY_OBJECT\n): IReactionDisposer {\n    if (__DEV__) {\n        if (!isFunction(expression) || !isFunction(effect)) {\n            die(\"First and second argument to reaction should be functions\")\n        }\n        if (!isPlainObject(opts)) {\n            die(\"Third argument of reactions should be an object\")\n        }\n    }\n    const name = opts.name ?? (__DEV__ ? \"Reaction@\" + getNextId() : \"Reaction\")\n    const effectAction = action(\n        name,\n        opts.onError ? wrapErrorHandler(opts.onError, effect) : effect\n    )\n    const runSync = !opts.scheduler && !opts.delay\n    const scheduler = createSchedulerFromOptions(opts)\n\n    let firstTime = true\n    let isScheduled = false\n    let value: T\n    let oldValue: T | undefined\n\n    const equals: IEqualsComparer<T> = (opts as any).compareStructural\n        ? comparer.structural\n        : opts.equals || comparer.default\n\n    const r = new Reaction(\n        name,\n        () => {\n            if (firstTime || runSync) {\n                reactionRunner()\n            } else if (!isScheduled) {\n                isScheduled = true\n                scheduler!(reactionRunner)\n            }\n        },\n        opts.onError,\n        opts.requiresObservable\n    )\n\n    function reactionRunner() {\n        isScheduled = false\n        if (r.isDisposed_) {\n            return\n        }\n        let changed: boolean = false\n        r.track(() => {\n            const nextValue = allowStateChanges(false, () => expression(r))\n            changed = firstTime || !equals(value, nextValue)\n            oldValue = value\n            value = nextValue\n        })\n\n        // This casting is nesessary as TS cannot infer proper type in current funciton implementation\n        type OldValue = FireImmediately extends true ? T | undefined : T\n        if (firstTime && opts.fireImmediately!) {\n            effectAction(value, oldValue as OldValue, r)\n        } else if (!firstTime && changed) {\n            effectAction(value, oldValue as OldValue, r)\n        }\n        firstTime = false\n    }\n\n    r.schedule_()\n    return r.getDisposer_()\n}\n\nfunction wrapErrorHandler(errorHandler, baseFn) {\n    return function () {\n        try {\n            return baseFn.apply(this, arguments)\n        } catch (e) {\n            errorHandler.call(this, e)\n        }\n    }\n}\n","import { globalState, isolateGlobalState, setReactionScheduler } from \"../internal\"\n\nconst NEVER = \"never\"\nconst ALWAYS = \"always\"\nconst OBSERVED = \"observed\"\n// const IF_AVAILABLE = \"ifavailable\"\n\nexport function configure(options: {\n    enforceActions?: \"never\" | \"always\" | \"observed\"\n    computedRequiresReaction?: boolean\n    /**\n     * Warn if you try to create to derivation / reactive context without accessing any observable.\n     */\n    reactionRequiresObservable?: boolean\n    /**\n     * Warn if observables are accessed outside a reactive context\n     */\n    observableRequiresReaction?: boolean\n    isolateGlobalState?: boolean\n    disableErrorBoundaries?: boolean\n    safeDescriptors?: boolean\n    reactionScheduler?: (f: () => void) => void\n    useProxies?: \"always\" | \"never\" | \"ifavailable\"\n}): void {\n    if (options.isolateGlobalState === true) {\n        isolateGlobalState()\n    }\n    const { useProxies, enforceActions } = options\n    if (useProxies !== undefined) {\n        globalState.useProxies =\n            useProxies === ALWAYS\n                ? true\n                : useProxies === NEVER\n                ? false\n                : typeof Proxy !== \"undefined\"\n    }\n    if (useProxies === \"ifavailable\") {\n        globalState.verifyProxies = true\n    }\n    if (enforceActions !== undefined) {\n        const ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED\n        globalState.enforceActions = ea\n        globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true\n    }\n    ;[\n        \"computedRequiresReaction\",\n        \"reactionRequiresObservable\",\n        \"observableRequiresReaction\",\n        \"disableErrorBoundaries\",\n        \"safeDescriptors\"\n    ].forEach(key => {\n        if (key in options) {\n            globalState[key] = !!options[key]\n        }\n    })\n    globalState.allowStateReads = !globalState.observableRequiresReaction\n    if (__DEV__ && globalState.disableErrorBoundaries === true) {\n        console.warn(\n            \"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\"\n        )\n    }\n    if (options.reactionScheduler) {\n        setReactionScheduler(options.reactionScheduler)\n    }\n}\n","import {\n    CreateObservableOptions,\n    isObservableMap,\n    AnnotationsMap,\n    startBatch,\n    endBatch,\n    asObservableObject,\n    isPlainObject,\n    ObservableObjectAdministration,\n    isObservable,\n    die,\n    getOwnPropertyDescriptors,\n    $mobx,\n    ownKeys\n} from \"../internal\"\n\nexport function extendObservable<A extends Object, B extends Object>(\n    target: A,\n    properties: B,\n    annotations?: AnnotationsMap<B, never>,\n    options?: CreateObservableOptions\n): A & B {\n    if (__DEV__) {\n        if (arguments.length > 4) {\n            die(\"'extendObservable' expected 2-4 arguments\")\n        }\n        if (typeof target !== \"object\") {\n            die(\"'extendObservable' expects an object as first argument\")\n        }\n        if (isObservableMap(target)) {\n            die(\"'extendObservable' should not be used on maps, use map.merge instead\")\n        }\n        if (!isPlainObject(properties)) {\n            die(`'extendObservable' only accepts plain objects as second argument`)\n        }\n        if (isObservable(properties) || isObservable(annotations)) {\n            die(`Extending an object with another observable (object) is not supported`)\n        }\n    }\n    // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n    const descriptors = getOwnPropertyDescriptors(properties)\n\n    const adm: ObservableObjectAdministration = asObservableObject(target, options)[$mobx]\n    startBatch()\n    try {\n        ownKeys(descriptors).forEach(key => {\n            adm.extend_(\n                key,\n                descriptors[key as any],\n                // must pass \"undefined\" for { key: undefined }\n                !annotations ? true : key in annotations ? annotations[key] : true\n            )\n        })\n    } finally {\n        endBatch()\n    }\n    return target as any\n}\n","import { IDepTreeNode, getAtom, getObservers, hasObservers } from \"../internal\"\n\nexport interface IDependencyTree {\n    name: string\n    dependencies?: IDependencyTree[]\n}\n\nexport interface IObserverTree {\n    name: string\n    observers?: IObserverTree[]\n}\n\nexport function getDependencyTree(thing: any, property?: string): IDependencyTree {\n    return nodeToDependencyTree(getAtom(thing, property))\n}\n\nfunction nodeToDependencyTree(node: IDepTreeNode): IDependencyTree {\n    const result: IDependencyTree = {\n        name: node.name_\n    }\n    if (node.observing_ && node.observing_.length > 0) {\n        result.dependencies = unique(node.observing_).map(nodeToDependencyTree)\n    }\n    return result\n}\n\nexport function getObserverTree(thing: any, property?: string): IObserverTree {\n    return nodeToObserverTree(getAtom(thing, property))\n}\n\nfunction nodeToObserverTree(node: IDepTreeNode): IObserverTree {\n    const result: IObserverTree = {\n        name: node.name_\n    }\n    if (hasObservers(node as any)) {\n        result.observers = Array.from(<any>getObservers(node as any)).map(<any>nodeToObserverTree)\n    }\n    return result\n}\n\nfunction unique<T>(list: T[]): T[] {\n    return Array.from(new Set(list))\n}\n","import {\n    action,\n    noop,\n    die,\n    isFunction,\n    Annotation,\n    isStringish,\n    storeAnnotation,\n    createFlowAnnotation,\n    createDecoratorAnnotation\n} from \"../internal\"\n\nexport const FLOW = \"flow\"\n\nlet generatorId = 0\n\nexport function FlowCancellationError() {\n    this.message = \"FLOW_CANCELLED\"\n}\nFlowCancellationError.prototype = Object.create(Error.prototype)\n\nexport function isFlowCancellationError(error: Error) {\n    return error instanceof FlowCancellationError\n}\n\nexport type CancellablePromise<T> = Promise<T> & { cancel(): void }\n\ninterface Flow extends Annotation, PropertyDecorator {\n    <R, Args extends any[]>(\n        generator: (...args: Args) => Generator<any, R, any> | AsyncGenerator<any, R, any>\n    ): (...args: Args) => CancellablePromise<R>\n    bound: Annotation & PropertyDecorator\n}\n\nconst flowAnnotation = createFlowAnnotation(\"flow\")\nconst flowBoundAnnotation = createFlowAnnotation(\"flow.bound\", { bound: true })\n\nexport const flow: Flow = Object.assign(\n    function flow(arg1, arg2?) {\n        // @flow\n        if (isStringish(arg2)) {\n            return storeAnnotation(arg1, arg2, flowAnnotation)\n        }\n        // flow(fn)\n        if (__DEV__ && arguments.length !== 1) {\n            die(`Flow expects single argument with generator function`)\n        }\n        const generator = arg1\n        const name = generator.name || \"<unnamed flow>\"\n\n        // Implementation based on https://github.com/tj/co/blob/master/index.js\n        const res = function () {\n            const ctx = this\n            const args = arguments\n            const runId = ++generatorId\n            const gen = action(`${name} - runid: ${runId} - init`, generator).apply(ctx, args)\n            let rejector: (error: any) => void\n            let pendingPromise: CancellablePromise<any> | undefined = undefined\n\n            const promise = new Promise(function (resolve, reject) {\n                let stepId = 0\n                rejector = reject\n\n                function onFulfilled(res: any) {\n                    pendingPromise = undefined\n                    let ret\n                    try {\n                        ret = action(\n                            `${name} - runid: ${runId} - yield ${stepId++}`,\n                            gen.next\n                        ).call(gen, res)\n                    } catch (e) {\n                        return reject(e)\n                    }\n\n                    next(ret)\n                }\n\n                function onRejected(err: any) {\n                    pendingPromise = undefined\n                    let ret\n                    try {\n                        ret = action(\n                            `${name} - runid: ${runId} - yield ${stepId++}`,\n                            gen.throw!\n                        ).call(gen, err)\n                    } catch (e) {\n                        return reject(e)\n                    }\n                    next(ret)\n                }\n\n                function next(ret: any) {\n                    if (isFunction(ret?.then)) {\n                        // an async iterator\n                        ret.then(next, reject)\n                        return\n                    }\n                    if (ret.done) {\n                        return resolve(ret.value)\n                    }\n                    pendingPromise = Promise.resolve(ret.value) as any\n                    return pendingPromise!.then(onFulfilled, onRejected)\n                }\n\n                onFulfilled(undefined) // kick off the process\n            }) as any\n\n            promise.cancel = action(`${name} - runid: ${runId} - cancel`, function () {\n                try {\n                    if (pendingPromise) {\n                        cancelPromise(pendingPromise)\n                    }\n                    // Finally block can return (or yield) stuff..\n                    const res = gen.return!(undefined as any)\n                    // eat anything that promise would do, it's cancelled!\n                    const yieldedPromise = Promise.resolve(res.value)\n                    yieldedPromise.then(noop, noop)\n                    cancelPromise(yieldedPromise) // maybe it can be cancelled :)\n                    // reject our original promise\n                    rejector(new FlowCancellationError())\n                } catch (e) {\n                    rejector(e) // there could be a throwing finally block\n                }\n            })\n            return promise\n        }\n        res.isMobXFlow = true\n        return res\n    } as any,\n    flowAnnotation\n)\n\nflow.bound = createDecoratorAnnotation(flowBoundAnnotation)\n\nfunction cancelPromise(promise) {\n    if (isFunction(promise.cancel)) {\n        promise.cancel()\n    }\n}\n\nexport function flowResult<T>(\n    result: T\n): T extends Generator<any, infer R, any>\n    ? CancellablePromise<R>\n    : T extends CancellablePromise<any>\n    ? T\n    : never {\n    return result as any // just tricking TypeScript :)\n}\n\nexport function isFlow(fn: any): boolean {\n    return fn?.isMobXFlow === true\n}\n","import {\n    $mobx,\n    isAtom,\n    isComputedValue,\n    isObservableArray,\n    isObservableMap,\n    isObservableObject,\n    isReaction,\n    die,\n    isStringish\n} from \"../internal\"\n\nfunction _isObservable(value, property?: PropertyKey): boolean {\n    if (!value) {\n        return false\n    }\n    if (property !== undefined) {\n        if (__DEV__ && (isObservableMap(value) || isObservableArray(value))) {\n            return die(\n                \"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\"\n            )\n        }\n        if (isObservableObject(value)) {\n            return value[$mobx].values_.has(property)\n        }\n        return false\n    }\n    // For first check, see #701\n    return (\n        isObservableObject(value) ||\n        !!value[$mobx] ||\n        isAtom(value) ||\n        isReaction(value) ||\n        isComputedValue(value)\n    )\n}\n\nexport function isObservable(value: any): boolean {\n    if (__DEV__ && arguments.length !== 1) {\n        die(\n            `isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`\n        )\n    }\n    return _isObservable(value)\n}\n\nexport function isObservableProp(value: any, propName: PropertyKey): boolean {\n    if (__DEV__ && !isStringish(propName)) {\n        return die(`expected a property name as second argument`)\n    }\n    return _isObservable(value, propName)\n}\n","import { endBatch, startBatch } from \"../internal\"\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nexport function transaction<T>(action: () => T, thisArg = undefined): T {\n    startBatch()\n    try {\n        return action.apply(thisArg)\n    } finally {\n        endBatch()\n    }\n}\n","import { Lambda, once, untrackedEnd, untrackedStart, die } from \"../internal\"\n\nexport type IInterceptor<T> = (change: T) => T | null\n\nexport interface IInterceptable<T> {\n    interceptors_: IInterceptor<T>[] | undefined\n}\n\nexport function hasInterceptors(interceptable: IInterceptable<any>) {\n    return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0\n}\n\nexport function registerInterceptor<T>(\n    interceptable: IInterceptable<T>,\n    handler: IInterceptor<T>\n): Lambda {\n    const interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = [])\n    interceptors.push(handler)\n    return once(() => {\n        const idx = interceptors.indexOf(handler)\n        if (idx !== -1) {\n            interceptors.splice(idx, 1)\n        }\n    })\n}\n\nexport function interceptChange<T>(\n    interceptable: IInterceptable<T | null>,\n    change: T | null\n): T | null {\n    const prevU = untrackedStart()\n    try {\n        // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n        const interceptors = [...(interceptable.interceptors_ || [])]\n        for (let i = 0, l = interceptors.length; i < l; i++) {\n            change = interceptors[i](change)\n            if (change && !(change as any).type) {\n                die(14)\n            }\n            if (!change) {\n                break\n            }\n        }\n        return change\n    } finally {\n        untrackedEnd(prevU)\n    }\n}\n","import { Lambda, once, untrackedEnd, untrackedStart } from \"../internal\"\n\nexport interface IListenable {\n    changeListeners_: Function[] | undefined\n}\n\nexport function hasListeners(listenable: IListenable) {\n    return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0\n}\n\nexport function registerListener(listenable: IListenable, handler: Function): Lambda {\n    const listeners = listenable.changeListeners_ || (listenable.changeListeners_ = [])\n    listeners.push(handler)\n    return once(() => {\n        const idx = listeners.indexOf(handler)\n        if (idx !== -1) {\n            listeners.splice(idx, 1)\n        }\n    })\n}\n\nexport function notifyListeners<T>(listenable: IListenable, change: T) {\n    const prevU = untrackedStart()\n    let listeners = listenable.changeListeners_\n    if (!listeners) {\n        return\n    }\n    listeners = listeners.slice()\n    for (let i = 0, l = listeners.length; i < l; i++) {\n        listeners[i](change)\n    }\n    untrackedEnd(prevU)\n}\n","import {\n    $mobx,\n    asObservableObject,\n    AnnotationsMap,\n    endBatch,\n    startBatch,\n    CreateObservableOptions,\n    ObservableObjectAdministration,\n    collectStoredAnnotations,\n    isPlainObject,\n    isObservableObject,\n    die,\n    ownKeys,\n    extendObservable,\n    addHiddenProp,\n    storedAnnotationsSymbol\n} from \"../internal\"\n\n// Hack based on https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-322267089\n// We need this, because otherwise, AdditionalKeys is going to be inferred to be any\n// set of superfluous keys. But, we rather want to get a compile error unless AdditionalKeys is\n// _explicity_ passed as generic argument\n// Fixes: https://github.com/mobxjs/mobx/issues/2325#issuecomment-691070022\ntype NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function makeObservable<T extends object, AdditionalKeys extends PropertyKey = never>(\n    target: T,\n    annotations?: AnnotationsMap<T, NoInfer<AdditionalKeys>>,\n    options?: CreateObservableOptions\n): T {\n    const adm: ObservableObjectAdministration = asObservableObject(target, options)[$mobx]\n    startBatch()\n    try {\n        if (__DEV__ && annotations && target[storedAnnotationsSymbol]) {\n            die(\n                `makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`\n            )\n        }\n        // Default to decorators\n        annotations ??= collectStoredAnnotations(target)\n\n        // Annotate\n        ownKeys(annotations).forEach(key => adm.make_(key, annotations![key]))\n    } finally {\n        endBatch()\n    }\n    return target\n}\n\n// proto[keysSymbol] = new Set<PropertyKey>()\nconst keysSymbol = Symbol(\"mobx-keys\")\n\nexport function makeAutoObservable<T extends object, AdditionalKeys extends PropertyKey = never>(\n    target: T,\n    overrides?: AnnotationsMap<T, NoInfer<AdditionalKeys>>,\n    options?: CreateObservableOptions\n): T {\n    if (__DEV__) {\n        if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n            die(`'makeAutoObservable' can only be used for classes that don't have a superclass`)\n        }\n        if (isObservableObject(target)) {\n            die(`makeAutoObservable can only be used on objects not already made observable`)\n        }\n    }\n\n    // Optimization: avoid visiting protos\n    // Assumes that annotation.make_/.extend_ works the same for plain objects\n    if (isPlainObject(target)) {\n        return extendObservable(target, target, overrides, options)\n    }\n\n    const adm: ObservableObjectAdministration = asObservableObject(target, options)[$mobx]\n\n    // Optimization: cache keys on proto\n    // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n    if (!target[keysSymbol]) {\n        const proto = Object.getPrototypeOf(target)\n        const keys = new Set([...ownKeys(target), ...ownKeys(proto)])\n        keys.delete(\"constructor\")\n        keys.delete($mobx)\n        addHiddenProp(proto, keysSymbol, keys)\n    }\n\n    startBatch()\n    try {\n        target[keysSymbol].forEach(key =>\n            adm.make_(\n                key,\n                // must pass \"undefined\" for { key: undefined }\n                !overrides ? true : key in overrides ? overrides[key] : true\n            )\n        )\n    } finally {\n        endBatch()\n    }\n    return target\n}\n","import {\n    $mobx,\n    Atom,\n    EMPTY_ARRAY,\n    IAtom,\n    IEnhancer,\n    IInterceptable,\n    IInterceptor,\n    IListenable,\n    Lambda,\n    addHiddenFinalProp,\n    checkIfStateModificationsAreAllowed,\n    createInstanceofPredicate,\n    getNextId,\n    hasInterceptors,\n    hasListeners,\n    interceptChange,\n    isObject,\n    isSpyEnabled,\n    notifyListeners,\n    registerInterceptor,\n    registerListener,\n    spyReportEnd,\n    spyReportStart,\n    allowStateChangesStart,\n    allowStateChangesEnd,\n    assertProxies,\n    reserveArrayBuffer,\n    hasProp,\n    die,\n    globalState\n} from \"../internal\"\n\nconst SPLICE = \"splice\"\nexport const UPDATE = \"update\"\nexport const MAX_SPLICE_SIZE = 10000 // See e.g. https://github.com/mobxjs/mobx/issues/859\n\nexport interface IObservableArray<T = any> extends Array<T> {\n    spliceWithArray(index: number, deleteCount?: number, newItems?: T[]): T[]\n    clear(): T[]\n    replace(newItems: T[]): T[]\n    remove(value: T): boolean\n    toJSON(): T[]\n}\n\ninterface IArrayBaseChange<T> {\n    object: IObservableArray<T>\n    observableKind: \"array\"\n    debugObjectName: string\n    index: number\n}\n\nexport type IArrayDidChange<T = any> = IArrayUpdate<T> | IArraySplice<T>\n\nexport interface IArrayUpdate<T = any> extends IArrayBaseChange<T> {\n    type: \"update\"\n    newValue: T\n    oldValue: T\n}\n\nexport interface IArraySplice<T = any> extends IArrayBaseChange<T> {\n    type: \"splice\"\n    added: T[]\n    addedCount: number\n    removed: T[]\n    removedCount: number\n}\n\nexport interface IArrayWillChange<T = any> {\n    object: IObservableArray<T>\n    index: number\n    type: \"update\"\n    newValue: T\n}\n\nexport interface IArrayWillSplice<T = any> {\n    object: IObservableArray<T>\n    index: number\n    type: \"splice\"\n    added: T[]\n    removedCount: number\n}\n\nconst arrayTraps = {\n    get(target, name) {\n        const adm: ObservableArrayAdministration = target[$mobx]\n        if (name === $mobx) {\n            return adm\n        }\n        if (name === \"length\") {\n            return adm.getArrayLength_()\n        }\n        if (typeof name === \"string\" && !isNaN(name as any)) {\n            return adm.get_(parseInt(name))\n        }\n        if (hasProp(arrayExtensions, name)) {\n            return arrayExtensions[name]\n        }\n        return target[name]\n    },\n    set(target, name, value): boolean {\n        const adm: ObservableArrayAdministration = target[$mobx]\n        if (name === \"length\") {\n            adm.setArrayLength_(value)\n        }\n        if (typeof name === \"symbol\" || isNaN(name)) {\n            target[name] = value\n        } else {\n            // numeric string\n            adm.set_(parseInt(name), value)\n        }\n        return true\n    },\n    preventExtensions() {\n        die(15)\n    }\n}\n\nexport class ObservableArrayAdministration\n    implements IInterceptable<IArrayWillChange<any> | IArrayWillSplice<any>>, IListenable\n{\n    atom_: IAtom\n    readonly values_: any[] = [] // this is the prop that gets proxied, so can't replace it!\n    interceptors_\n    changeListeners_\n    enhancer_: (newV: any, oldV: any | undefined) => any\n    dehancer: any\n    proxy_!: IObservableArray<any>\n    lastKnownLength_ = 0\n\n    constructor(\n        name = __DEV__ ? \"ObservableArray@\" + getNextId() : \"ObservableArray\",\n        enhancer: IEnhancer<any>,\n        public owned_: boolean,\n        public legacyMode_: boolean\n    ) {\n        this.atom_ = new Atom(name)\n        this.enhancer_ = (newV, oldV) =>\n            enhancer(newV, oldV, __DEV__ ? name + \"[..]\" : \"ObservableArray[..]\")\n    }\n\n    dehanceValue_(value: any): any {\n        if (this.dehancer !== undefined) {\n            return this.dehancer(value)\n        }\n        return value\n    }\n\n    dehanceValues_(values: any[]): any[] {\n        if (this.dehancer !== undefined && values.length > 0) {\n            return values.map(this.dehancer) as any\n        }\n        return values\n    }\n\n    intercept_(handler: IInterceptor<IArrayWillChange<any> | IArrayWillSplice<any>>): Lambda {\n        return registerInterceptor<IArrayWillChange<any> | IArrayWillSplice<any>>(this, handler)\n    }\n\n    observe_(\n        listener: (changeData: IArrayDidChange<any>) => void,\n        fireImmediately = false\n    ): Lambda {\n        if (fireImmediately) {\n            listener(<IArraySplice<any>>{\n                observableKind: \"array\",\n                object: this.proxy_ as any,\n                debugObjectName: this.atom_.name_,\n                type: \"splice\",\n                index: 0,\n                added: this.values_.slice(),\n                addedCount: this.values_.length,\n                removed: [],\n                removedCount: 0\n            })\n        }\n        return registerListener(this, listener)\n    }\n\n    getArrayLength_(): number {\n        this.atom_.reportObserved()\n        return this.values_.length\n    }\n\n    setArrayLength_(newLength: number) {\n        if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n            die(\"Out of range: \" + newLength)\n        }\n        let currentLength = this.values_.length\n        if (newLength === currentLength) {\n            return\n        } else if (newLength > currentLength) {\n            const newItems = new Array(newLength - currentLength)\n            for (let i = 0; i < newLength - currentLength; i++) {\n                newItems[i] = undefined\n            } // No Array.fill everywhere...\n            this.spliceWithArray_(currentLength, 0, newItems)\n        } else {\n            this.spliceWithArray_(newLength, currentLength - newLength)\n        }\n    }\n\n    updateArrayLength_(oldLength: number, delta: number) {\n        if (oldLength !== this.lastKnownLength_) {\n            die(16)\n        }\n        this.lastKnownLength_ += delta\n        if (this.legacyMode_ && delta > 0) {\n            reserveArrayBuffer(oldLength + delta + 1)\n        }\n    }\n\n    spliceWithArray_(index: number, deleteCount?: number, newItems?: any[]): any[] {\n        checkIfStateModificationsAreAllowed(this.atom_)\n        const length = this.values_.length\n\n        if (index === undefined) {\n            index = 0\n        } else if (index > length) {\n            index = length\n        } else if (index < 0) {\n            index = Math.max(0, length + index)\n        }\n\n        if (arguments.length === 1) {\n            deleteCount = length - index\n        } else if (deleteCount === undefined || deleteCount === null) {\n            deleteCount = 0\n        } else {\n            deleteCount = Math.max(0, Math.min(deleteCount, length - index))\n        }\n\n        if (newItems === undefined) {\n            newItems = EMPTY_ARRAY\n        }\n\n        if (hasInterceptors(this)) {\n            const change = interceptChange<IArrayWillSplice<any>>(this as any, {\n                object: this.proxy_ as any,\n                type: SPLICE,\n                index,\n                removedCount: deleteCount,\n                added: newItems\n            })\n            if (!change) {\n                return EMPTY_ARRAY\n            }\n            deleteCount = change.removedCount\n            newItems = change.added\n        }\n\n        newItems =\n            newItems.length === 0 ? newItems : newItems.map(v => this.enhancer_(v, undefined))\n        if (this.legacyMode_ || __DEV__) {\n            const lengthDelta = newItems.length - deleteCount\n            this.updateArrayLength_(length, lengthDelta) // checks if internal array wasn't modified\n        }\n        const res = this.spliceItemsIntoValues_(index, deleteCount, newItems)\n\n        if (deleteCount !== 0 || newItems.length !== 0) {\n            this.notifyArraySplice_(index, newItems, res)\n        }\n        return this.dehanceValues_(res)\n    }\n\n    spliceItemsIntoValues_(index: number, deleteCount: number, newItems: any[]): any[] {\n        if (newItems.length < MAX_SPLICE_SIZE) {\n            return this.values_.splice(index, deleteCount, ...newItems)\n        } else {\n            // The items removed by the splice\n            const res = this.values_.slice(index, index + deleteCount)\n            // The items that that should remain at the end of the array\n            let oldItems = this.values_.slice(index + deleteCount)\n            // New length is the previous length + addition count - deletion count\n            this.values_.length += newItems.length - deleteCount\n            for (let i = 0; i < newItems.length; i++) {\n                this.values_[index + i] = newItems[i]\n            }\n            for (let i = 0; i < oldItems.length; i++) {\n                this.values_[index + newItems.length + i] = oldItems[i]\n            }\n            return res\n        }\n    }\n\n    notifyArrayChildUpdate_(index: number, newValue: any, oldValue: any) {\n        const notifySpy = !this.owned_ && isSpyEnabled()\n        const notify = hasListeners(this)\n        const change: IArrayDidChange | null =\n            notify || notifySpy\n                ? ({\n                      observableKind: \"array\",\n                      object: this.proxy_,\n                      type: UPDATE,\n                      debugObjectName: this.atom_.name_,\n                      index,\n                      newValue,\n                      oldValue\n                  } as const)\n                : null\n\n        // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n        // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n        if (__DEV__ && notifySpy) {\n            spyReportStart(change!)\n        }\n        this.atom_.reportChanged()\n        if (notify) {\n            notifyListeners(this, change)\n        }\n        if (__DEV__ && notifySpy) {\n            spyReportEnd()\n        }\n    }\n\n    notifyArraySplice_(index: number, added: any[], removed: any[]) {\n        const notifySpy = !this.owned_ && isSpyEnabled()\n        const notify = hasListeners(this)\n        const change: IArraySplice | null =\n            notify || notifySpy\n                ? ({\n                      observableKind: \"array\",\n                      object: this.proxy_,\n                      debugObjectName: this.atom_.name_,\n                      type: SPLICE,\n                      index,\n                      removed,\n                      added,\n                      removedCount: removed.length,\n                      addedCount: added.length\n                  } as const)\n                : null\n\n        if (__DEV__ && notifySpy) {\n            spyReportStart(change!)\n        }\n        this.atom_.reportChanged()\n        // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n        if (notify) {\n            notifyListeners(this, change)\n        }\n        if (__DEV__ && notifySpy) {\n            spyReportEnd()\n        }\n    }\n\n    get_(index: number): any | undefined {\n        if (index < this.values_.length) {\n            this.atom_.reportObserved()\n            return this.dehanceValue_(this.values_[index])\n        }\n        console.warn(\n            __DEV__\n                ? `[mobx] Out of bounds read: ${index}`\n                : `[mobx.array] Attempt to read an array index (${index}) that is out of bounds (${this.values_.length}). Please check length first. Out of bound indices will not be tracked by MobX`\n        )\n    }\n\n    set_(index: number, newValue: any) {\n        const values = this.values_\n        if (index < values.length) {\n            // update at index in range\n            checkIfStateModificationsAreAllowed(this.atom_)\n            const oldValue = values[index]\n            if (hasInterceptors(this)) {\n                const change = interceptChange<IArrayWillChange<any>>(this as any, {\n                    type: UPDATE,\n                    object: this.proxy_ as any, // since \"this\" is the real array we need to pass its proxy\n                    index,\n                    newValue\n                })\n                if (!change) {\n                    return\n                }\n                newValue = change.newValue\n            }\n            newValue = this.enhancer_(newValue, oldValue)\n            const changed = newValue !== oldValue\n            if (changed) {\n                values[index] = newValue\n                this.notifyArrayChildUpdate_(index, newValue, oldValue)\n            }\n        } else if (index === values.length) {\n            // add a new item\n            this.spliceWithArray_(index, 0, [newValue])\n        } else {\n            // out of bounds\n            die(17, index, values.length)\n        }\n    }\n}\n\nexport function createObservableArray<T>(\n    initialValues: T[] | undefined,\n    enhancer: IEnhancer<T>,\n    name = __DEV__ ? \"ObservableArray@\" + getNextId() : \"ObservableArray\",\n    owned = false\n): IObservableArray<T> {\n    assertProxies()\n    const adm = new ObservableArrayAdministration(name, enhancer, owned, false)\n    addHiddenFinalProp(adm.values_, $mobx, adm)\n    const proxy = new Proxy(adm.values_, arrayTraps) as any\n    adm.proxy_ = proxy\n    if (initialValues && initialValues.length) {\n        const prev = allowStateChangesStart(true)\n        adm.spliceWithArray_(0, 0, initialValues)\n        allowStateChangesEnd(prev)\n    }\n    return proxy\n}\n\n// eslint-disable-next-line\nexport var arrayExtensions = {\n    clear(): any[] {\n        return this.splice(0)\n    },\n\n    replace(newItems: any[]) {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        return adm.spliceWithArray_(0, adm.values_.length, newItems)\n    },\n\n    // Used by JSON.stringify\n    toJSON(): any[] {\n        return this.slice()\n    },\n\n    /*\n     * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n     * since these functions alter the inner structure of the array, the have side effects.\n     * Because the have side effects, they should not be used in computed function,\n     * and for that reason the do not call dependencyState.notifyObserved\n     */\n    splice(index: number, deleteCount?: number, ...newItems: any[]): any[] {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        switch (arguments.length) {\n            case 0:\n                return []\n            case 1:\n                return adm.spliceWithArray_(index)\n            case 2:\n                return adm.spliceWithArray_(index, deleteCount)\n        }\n        return adm.spliceWithArray_(index, deleteCount, newItems)\n    },\n\n    spliceWithArray(index: number, deleteCount?: number, newItems?: any[]): any[] {\n        return (this[$mobx] as ObservableArrayAdministration).spliceWithArray_(\n            index,\n            deleteCount,\n            newItems\n        )\n    },\n\n    push(...items: any[]): number {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        adm.spliceWithArray_(adm.values_.length, 0, items)\n        return adm.values_.length\n    },\n\n    pop() {\n        return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0]\n    },\n\n    shift() {\n        return this.splice(0, 1)[0]\n    },\n\n    unshift(...items: any[]): number {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        adm.spliceWithArray_(0, 0, items)\n        return adm.values_.length\n    },\n\n    reverse(): any[] {\n        // reverse by default mutates in place before returning the result\n        // which makes it both a 'derivation' and a 'mutation'.\n        if (globalState.trackingDerivation) {\n            die(37, \"reverse\")\n        }\n        this.replace(this.slice().reverse())\n        return this\n    },\n\n    sort(): any[] {\n        // sort by default mutates in place before returning the result\n        // which goes against all good practices. Let's not change the array in place!\n        if (globalState.trackingDerivation) {\n            die(37, \"sort\")\n        }\n        const copy = this.slice()\n        copy.sort.apply(copy, arguments)\n        this.replace(copy)\n        return this\n    },\n\n    remove(value: any): boolean {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        const idx = adm.dehanceValues_(adm.values_).indexOf(value)\n        if (idx > -1) {\n            this.splice(idx, 1)\n            return true\n        }\n        return false\n    }\n}\n\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"concat\", simpleFunc)\naddArrayExtension(\"flat\", simpleFunc)\naddArrayExtension(\"includes\", simpleFunc)\naddArrayExtension(\"indexOf\", simpleFunc)\naddArrayExtension(\"join\", simpleFunc)\naddArrayExtension(\"lastIndexOf\", simpleFunc)\naddArrayExtension(\"slice\", simpleFunc)\naddArrayExtension(\"toString\", simpleFunc)\naddArrayExtension(\"toLocaleString\", simpleFunc)\n// map\naddArrayExtension(\"every\", mapLikeFunc)\naddArrayExtension(\"filter\", mapLikeFunc)\naddArrayExtension(\"find\", mapLikeFunc)\naddArrayExtension(\"findIndex\", mapLikeFunc)\naddArrayExtension(\"flatMap\", mapLikeFunc)\naddArrayExtension(\"forEach\", mapLikeFunc)\naddArrayExtension(\"map\", mapLikeFunc)\naddArrayExtension(\"some\", mapLikeFunc)\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc)\naddArrayExtension(\"reduceRight\", reduceLikeFunc)\n\nfunction addArrayExtension(funcName, funcFactory) {\n    if (typeof Array.prototype[funcName] === \"function\") {\n        arrayExtensions[funcName] = funcFactory(funcName)\n    }\n}\n\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n    return function () {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        adm.atom_.reportObserved()\n        const dehancedValues = adm.dehanceValues_(adm.values_)\n        return dehancedValues[funcName].apply(dehancedValues, arguments)\n    }\n}\n\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n    return function (callback, thisArg) {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        adm.atom_.reportObserved()\n        const dehancedValues = adm.dehanceValues_(adm.values_)\n        return dehancedValues[funcName]((element, index) => {\n            return callback.call(thisArg, element, index, this)\n        })\n    }\n}\n\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n    return function () {\n        const adm: ObservableArrayAdministration = this[$mobx]\n        adm.atom_.reportObserved()\n        const dehancedValues = adm.dehanceValues_(adm.values_)\n        // #2432 - reduce behavior depends on arguments.length\n        const callback = arguments[0]\n        arguments[0] = (accumulator, currentValue, index) => {\n            return callback(accumulator, currentValue, index, this)\n        }\n        return dehancedValues[funcName].apply(dehancedValues, arguments)\n    }\n}\n\nconst isObservableArrayAdministration = createInstanceofPredicate(\n    \"ObservableArrayAdministration\",\n    ObservableArrayAdministration\n)\n\nexport function isObservableArray(thing): thing is IObservableArray<any> {\n    return isObject(thing) && isObservableArrayAdministration(thing[$mobx])\n}\n","import { IComputedDidChange } from \"./computedvalue\"\nimport { IValueDidChange, IBoxDidChange } from \"./../types/observablevalue\"\nimport { IObjectDidChange } from \"./../types/observableobject\"\nimport { IArrayDidChange } from \"./../types/observablearray\"\nimport { Lambda, globalState, once, ISetDidChange, IMapDidChange } from \"../internal\"\n\nexport function isSpyEnabled() {\n    return __DEV__ && !!globalState.spyListeners.length\n}\n\nexport type PureSpyEvent =\n    | { type: \"action\"; name: string; object: unknown; arguments: unknown[] }\n    | { type: \"scheduled-reaction\"; name: string }\n    | { type: \"reaction\"; name: string }\n    | { type: \"error\"; name: string; message: string; error: string }\n    | IComputedDidChange<unknown>\n    | IObjectDidChange<unknown>\n    | IArrayDidChange<unknown>\n    | IMapDidChange<unknown, unknown>\n    | ISetDidChange<unknown>\n    | IValueDidChange<unknown>\n    | IBoxDidChange<unknown>\n    | { type: \"report-end\"; spyReportEnd: true; time?: number }\n\ntype SpyEvent = PureSpyEvent & { spyReportStart?: true }\n\nexport function spyReport(event: SpyEvent) {\n    if (!__DEV__) {\n        return\n    } // dead code elimination can do the rest\n    if (!globalState.spyListeners.length) {\n        return\n    }\n    const listeners = globalState.spyListeners\n    for (let i = 0, l = listeners.length; i < l; i++) {\n        listeners[i](event)\n    }\n}\n\nexport function spyReportStart(event: PureSpyEvent) {\n    if (!__DEV__) {\n        return\n    }\n    const change = { ...event, spyReportStart: true as const }\n    spyReport(change)\n}\n\nconst END_EVENT: SpyEvent = { type: \"report-end\", spyReportEnd: true }\n\nexport function spyReportEnd(change?: { time?: number }) {\n    if (!__DEV__) {\n        return\n    }\n    if (change) {\n        spyReport({ ...change, type: \"report-end\", spyReportEnd: true })\n    } else {\n        spyReport(END_EVENT)\n    }\n}\n\nexport function spy(listener: (change: SpyEvent) => void): Lambda {\n    if (!__DEV__) {\n        console.warn(`[mobx.spy] Is a no-op in production builds`)\n        return function () {}\n    } else {\n        globalState.spyListeners.push(listener)\n        return once(() => {\n            globalState.spyListeners = globalState.spyListeners.filter(l => l !== listener)\n        })\n    }\n}\n","import {\n    $mobx,\n    IEnhancer,\n    IInterceptable,\n    IInterceptor,\n    IListenable,\n    Lambda,\n    ObservableValue,\n    checkIfStateModificationsAreAllowed,\n    createAtom,\n    createInstanceofPredicate,\n    deepEnhancer,\n    getNextId,\n    getPlainObjectKeys,\n    hasInterceptors,\n    hasListeners,\n    interceptChange,\n    isES6Map,\n    isPlainObject,\n    isSpyEnabled,\n    makeIterable,\n    notifyListeners,\n    referenceEnhancer,\n    registerInterceptor,\n    registerListener,\n    spyReportEnd,\n    spyReportStart,\n    stringifyKey,\n    transaction,\n    untracked,\n    onBecomeUnobserved,\n    globalState,\n    die,\n    isFunction,\n    UPDATE,\n    IAtom,\n    PureSpyEvent,\n    allowStateChanges\n} from \"../internal\"\n\nexport interface IKeyValueMap<V = any> {\n    [key: string]: V\n}\n\nexport type IMapEntry<K = any, V = any> = [K, V]\nexport type IMapEntries<K = any, V = any> = IMapEntry<K, V>[]\n\nexport type IMapDidChange<K = any, V = any> = { observableKind: \"map\"; debugObjectName: string } & (\n    | {\n          object: ObservableMap<K, V>\n          name: K // actual the key or index, but this is based on the ancient .observe proposal for consistency\n          type: \"update\"\n          newValue: V\n          oldValue: V\n      }\n    | {\n          object: ObservableMap<K, V>\n          name: K\n          type: \"add\"\n          newValue: V\n      }\n    | {\n          object: ObservableMap<K, V>\n          name: K\n          type: \"delete\"\n          oldValue: V\n      }\n)\n\nexport interface IMapWillChange<K = any, V = any> {\n    object: ObservableMap<K, V>\n    type: \"update\" | \"add\" | \"delete\"\n    name: K\n    newValue?: V\n}\n\nconst ObservableMapMarker = {}\n\nexport const ADD = \"add\"\nexport const DELETE = \"delete\"\n\nexport type IObservableMapInitialValues<K = any, V = any> =\n    | IMapEntries<K, V>\n    | IKeyValueMap<V>\n    | Map<K, V>\n\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\nexport class ObservableMap<K = any, V = any>\n    implements Map<K, V>, IInterceptable<IMapWillChange<K, V>>, IListenable\n{\n    [$mobx] = ObservableMapMarker\n    data_: Map<K, ObservableValue<V>>\n    hasMap_: Map<K, ObservableValue<boolean>> // hasMap, not hashMap >-).\n    keysAtom_: IAtom\n    interceptors_\n    changeListeners_\n    dehancer: any\n\n    constructor(\n        initialData?: IObservableMapInitialValues<K, V>,\n        public enhancer_: IEnhancer<V> = deepEnhancer,\n        public name_ = __DEV__ ? \"ObservableMap@\" + getNextId() : \"ObservableMap\"\n    ) {\n        if (!isFunction(Map)) {\n            die(18)\n        }\n        this.keysAtom_ = createAtom(__DEV__ ? `${this.name_}.keys()` : \"ObservableMap.keys()\")\n        this.data_ = new Map()\n        this.hasMap_ = new Map()\n        allowStateChanges(true, () => {\n            this.merge(initialData)\n        })\n    }\n\n    private has_(key: K): boolean {\n        return this.data_.has(key)\n    }\n\n    has(key: K): boolean {\n        if (!globalState.trackingDerivation) {\n            return this.has_(key)\n        }\n\n        let entry = this.hasMap_.get(key)\n        if (!entry) {\n            const newEntry = (entry = new ObservableValue(\n                this.has_(key),\n                referenceEnhancer,\n                __DEV__ ? `${this.name_}.${stringifyKey(key)}?` : \"ObservableMap.key?\",\n                false\n            ))\n            this.hasMap_.set(key, newEntry)\n            onBecomeUnobserved(newEntry, () => this.hasMap_.delete(key))\n        }\n\n        return entry.get()\n    }\n\n    set(key: K, value: V) {\n        const hasKey = this.has_(key)\n        if (hasInterceptors(this)) {\n            const change = interceptChange<IMapWillChange<K, V>>(this, {\n                type: hasKey ? UPDATE : ADD,\n                object: this,\n                newValue: value,\n                name: key\n            })\n            if (!change) {\n                return this\n            }\n            value = change.newValue!\n        }\n        if (hasKey) {\n            this.updateValue_(key, value)\n        } else {\n            this.addValue_(key, value)\n        }\n        return this\n    }\n\n    delete(key: K): boolean {\n        checkIfStateModificationsAreAllowed(this.keysAtom_)\n        if (hasInterceptors(this)) {\n            const change = interceptChange<IMapWillChange<K, V>>(this, {\n                type: DELETE,\n                object: this,\n                name: key\n            })\n            if (!change) {\n                return false\n            }\n        }\n        if (this.has_(key)) {\n            const notifySpy = isSpyEnabled()\n            const notify = hasListeners(this)\n            const change: IMapDidChange<K, V> | null =\n                notify || notifySpy\n                    ? {\n                          observableKind: \"map\",\n                          debugObjectName: this.name_,\n                          type: DELETE,\n                          object: this,\n                          oldValue: (<any>this.data_.get(key)).value_,\n                          name: key\n                      }\n                    : null\n\n            if (__DEV__ && notifySpy) {\n                spyReportStart(change! as PureSpyEvent)\n            } // TODO fix type\n            transaction(() => {\n                this.keysAtom_.reportChanged()\n                this.hasMap_.get(key)?.setNewValue_(false)\n                const observable = this.data_.get(key)!\n                observable.setNewValue_(undefined as any)\n                this.data_.delete(key)\n            })\n            if (notify) {\n                notifyListeners(this, change)\n            }\n            if (__DEV__ && notifySpy) {\n                spyReportEnd()\n            }\n            return true\n        }\n        return false\n    }\n\n    private updateValue_(key: K, newValue: V | undefined) {\n        const observable = this.data_.get(key)!\n        newValue = (observable as any).prepareNewValue_(newValue) as V\n        if (newValue !== globalState.UNCHANGED) {\n            const notifySpy = isSpyEnabled()\n            const notify = hasListeners(this)\n            const change: IMapDidChange<K, V> | null =\n                notify || notifySpy\n                    ? {\n                          observableKind: \"map\",\n                          debugObjectName: this.name_,\n                          type: UPDATE,\n                          object: this,\n                          oldValue: (observable as any).value_,\n                          name: key,\n                          newValue\n                      }\n                    : null\n            if (__DEV__ && notifySpy) {\n                spyReportStart(change! as PureSpyEvent)\n            } // TODO fix type\n            observable.setNewValue_(newValue as V)\n            if (notify) {\n                notifyListeners(this, change)\n            }\n            if (__DEV__ && notifySpy) {\n                spyReportEnd()\n            }\n        }\n    }\n\n    private addValue_(key: K, newValue: V) {\n        checkIfStateModificationsAreAllowed(this.keysAtom_)\n        transaction(() => {\n            const observable = new ObservableValue(\n                newValue,\n                this.enhancer_,\n                __DEV__ ? `${this.name_}.${stringifyKey(key)}` : \"ObservableMap.key\",\n                false\n            )\n            this.data_.set(key, observable)\n            newValue = (observable as any).value_ // value might have been changed\n            this.hasMap_.get(key)?.setNewValue_(true)\n            this.keysAtom_.reportChanged()\n        })\n        const notifySpy = isSpyEnabled()\n        const notify = hasListeners(this)\n        const change: IMapDidChange<K, V> | null =\n            notify || notifySpy\n                ? {\n                      observableKind: \"map\",\n                      debugObjectName: this.name_,\n                      type: ADD,\n                      object: this,\n                      name: key,\n                      newValue\n                  }\n                : null\n        if (__DEV__ && notifySpy) {\n            spyReportStart(change! as PureSpyEvent)\n        } // TODO fix type\n        if (notify) {\n            notifyListeners(this, change)\n        }\n        if (__DEV__ && notifySpy) {\n            spyReportEnd()\n        }\n    }\n\n    get(key: K): V | undefined {\n        if (this.has(key)) {\n            return this.dehanceValue_(this.data_.get(key)!.get())\n        }\n        return this.dehanceValue_(undefined)\n    }\n\n    private dehanceValue_<X extends V | undefined>(value: X): X {\n        if (this.dehancer !== undefined) {\n            return this.dehancer(value)\n        }\n        return value\n    }\n\n    keys(): IterableIterator<K> {\n        this.keysAtom_.reportObserved()\n        return this.data_.keys()\n    }\n\n    values(): IterableIterator<V> {\n        const self = this\n        const keys = this.keys()\n        return makeIterable({\n            next() {\n                const { done, value } = keys.next()\n                return {\n                    done,\n                    value: done ? (undefined as any) : self.get(value)\n                }\n            }\n        })\n    }\n\n    entries(): IterableIterator<IMapEntry<K, V>> {\n        const self = this\n        const keys = this.keys()\n        return makeIterable({\n            next() {\n                const { done, value } = keys.next()\n                return {\n                    done,\n                    value: done ? (undefined as any) : ([value, self.get(value)!] as [K, V])\n                }\n            }\n        })\n    }\n\n    [Symbol.iterator]() {\n        return this.entries()\n    }\n\n    forEach(callback: (value: V, key: K, object: Map<K, V>) => void, thisArg?) {\n        for (const [key, value] of this) {\n            callback.call(thisArg, value, key, this)\n        }\n    }\n\n    /** Merge another object into this object, returns this. */\n    merge(other?: IObservableMapInitialValues<K, V>): ObservableMap<K, V> {\n        if (isObservableMap(other)) {\n            other = new Map(other)\n        }\n        transaction(() => {\n            if (isPlainObject(other)) {\n                getPlainObjectKeys(other).forEach((key: any) =>\n                    this.set(key as K, (other as IKeyValueMap)[key])\n                )\n            } else if (Array.isArray(other)) {\n                other.forEach(([key, value]) => this.set(key, value))\n            } else if (isES6Map(other)) {\n                if (other.constructor !== Map) {\n                    die(19, other)\n                }\n                other.forEach((value, key) => this.set(key, value))\n            } else if (other !== null && other !== undefined) {\n                die(20, other)\n            }\n        })\n        return this\n    }\n\n    clear() {\n        transaction(() => {\n            untracked(() => {\n                for (const key of this.keys()) {\n                    this.delete(key)\n                }\n            })\n        })\n    }\n\n    replace(values: IObservableMapInitialValues<K, V>): ObservableMap<K, V> {\n        // Implementation requirements:\n        // - respect ordering of replacement map\n        // - allow interceptors to run and potentially prevent individual operations\n        // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n        // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n        // - note that result map may differ from replacement map due to the interceptors\n        transaction(() => {\n            // Convert to map so we can do quick key lookups\n            const replacementMap = convertToMap(values)\n            const orderedData = new Map()\n            // Used for optimization\n            let keysReportChangedCalled = false\n            // Delete keys that don't exist in replacement map\n            // if the key deletion is prevented by interceptor\n            // add entry at the beginning of the result map\n            for (const key of this.data_.keys()) {\n                // Concurrently iterating/deleting keys\n                // iterator should handle this correctly\n                if (!replacementMap.has(key)) {\n                    const deleted = this.delete(key)\n                    // Was the key removed?\n                    if (deleted) {\n                        // _keysAtom.reportChanged() was already called\n                        keysReportChangedCalled = true\n                    } else {\n                        // Delete prevented by interceptor\n                        const value = this.data_.get(key)\n                        orderedData.set(key, value)\n                    }\n                }\n            }\n            // Merge entries\n            for (const [key, value] of replacementMap.entries()) {\n                // We will want to know whether a new key is added\n                const keyExisted = this.data_.has(key)\n                // Add or update value\n                this.set(key, value)\n                // The addition could have been prevent by interceptor\n                if (this.data_.has(key)) {\n                    // The update could have been prevented by interceptor\n                    // and also we want to preserve existing values\n                    // so use value from _data map (instead of replacement map)\n                    const value = this.data_.get(key)\n                    orderedData.set(key, value)\n                    // Was a new key added?\n                    if (!keyExisted) {\n                        // _keysAtom.reportChanged() was already called\n                        keysReportChangedCalled = true\n                    }\n                }\n            }\n            // Check for possible key order change\n            if (!keysReportChangedCalled) {\n                if (this.data_.size !== orderedData.size) {\n                    // If size differs, keys are definitely modified\n                    this.keysAtom_.reportChanged()\n                } else {\n                    const iter1 = this.data_.keys()\n                    const iter2 = orderedData.keys()\n                    let next1 = iter1.next()\n                    let next2 = iter2.next()\n                    while (!next1.done) {\n                        if (next1.value !== next2.value) {\n                            this.keysAtom_.reportChanged()\n                            break\n                        }\n                        next1 = iter1.next()\n                        next2 = iter2.next()\n                    }\n                }\n            }\n            // Use correctly ordered map\n            this.data_ = orderedData\n        })\n        return this\n    }\n\n    get size(): number {\n        this.keysAtom_.reportObserved()\n        return this.data_.size\n    }\n\n    toString(): string {\n        return \"[object ObservableMap]\"\n    }\n\n    toJSON(): [K, V][] {\n        return Array.from(this)\n    }\n\n    get [Symbol.toStringTag]() {\n        return \"Map\"\n    }\n\n    /**\n     * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n     * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n     * for callback details\n     */\n    observe_(listener: (changes: IMapDidChange<K, V>) => void, fireImmediately?: boolean): Lambda {\n        if (__DEV__ && fireImmediately === true) {\n            die(\"`observe` doesn't support fireImmediately=true in combination with maps.\")\n        }\n        return registerListener(this, listener)\n    }\n\n    intercept_(handler: IInterceptor<IMapWillChange<K, V>>): Lambda {\n        return registerInterceptor(this, handler)\n    }\n}\n\n// eslint-disable-next-line\nexport var isObservableMap = createInstanceofPredicate(\"ObservableMap\", ObservableMap) as (\n    thing: any\n) => thing is ObservableMap<any, any>\n\nfunction convertToMap(dataStructure: any): Map<any, any> {\n    if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n        return dataStructure\n    } else if (Array.isArray(dataStructure)) {\n        return new Map(dataStructure)\n    } else if (isPlainObject(dataStructure)) {\n        const map = new Map()\n        for (const key in dataStructure) {\n            map.set(key, dataStructure[key])\n        }\n        return map\n    } else {\n        return die(21, dataStructure)\n    }\n}\n","import {\n    $mobx,\n    createAtom,\n    deepEnhancer,\n    getNextId,\n    IEnhancer,\n    isSpyEnabled,\n    hasListeners,\n    IListenable,\n    registerListener,\n    Lambda,\n    spyReportStart,\n    notifyListeners,\n    spyReportEnd,\n    createInstanceofPredicate,\n    hasInterceptors,\n    interceptChange,\n    IInterceptable,\n    IInterceptor,\n    registerInterceptor,\n    checkIfStateModificationsAreAllowed,\n    untracked,\n    makeIterable,\n    transaction,\n    isES6Set,\n    IAtom,\n    DELETE,\n    ADD,\n    die,\n    isFunction\n} from \"../internal\"\n\nconst ObservableSetMarker = {}\n\nexport type IObservableSetInitialValues<T> = Set<T> | readonly T[]\n\nexport type ISetDidChange<T = any> =\n    | {\n          object: ObservableSet<T>\n          observableKind: \"set\"\n          debugObjectName: string\n          type: \"add\"\n          newValue: T\n      }\n    | {\n          object: ObservableSet<T>\n          observableKind: \"set\"\n          debugObjectName: string\n          type: \"delete\"\n          oldValue: T\n      }\n\nexport type ISetWillChange<T = any> =\n    | {\n          type: \"delete\"\n          object: ObservableSet<T>\n          oldValue: T\n      }\n    | {\n          type: \"add\"\n          object: ObservableSet<T>\n          newValue: T\n      }\n\nexport class ObservableSet<T = any> implements Set<T>, IInterceptable<ISetWillChange>, IListenable {\n    [$mobx] = ObservableSetMarker\n    private data_: Set<any> = new Set()\n    private atom_: IAtom\n    changeListeners_\n    interceptors_\n    dehancer: any\n    enhancer_: (newV: any, oldV: any | undefined) => any\n\n    constructor(\n        initialData?: IObservableSetInitialValues<T>,\n        enhancer: IEnhancer<T> = deepEnhancer,\n        public name_ = __DEV__ ? \"ObservableSet@\" + getNextId() : \"ObservableSet\"\n    ) {\n        if (!isFunction(Set)) {\n            die(22)\n        }\n        this.atom_ = createAtom(this.name_)\n        this.enhancer_ = (newV, oldV) => enhancer(newV, oldV, name_)\n        if (initialData) {\n            this.replace(initialData)\n        }\n    }\n\n    private dehanceValue_<X extends T | undefined>(value: X): X {\n        if (this.dehancer !== undefined) {\n            return this.dehancer(value)\n        }\n        return value\n    }\n\n    clear() {\n        transaction(() => {\n            untracked(() => {\n                for (const value of this.data_.values()) {\n                    this.delete(value)\n                }\n            })\n        })\n    }\n\n    forEach(callbackFn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any) {\n        for (const value of this) {\n            callbackFn.call(thisArg, value, value, this)\n        }\n    }\n\n    get size() {\n        this.atom_.reportObserved()\n        return this.data_.size\n    }\n\n    add(value: T) {\n        checkIfStateModificationsAreAllowed(this.atom_)\n        if (hasInterceptors(this)) {\n            const change = interceptChange<ISetWillChange<T>>(this, {\n                type: ADD,\n                object: this,\n                newValue: value\n            })\n            if (!change) {\n                return this\n            }\n            // ideally, value = change.value would be done here, so that values can be\n            // changed by interceptor. Same applies for other Set and Map api's.\n        }\n        if (!this.has(value)) {\n            transaction(() => {\n                this.data_.add(this.enhancer_(value, undefined))\n                this.atom_.reportChanged()\n            })\n            const notifySpy = __DEV__ && isSpyEnabled()\n            const notify = hasListeners(this)\n            const change =\n                notify || notifySpy\n                    ? <ISetDidChange<T>>{\n                          observableKind: \"set\",\n                          debugObjectName: this.name_,\n                          type: ADD,\n                          object: this,\n                          newValue: value\n                      }\n                    : null\n            if (notifySpy && __DEV__) {\n                spyReportStart(change!)\n            }\n            if (notify) {\n                notifyListeners(this, change)\n            }\n            if (notifySpy && __DEV__) {\n                spyReportEnd()\n            }\n        }\n\n        return this\n    }\n\n    delete(value: any) {\n        if (hasInterceptors(this)) {\n            const change = interceptChange<ISetWillChange<T>>(this, {\n                type: DELETE,\n                object: this,\n                oldValue: value\n            })\n            if (!change) {\n                return false\n            }\n        }\n        if (this.has(value)) {\n            const notifySpy = __DEV__ && isSpyEnabled()\n            const notify = hasListeners(this)\n            const change =\n                notify || notifySpy\n                    ? <ISetDidChange<T>>{\n                          observableKind: \"set\",\n                          debugObjectName: this.name_,\n                          type: DELETE,\n                          object: this,\n                          oldValue: value\n                      }\n                    : null\n\n            if (notifySpy && __DEV__) {\n                spyReportStart(change!)\n            }\n            transaction(() => {\n                this.atom_.reportChanged()\n                this.data_.delete(value)\n            })\n            if (notify) {\n                notifyListeners(this, change)\n            }\n            if (notifySpy && __DEV__) {\n                spyReportEnd()\n            }\n            return true\n        }\n        return false\n    }\n\n    has(value: any) {\n        this.atom_.reportObserved()\n        return this.data_.has(this.dehanceValue_(value))\n    }\n\n    entries() {\n        let nextIndex = 0\n        const keys = Array.from(this.keys())\n        const values = Array.from(this.values())\n        return makeIterable<[T, T]>({\n            next() {\n                const index = nextIndex\n                nextIndex += 1\n                return index < values.length\n                    ? { value: [keys[index], values[index]], done: false }\n                    : { done: true }\n            }\n        } as any)\n    }\n\n    keys(): IterableIterator<T> {\n        return this.values()\n    }\n\n    values(): IterableIterator<T> {\n        this.atom_.reportObserved()\n        const self = this\n        let nextIndex = 0\n        const observableValues = Array.from(this.data_.values())\n        return makeIterable<T>({\n            next() {\n                return nextIndex < observableValues.length\n                    ? { value: self.dehanceValue_(observableValues[nextIndex++]), done: false }\n                    : { done: true }\n            }\n        } as any)\n    }\n\n    replace(other: ObservableSet<T> | IObservableSetInitialValues<T>): ObservableSet<T> {\n        if (isObservableSet(other)) {\n            other = new Set(other)\n        }\n\n        transaction(() => {\n            if (Array.isArray(other)) {\n                this.clear()\n                other.forEach(value => this.add(value))\n            } else if (isES6Set(other)) {\n                this.clear()\n                other.forEach(value => this.add(value))\n            } else if (other !== null && other !== undefined) {\n                die(\"Cannot initialize set from \" + other)\n            }\n        })\n\n        return this\n    }\n    observe_(listener: (changes: ISetDidChange<T>) => void, fireImmediately?: boolean): Lambda {\n        // ... 'fireImmediately' could also be true?\n        if (__DEV__ && fireImmediately === true) {\n            die(\"`observe` doesn't support fireImmediately=true in combination with sets.\")\n        }\n        return registerListener(this, listener)\n    }\n\n    intercept_(handler: IInterceptor<ISetWillChange<T>>): Lambda {\n        return registerInterceptor(this, handler)\n    }\n\n    toJSON(): T[] {\n        return Array.from(this)\n    }\n\n    toString(): string {\n        return \"[object ObservableSet]\"\n    }\n\n    [Symbol.iterator]() {\n        return this.values()\n    }\n\n    get [Symbol.toStringTag]() {\n        return \"Set\"\n    }\n}\n\n// eslint-disable-next-line\nexport var isObservableSet = createInstanceofPredicate(\"ObservableSet\", ObservableSet) as (\n    thing: any\n) => thing is ObservableSet<any>\n","import {\n    CreateObservableOptions,\n    getAnnotationFromOptions,\n    propagateChanged,\n    isAnnotation,\n    $mobx,\n    Atom,\n    Annotation,\n    ComputedValue,\n    IAtom,\n    IComputedValueOptions,\n    IEnhancer,\n    IInterceptable,\n    IListenable,\n    Lambda,\n    ObservableValue,\n    addHiddenProp,\n    createInstanceofPredicate,\n    endBatch,\n    getNextId,\n    hasInterceptors,\n    hasListeners,\n    interceptChange,\n    isObject,\n    isPlainObject,\n    isSpyEnabled,\n    notifyListeners,\n    referenceEnhancer,\n    registerInterceptor,\n    registerListener,\n    spyReportEnd,\n    spyReportStart,\n    startBatch,\n    stringifyKey,\n    globalState,\n    ADD,\n    UPDATE,\n    die,\n    hasProp,\n    getDescriptor,\n    storedAnnotationsSymbol,\n    ownKeys,\n    isOverride,\n    defineProperty,\n    autoAnnotation,\n    getAdministration,\n    getDebugName,\n    objectPrototype,\n    MakeResult\n} from \"../internal\"\n\nconst descriptorCache = Object.create(null)\n\nexport type IObjectDidChange<T = any> = {\n    observableKind: \"object\"\n    name: PropertyKey\n    object: T\n    debugObjectName: string\n} & (\n    | {\n          type: \"add\"\n          newValue: any\n      }\n    | {\n          type: \"update\"\n          oldValue: any\n          newValue: any\n      }\n    | {\n          type: \"remove\"\n          oldValue: any\n      }\n)\n\nexport type IObjectWillChange<T = any> =\n    | {\n          object: T\n          type: \"update\" | \"add\"\n          name: PropertyKey\n          newValue: any\n      }\n    | {\n          object: T\n          type: \"remove\"\n          name: PropertyKey\n      }\n\nconst REMOVE = \"remove\"\n\nexport class ObservableObjectAdministration\n    implements IInterceptable<IObjectWillChange>, IListenable\n{\n    keysAtom_: IAtom\n    changeListeners_\n    interceptors_\n    proxy_: any\n    isPlainObject_: boolean\n    appliedAnnotations_?: object\n    private pendingKeys_: undefined | Map<PropertyKey, ObservableValue<boolean>>\n\n    constructor(\n        public target_: any,\n        public values_ = new Map<PropertyKey, ObservableValue<any> | ComputedValue<any>>(),\n        public name_: string,\n        // Used anytime annotation is not explicitely provided\n        public defaultAnnotation_: Annotation = autoAnnotation\n    ) {\n        this.keysAtom_ = new Atom(__DEV__ ? `${this.name_}.keys` : \"ObservableObject.keys\")\n        // Optimization: we use this frequently\n        this.isPlainObject_ = isPlainObject(this.target_)\n        if (__DEV__ && !isAnnotation(this.defaultAnnotation_)) {\n            die(`defaultAnnotation must be valid annotation`)\n        }\n        if (__DEV__) {\n            // Prepare structure for tracking which fields were already annotated\n            this.appliedAnnotations_ = {}\n        }\n    }\n\n    getObservablePropValue_(key: PropertyKey): any {\n        return this.values_.get(key)!.get()\n    }\n\n    setObservablePropValue_(key: PropertyKey, newValue): boolean | null {\n        const observable = this.values_.get(key)\n        if (observable instanceof ComputedValue) {\n            observable.set(newValue)\n            return true\n        }\n\n        // intercept\n        if (hasInterceptors(this)) {\n            const change = interceptChange<IObjectWillChange>(this, {\n                type: UPDATE,\n                object: this.proxy_ || this.target_,\n                name: key,\n                newValue\n            })\n            if (!change) {\n                return null\n            }\n            newValue = (change as any).newValue\n        }\n        newValue = (observable as any).prepareNewValue_(newValue)\n\n        // notify spy & observers\n        if (newValue !== globalState.UNCHANGED) {\n            const notify = hasListeners(this)\n            const notifySpy = __DEV__ && isSpyEnabled()\n            const change: IObjectDidChange | null =\n                notify || notifySpy\n                    ? {\n                          type: UPDATE,\n                          observableKind: \"object\",\n                          debugObjectName: this.name_,\n                          object: this.proxy_ || this.target_,\n                          oldValue: (observable as any).value_,\n                          name: key,\n                          newValue\n                      }\n                    : null\n\n            if (__DEV__ && notifySpy) {\n                spyReportStart(change!)\n            }\n            ;(observable as ObservableValue<any>).setNewValue_(newValue)\n            if (notify) {\n                notifyListeners(this, change)\n            }\n            if (__DEV__ && notifySpy) {\n                spyReportEnd()\n            }\n        }\n        return true\n    }\n\n    get_(key: PropertyKey): any {\n        if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n            // Key doesn't exist yet, subscribe for it in case it's added later\n            this.has_(key)\n        }\n        return this.target_[key]\n    }\n\n    /**\n     * @param {PropertyKey} key\n     * @param {any} value\n     * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n     * @param {boolean} proxyTrap whether it's called from proxy trap\n     * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n     */\n    set_(key: PropertyKey, value: any, proxyTrap: boolean = false): boolean | null {\n        // Don't use .has(key) - we care about own\n        if (hasProp(this.target_, key)) {\n            // Existing prop\n            if (this.values_.has(key)) {\n                // Observable (can be intercepted)\n                return this.setObservablePropValue_(key, value)\n            } else if (proxyTrap) {\n                // Non-observable - proxy\n                return Reflect.set(this.target_, key, value)\n            } else {\n                // Non-observable\n                this.target_[key] = value\n                return true\n            }\n        } else {\n            // New prop\n            return this.extend_(\n                key,\n                { value, enumerable: true, writable: true, configurable: true },\n                this.defaultAnnotation_,\n                proxyTrap\n            )\n        }\n    }\n\n    // Trap for \"in\"\n    has_(key: PropertyKey): boolean {\n        if (!globalState.trackingDerivation) {\n            // Skip key subscription outside derivation\n            return key in this.target_\n        }\n        this.pendingKeys_ ||= new Map()\n        let entry = this.pendingKeys_.get(key)\n        if (!entry) {\n            entry = new ObservableValue(\n                key in this.target_,\n                referenceEnhancer,\n                __DEV__ ? `${this.name_}.${stringifyKey(key)}?` : \"ObservableObject.key?\",\n                false\n            )\n            this.pendingKeys_.set(key, entry)\n        }\n        return entry.get()\n    }\n\n    /**\n     * @param {PropertyKey} key\n     * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n     */\n    make_(key: PropertyKey, annotation: Annotation | boolean): void {\n        if (annotation === true) {\n            annotation = this.defaultAnnotation_\n        }\n        if (annotation === false) {\n            return\n        }\n        assertAnnotable(this, annotation, key)\n        if (!(key in this.target_)) {\n            // Throw on missing key, except for decorators:\n            // Decorator annotations are collected from whole prototype chain.\n            // When called from super() some props may not exist yet.\n            // However we don't have to worry about missing prop,\n            // because the decorator must have been applied to something.\n            if (this.target_[storedAnnotationsSymbol]?.[key]) {\n                return // will be annotated by subclass constructor\n            } else {\n                die(1, annotation.annotationType_, `${this.name_}.${key.toString()}`)\n            }\n        }\n        let source = this.target_\n        while (source && source !== objectPrototype) {\n            const descriptor = getDescriptor(source, key)\n            if (descriptor) {\n                const outcome = annotation.make_(this, key, descriptor, source)\n                if (outcome === MakeResult.Cancel) {\n                    return\n                }\n                if (outcome === MakeResult.Break) {\n                    break\n                }\n            }\n            source = Object.getPrototypeOf(source)\n        }\n        recordAnnotationApplied(this, annotation, key)\n    }\n\n    /**\n     * @param {PropertyKey} key\n     * @param {PropertyDescriptor} descriptor\n     * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n     * @param {boolean} proxyTrap whether it's called from proxy trap\n     * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n     */\n    extend_(\n        key: PropertyKey,\n        descriptor: PropertyDescriptor,\n        annotation: Annotation | boolean,\n        proxyTrap: boolean = false\n    ): boolean | null {\n        if (annotation === true) {\n            annotation = this.defaultAnnotation_\n        }\n        if (annotation === false) {\n            return this.defineProperty_(key, descriptor, proxyTrap)\n        }\n        assertAnnotable(this, annotation, key)\n        const outcome = annotation.extend_(this, key, descriptor, proxyTrap)\n        if (outcome) {\n            recordAnnotationApplied(this, annotation, key)\n        }\n        return outcome\n    }\n\n    /**\n     * @param {PropertyKey} key\n     * @param {PropertyDescriptor} descriptor\n     * @param {boolean} proxyTrap whether it's called from proxy trap\n     * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n     */\n    defineProperty_(\n        key: PropertyKey,\n        descriptor: PropertyDescriptor,\n        proxyTrap: boolean = false\n    ): boolean | null {\n        try {\n            startBatch()\n\n            // Delete\n            const deleteOutcome = this.delete_(key)\n            if (!deleteOutcome) {\n                // Failure or intercepted\n                return deleteOutcome\n            }\n\n            // ADD interceptor\n            if (hasInterceptors(this)) {\n                const change = interceptChange<IObjectWillChange>(this, {\n                    object: this.proxy_ || this.target_,\n                    name: key,\n                    type: ADD,\n                    newValue: descriptor.value\n                })\n                if (!change) {\n                    return null\n                }\n                const { newValue } = change as any\n                if (descriptor.value !== newValue) {\n                    descriptor = {\n                        ...descriptor,\n                        value: newValue\n                    }\n                }\n            }\n\n            // Define\n            if (proxyTrap) {\n                if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n                    return false\n                }\n            } else {\n                defineProperty(this.target_, key, descriptor)\n            }\n\n            // Notify\n            this.notifyPropertyAddition_(key, descriptor.value)\n        } finally {\n            endBatch()\n        }\n        return true\n    }\n\n    // If original descriptor becomes relevant, move this to annotation directly\n    defineObservableProperty_(\n        key: PropertyKey,\n        value: any,\n        enhancer: IEnhancer<any>,\n        proxyTrap: boolean = false\n    ): boolean | null {\n        try {\n            startBatch()\n\n            // Delete\n            const deleteOutcome = this.delete_(key)\n            if (!deleteOutcome) {\n                // Failure or intercepted\n                return deleteOutcome\n            }\n\n            // ADD interceptor\n            if (hasInterceptors(this)) {\n                const change = interceptChange<IObjectWillChange>(this, {\n                    object: this.proxy_ || this.target_,\n                    name: key,\n                    type: ADD,\n                    newValue: value\n                })\n                if (!change) {\n                    return null\n                }\n                value = (change as any).newValue\n            }\n\n            const cachedDescriptor = getCachedObservablePropDescriptor(key)\n            const descriptor = {\n                configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n                enumerable: true,\n                get: cachedDescriptor.get,\n                set: cachedDescriptor.set\n            }\n\n            // Define\n            if (proxyTrap) {\n                if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n                    return false\n                }\n            } else {\n                defineProperty(this.target_, key, descriptor)\n            }\n\n            const observable = new ObservableValue(\n                value,\n                enhancer,\n                __DEV__ ? `${this.name_}.${key.toString()}` : \"ObservableObject.key\",\n                false\n            )\n\n            this.values_.set(key, observable)\n\n            // Notify (value possibly changed by ObservableValue)\n            this.notifyPropertyAddition_(key, observable.value_)\n        } finally {\n            endBatch()\n        }\n        return true\n    }\n\n    // If original descriptor becomes relevant, move this to annotation directly\n    defineComputedProperty_(\n        key: PropertyKey,\n        options: IComputedValueOptions<any>,\n        proxyTrap: boolean = false\n    ): boolean | null {\n        try {\n            startBatch()\n\n            // Delete\n            const deleteOutcome = this.delete_(key)\n            if (!deleteOutcome) {\n                // Failure or intercepted\n                return deleteOutcome\n            }\n\n            // ADD interceptor\n            if (hasInterceptors(this)) {\n                const change = interceptChange<IObjectWillChange>(this, {\n                    object: this.proxy_ || this.target_,\n                    name: key,\n                    type: ADD,\n                    newValue: undefined\n                })\n                if (!change) {\n                    return null\n                }\n            }\n            options.name ||= __DEV__ ? `${this.name_}.${key.toString()}` : \"ObservableObject.key\"\n            options.context = this.proxy_ || this.target_\n            const cachedDescriptor = getCachedObservablePropDescriptor(key)\n            const descriptor = {\n                configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n                enumerable: false,\n                get: cachedDescriptor.get,\n                set: cachedDescriptor.set\n            }\n\n            // Define\n            if (proxyTrap) {\n                if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n                    return false\n                }\n            } else {\n                defineProperty(this.target_, key, descriptor)\n            }\n\n            this.values_.set(key, new ComputedValue(options))\n\n            // Notify\n            this.notifyPropertyAddition_(key, undefined)\n        } finally {\n            endBatch()\n        }\n        return true\n    }\n\n    /**\n     * @param {PropertyKey} key\n     * @param {PropertyDescriptor} descriptor\n     * @param {boolean} proxyTrap whether it's called from proxy trap\n     * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n     */\n    delete_(key: PropertyKey, proxyTrap: boolean = false): boolean | null {\n        // No such prop\n        if (!hasProp(this.target_, key)) {\n            return true\n        }\n\n        // Intercept\n        if (hasInterceptors(this)) {\n            const change = interceptChange<IObjectWillChange>(this, {\n                object: this.proxy_ || this.target_,\n                name: key,\n                type: REMOVE\n            })\n            // Cancelled\n            if (!change) {\n                return null\n            }\n        }\n\n        // Delete\n        try {\n            startBatch()\n            const notify = hasListeners(this)\n            const notifySpy = __DEV__ && isSpyEnabled()\n            const observable = this.values_.get(key)\n            // Value needed for spies/listeners\n            let value = undefined\n            // Optimization: don't pull the value unless we will need it\n            if (!observable && (notify || notifySpy)) {\n                value = getDescriptor(this.target_, key)?.value\n            }\n            // delete prop (do first, may fail)\n            if (proxyTrap) {\n                if (!Reflect.deleteProperty(this.target_, key)) {\n                    return false\n                }\n            } else {\n                delete this.target_[key]\n            }\n            // Allow re-annotating this field\n            if (__DEV__) {\n                delete this.appliedAnnotations_![key]\n            }\n            // Clear observable\n            if (observable) {\n                this.values_.delete(key)\n                // for computed, value is undefined\n                if (observable instanceof ObservableValue) {\n                    value = observable.value_\n                }\n                // Notify: autorun(() => obj[key]), see #1796\n                propagateChanged(observable)\n            }\n            // Notify \"keys/entries/values\" observers\n            this.keysAtom_.reportChanged()\n\n            // Notify \"has\" observers\n            // \"in\" as it may still exist in proto\n            this.pendingKeys_?.get(key)?.set(key in this.target_)\n\n            // Notify spies/listeners\n            if (notify || notifySpy) {\n                const change: IObjectDidChange = {\n                    type: REMOVE,\n                    observableKind: \"object\",\n                    object: this.proxy_ || this.target_,\n                    debugObjectName: this.name_,\n                    oldValue: value,\n                    name: key\n                }\n                if (__DEV__ && notifySpy) {\n                    spyReportStart(change!)\n                }\n                if (notify) {\n                    notifyListeners(this, change)\n                }\n                if (__DEV__ && notifySpy) {\n                    spyReportEnd()\n                }\n            }\n        } finally {\n            endBatch()\n        }\n        return true\n    }\n\n    /**\n     * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n     * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n     * for callback details\n     */\n    observe_(callback: (changes: IObjectDidChange) => void, fireImmediately?: boolean): Lambda {\n        if (__DEV__ && fireImmediately === true) {\n            die(\"`observe` doesn't support the fire immediately property for observable objects.\")\n        }\n        return registerListener(this, callback)\n    }\n\n    intercept_(handler): Lambda {\n        return registerInterceptor(this, handler)\n    }\n\n    notifyPropertyAddition_(key: PropertyKey, value: any) {\n        const notify = hasListeners(this)\n        const notifySpy = __DEV__ && isSpyEnabled()\n        if (notify || notifySpy) {\n            const change: IObjectDidChange | null =\n                notify || notifySpy\n                    ? ({\n                          type: ADD,\n                          observableKind: \"object\",\n                          debugObjectName: this.name_,\n                          object: this.proxy_ || this.target_,\n                          name: key,\n                          newValue: value\n                      } as const)\n                    : null\n\n            if (__DEV__ && notifySpy) {\n                spyReportStart(change!)\n            }\n            if (notify) {\n                notifyListeners(this, change)\n            }\n            if (__DEV__ && notifySpy) {\n                spyReportEnd()\n            }\n        }\n\n        this.pendingKeys_?.get(key)?.set(true)\n\n        // Notify \"keys/entries/values\" observers\n        this.keysAtom_.reportChanged()\n    }\n\n    ownKeys_(): ArrayLike<string | symbol> {\n        this.keysAtom_.reportObserved()\n        return ownKeys(this.target_)\n    }\n\n    keys_(): PropertyKey[] {\n        // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n        // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n        // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n        // We choose to over-report in Object.keys(object), because:\n        // - typically it's used with simple data objects\n        // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n        this.keysAtom_.reportObserved()\n        return Object.keys(this.target_)\n    }\n}\n\nexport interface IIsObservableObject {\n    $mobx: ObservableObjectAdministration\n}\n\nexport function asObservableObject(\n    target: any,\n    options?: CreateObservableOptions\n): IIsObservableObject {\n    if (__DEV__ && options && isObservableObject(target)) {\n        die(`Options can't be provided for already observable objects.`)\n    }\n\n    if (hasProp(target, $mobx)) {\n        if (__DEV__ && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n            die(\n                `Cannot convert '${getDebugName(target)}' into observable object:` +\n                    `\\nThe target is already observable of different type.` +\n                    `\\nExtending builtins is not supported.`\n            )\n        }\n        return target\n    }\n\n    if (__DEV__ && !Object.isExtensible(target)) {\n        die(\"Cannot make the designated object observable; it is not extensible\")\n    }\n\n    const name =\n        options?.name ??\n        (__DEV__\n            ? `${\n                  isPlainObject(target) ? \"ObservableObject\" : target.constructor.name\n              }@${getNextId()}`\n            : \"ObservableObject\")\n\n    const adm = new ObservableObjectAdministration(\n        target,\n        new Map(),\n        String(name),\n        getAnnotationFromOptions(options)\n    )\n\n    addHiddenProp(target, $mobx, adm)\n\n    return target\n}\n\nconst isObservableObjectAdministration = createInstanceofPredicate(\n    \"ObservableObjectAdministration\",\n    ObservableObjectAdministration\n)\n\nfunction getCachedObservablePropDescriptor(key) {\n    return (\n        descriptorCache[key] ||\n        (descriptorCache[key] = {\n            get() {\n                return this[$mobx].getObservablePropValue_(key)\n            },\n            set(value) {\n                return this[$mobx].setObservablePropValue_(key, value)\n            }\n        })\n    )\n}\n\nexport function isObservableObject(thing: any): boolean {\n    if (isObject(thing)) {\n        return isObservableObjectAdministration((thing as any)[$mobx])\n    }\n    return false\n}\n\nexport function recordAnnotationApplied(\n    adm: ObservableObjectAdministration,\n    annotation: Annotation,\n    key: PropertyKey\n) {\n    if (__DEV__) {\n        adm.appliedAnnotations_![key] = annotation\n    }\n    // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n    delete adm.target_[storedAnnotationsSymbol]?.[key]\n}\n\nfunction assertAnnotable(\n    adm: ObservableObjectAdministration,\n    annotation: Annotation,\n    key: PropertyKey\n) {\n    // Valid annotation\n    if (__DEV__ && !isAnnotation(annotation)) {\n        die(`Cannot annotate '${adm.name_}.${key.toString()}': Invalid annotation.`)\n    }\n\n    /*\n    // Configurable, not sealed, not frozen\n    // Possibly not needed, just a little better error then the one thrown by engine.\n    // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n    if (__DEV__) {\n        const configurable = getDescriptor(adm.target_, key)?.configurable\n        const frozen = Object.isFrozen(adm.target_)\n        const sealed = Object.isSealed(adm.target_)\n        if (!configurable || frozen || sealed) {\n            const fieldName = `${adm.name_}.${key.toString()}`\n            const requestedAnnotationType = annotation.annotationType_\n            let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n            if (frozen) {\n                error += `\\nObject is frozen.`\n            }\n            if (sealed) {\n                error += `\\nObject is sealed.`\n            }\n            if (!configurable) {\n                error += `\\nproperty is not configurable.`\n                // Mention only if caused by us to avoid confusion\n                if (hasProp(adm.appliedAnnotations!, key)) {\n                    error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n                    error += `all annotated fields of non-plain objects (classes) are not configurable.`\n                }\n            }\n            die(error)\n        }\n    }\n    */\n\n    // Not annotated\n    if (__DEV__ && !isOverride(annotation) && hasProp(adm.appliedAnnotations_!, key)) {\n        const fieldName = `${adm.name_}.${key.toString()}`\n        const currentAnnotationType = adm.appliedAnnotations_![key].annotationType_\n        const requestedAnnotationType = annotation.annotationType_\n        die(\n            `Cannot apply '${requestedAnnotationType}' to '${fieldName}':` +\n                `\\nThe field is already annotated with '${currentAnnotationType}'.` +\n                `\\nRe-annotating fields is not allowed.` +\n                `\\nUse 'override' annotation for methods overriden by subclass.`\n        )\n    }\n}\n","import {\n    getNextId,\n    addHiddenFinalProp,\n    allowStateChangesStart,\n    allowStateChangesEnd,\n    makeIterable,\n    addHiddenProp,\n    ObservableArrayAdministration,\n    $mobx,\n    arrayExtensions,\n    IEnhancer,\n    isObservableArray,\n    IObservableArray,\n    defineProperty\n} from \"../internal\"\n\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nlet OBSERVABLE_ARRAY_BUFFER_SIZE = 0\n\n// Typescript workaround to make sure ObservableArray extends Array\nclass StubArray {}\nfunction inherit(ctor, proto) {\n    if (Object.setPrototypeOf) {\n        Object.setPrototypeOf(ctor.prototype, proto)\n    } else if (ctor.prototype.__proto__ !== undefined) {\n        ctor.prototype.__proto__ = proto\n    } else {\n        ctor.prototype = proto\n    }\n}\ninherit(StubArray, Array.prototype)\n\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\n\nclass LegacyObservableArray<T> extends StubArray {\n    constructor(\n        initialValues: T[] | undefined,\n        enhancer: IEnhancer<T>,\n        name = __DEV__ ? \"ObservableArray@\" + getNextId() : \"ObservableArray\",\n        owned = false\n    ) {\n        super()\n\n        const adm = new ObservableArrayAdministration(name, enhancer, owned, true)\n        adm.proxy_ = this as any\n        addHiddenFinalProp(this, $mobx, adm)\n\n        if (initialValues && initialValues.length) {\n            const prev = allowStateChangesStart(true)\n            // @ts-ignore\n            this.spliceWithArray(0, 0, initialValues)\n            allowStateChangesEnd(prev)\n        }\n    }\n\n    concat(...arrays: T[][]): T[] {\n        ;(this[$mobx] as ObservableArrayAdministration).atom_.reportObserved()\n        return Array.prototype.concat.apply(\n            (this as any).slice(),\n            //@ts-ignore\n            arrays.map(a => (isObservableArray(a) ? a.slice() : a))\n        )\n    }\n\n    get length(): number {\n        return (this[$mobx] as ObservableArrayAdministration).getArrayLength_()\n    }\n\n    set length(newLength: number) {\n        ;(this[$mobx] as ObservableArrayAdministration).setArrayLength_(newLength)\n    }\n\n    get [Symbol.toStringTag]() {\n        return \"Array\"\n    }\n\n    [Symbol.iterator]() {\n        const self = this\n        let nextIndex = 0\n        return makeIterable({\n            next() {\n                return nextIndex < self.length\n                    ? { value: self[nextIndex++], done: false }\n                    : { done: true, value: undefined }\n            }\n        })\n    }\n}\n\nObject.entries(arrayExtensions).forEach(([prop, fn]) => {\n    if (prop !== \"concat\") {\n        addHiddenProp(LegacyObservableArray.prototype, prop, fn)\n    }\n})\n\nfunction createArrayEntryDescriptor(index: number) {\n    return {\n        enumerable: false,\n        configurable: true,\n        get: function () {\n            return this[$mobx].get_(index)\n        },\n        set: function (value) {\n            this[$mobx].set_(index, value)\n        }\n    }\n}\n\nfunction createArrayBufferItem(index: number) {\n    defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index))\n}\n\nexport function reserveArrayBuffer(max: number) {\n    if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n        for (let index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n            createArrayBufferItem(index)\n        }\n        OBSERVABLE_ARRAY_BUFFER_SIZE = max\n    }\n}\n\nreserveArrayBuffer(1000)\n\nexport function createLegacyArray<T>(\n    initialValues: T[] | undefined,\n    enhancer: IEnhancer<T>,\n    name?: string\n): IObservableArray<T> {\n    return new LegacyObservableArray(initialValues, enhancer, name) as any\n}\n","import { isAction } from \"../api/action\"\nimport {\n    $mobx,\n    IDepTreeNode,\n    isAtom,\n    isComputedValue,\n    isObservableArray,\n    isObservableMap,\n    isObservableObject,\n    isReaction,\n    isObservableSet,\n    die,\n    isFunction\n} from \"../internal\"\n\nexport function getAtom(thing: any, property?: PropertyKey): IDepTreeNode {\n    if (typeof thing === \"object\" && thing !== null) {\n        if (isObservableArray(thing)) {\n            if (property !== undefined) {\n                die(23)\n            }\n            return (thing as any)[$mobx].atom_\n        }\n        if (isObservableSet(thing)) {\n            return (thing as any)[$mobx]\n        }\n        if (isObservableMap(thing)) {\n            if (property === undefined) {\n                return thing.keysAtom_\n            }\n            const observable = thing.data_.get(property) || thing.hasMap_.get(property)\n            if (!observable) {\n                die(25, property, getDebugName(thing))\n            }\n            return observable\n        }\n        if (property && !thing[$mobx]) {\n            thing[property]\n        } // See #1072\n        if (isObservableObject(thing)) {\n            if (!property) {\n                return die(26)\n            }\n            const observable = (thing as any)[$mobx].values_.get(property)\n            if (!observable) {\n                die(27, property, getDebugName(thing))\n            }\n            return observable\n        }\n        if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n            return thing\n        }\n    } else if (isFunction(thing)) {\n        if (isReaction(thing[$mobx])) {\n            // disposer function\n            return thing[$mobx]\n        }\n    }\n    die(28)\n}\n\nexport function getAdministration(thing: any, property?: string) {\n    if (!thing) {\n        die(29)\n    }\n    if (property !== undefined) {\n        return getAdministration(getAtom(thing, property))\n    }\n    if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n        return thing\n    }\n    if (isObservableMap(thing) || isObservableSet(thing)) {\n        return thing\n    }\n    if (thing[$mobx]) {\n        return thing[$mobx]\n    }\n    die(24, thing)\n}\n\nexport function getDebugName(thing: any, property?: string): string {\n    let named\n    if (property !== undefined) {\n        named = getAtom(thing, property)\n    } else if (isAction(thing)) {\n        return thing.name\n    } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n        named = getAdministration(thing)\n    } else {\n        // valid for arrays as well\n        named = getAtom(thing)\n    }\n    return named.name_\n}\n","import {\n    isES6Map,\n    isObservableArray,\n    isObservableMap,\n    isES6Set,\n    isObservableSet,\n    hasProp,\n    isFunction,\n    objectPrototype\n} from \"../internal\"\n\ndeclare const Symbol\nconst toString = objectPrototype.toString\n\nexport function deepEqual(a: any, b: any, depth: number = -1): boolean {\n    return eq(a, b, depth)\n}\n\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a: any, b: any, depth: number, aStack?: any[], bStack?: any[]) {\n    // Identical objects are equal. `0 === -0`, but they aren't identical.\n    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n    if (a === b) {\n        return a !== 0 || 1 / a === 1 / b\n    }\n    // `null` or `undefined` only equal to itself (strict comparison).\n    if (a == null || b == null) {\n        return false\n    }\n    // `NaN`s are equivalent, but non-reflexive.\n    if (a !== a) {\n        return b !== b\n    }\n    // Exhaust primitive checks\n    const type = typeof a\n    if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n        return false\n    }\n\n    // Compare `[[Class]]` names.\n    const className = toString.call(a)\n    if (className !== toString.call(b)) {\n        return false\n    }\n    switch (className) {\n        // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n        case \"[object RegExp]\":\n        // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n        case \"[object String]\":\n            // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n            // equivalent to `new String(\"5\")`.\n            return \"\" + a === \"\" + b\n        case \"[object Number]\":\n            // `NaN`s are equivalent, but non-reflexive.\n            // Object(NaN) is equivalent to NaN.\n            if (+a !== +a) {\n                return +b !== +b\n            }\n            // An `egal` comparison is performed for other numeric values.\n            return +a === 0 ? 1 / +a === 1 / b : +a === +b\n        case \"[object Date]\":\n        case \"[object Boolean]\":\n            // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n            // millisecond representations. Note that invalid dates with millisecond representations\n            // of `NaN` are not equivalent.\n            return +a === +b\n        case \"[object Symbol]\":\n            return (\n                typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b)\n            )\n        case \"[object Map]\":\n        case \"[object Set]\":\n            // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n            // Hide this extra level by increasing the depth.\n            if (depth >= 0) {\n                depth++\n            }\n            break\n    }\n    // Unwrap any wrapped objects.\n    a = unwrap(a)\n    b = unwrap(b)\n\n    const areArrays = className === \"[object Array]\"\n    if (!areArrays) {\n        if (typeof a != \"object\" || typeof b != \"object\") {\n            return false\n        }\n\n        // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n        // from different frames are.\n        const aCtor = a.constructor,\n            bCtor = b.constructor\n        if (\n            aCtor !== bCtor &&\n            !(\n                isFunction(aCtor) &&\n                aCtor instanceof aCtor &&\n                isFunction(bCtor) &&\n                bCtor instanceof bCtor\n            ) &&\n            \"constructor\" in a &&\n            \"constructor\" in b\n        ) {\n            return false\n        }\n    }\n\n    if (depth === 0) {\n        return false\n    } else if (depth < 0) {\n        depth = -1\n    }\n\n    // Assume equality for cyclic structures. The algorithm for detecting cyclic\n    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n    // Initializing stack of traversed objects.\n    // It's done here since we only need them for objects and arrays comparison.\n    aStack = aStack || []\n    bStack = bStack || []\n    let length = aStack.length\n    while (length--) {\n        // Linear search. Performance is inversely proportional to the number of\n        // unique nested structures.\n        if (aStack[length] === a) {\n            return bStack[length] === b\n        }\n    }\n\n    // Add the first object to the stack of traversed objects.\n    aStack.push(a)\n    bStack.push(b)\n\n    // Recursively compare objects and arrays.\n    if (areArrays) {\n        // Compare array lengths to determine if a deep comparison is necessary.\n        length = a.length\n        if (length !== b.length) {\n            return false\n        }\n        // Deep compare the contents, ignoring non-numeric properties.\n        while (length--) {\n            if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n                return false\n            }\n        }\n    } else {\n        // Deep compare objects.\n        const keys = Object.keys(a)\n        let key\n        length = keys.length\n        // Ensure that both objects contain the same number of properties before comparing deep equality.\n        if (Object.keys(b).length !== length) {\n            return false\n        }\n        while (length--) {\n            // Deep compare each member\n            key = keys[length]\n            if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n                return false\n            }\n        }\n    }\n    // Remove the first object from the stack of traversed objects.\n    aStack.pop()\n    bStack.pop()\n    return true\n}\n\nfunction unwrap(a: any) {\n    if (isObservableArray(a)) {\n        return a.slice()\n    }\n    if (isES6Map(a) || isObservableMap(a)) {\n        return Array.from(a.entries())\n    }\n    if (isES6Set(a) || isObservableSet(a)) {\n        return Array.from(a.entries())\n    }\n    return a\n}\n","export function makeIterable<T>(iterator: Iterator<T>): IterableIterator<T> {\n    iterator[Symbol.iterator] = getSelf\n    return iterator as any\n}\n\nfunction getSelf() {\n    return this\n}\n","import { makeObservable } from \"mobx\"\nimport { useState } from \"react\"\n\nif (!useState) {\n    throw new Error(\"mobx-react-lite requires React with Hooks support\")\n}\nif (!makeObservable) {\n    throw new Error(\"mobx-react-lite@3 requires mobx at least version 6 to be available\")\n}\n","/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get an global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/     Most of the public static methods exposed by the module can be found here.\n * - core/    Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/   All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/   Utility stuff.\n *\n */\nimport { die } from \"./errors\"\nimport { getGlobal } from \"./utils/global\"\n;[\"Symbol\", \"Map\", \"Set\"].forEach(m => {\n    let g = getGlobal()\n    if (typeof g[m] === \"undefined\") {\n        die(`MobX requires global '${m}' to be available or polyfilled`)\n    }\n})\n\nimport { spy, getDebugName, $mobx } from \"./internal\"\n\nexport {\n    IObservable,\n    IDepTreeNode,\n    Reaction,\n    IReactionPublic,\n    IReactionDisposer,\n    untracked,\n    IAtom,\n    createAtom,\n    spy,\n    IComputedValue,\n    IEqualsComparer,\n    comparer,\n    IEnhancer,\n    IInterceptable,\n    IInterceptor,\n    IListenable,\n    IObjectWillChange,\n    IObjectDidChange,\n    isObservableObject,\n    IValueDidChange,\n    IValueWillChange,\n    IObservableValue,\n    isObservableValue as isBoxedObservable,\n    IObservableArray,\n    IArrayWillChange,\n    IArrayWillSplice,\n    IArraySplice,\n    IArrayUpdate,\n    IArrayDidChange,\n    isObservableArray,\n    IKeyValueMap,\n    ObservableMap,\n    IMapEntries,\n    IMapEntry,\n    IMapWillChange,\n    IMapDidChange,\n    isObservableMap,\n    IObservableMapInitialValues,\n    ObservableSet,\n    isObservableSet,\n    ISetDidChange,\n    ISetWillChange,\n    IObservableSetInitialValues,\n    transaction,\n    observable,\n    IObservableFactory,\n    CreateObservableOptions,\n    computed,\n    IComputedFactory,\n    isObservable,\n    isObservableProp,\n    isComputed,\n    isComputedProp,\n    extendObservable,\n    observe,\n    intercept,\n    autorun,\n    IAutorunOptions,\n    reaction,\n    IReactionOptions,\n    when,\n    IWhenOptions,\n    action,\n    isAction,\n    runInAction,\n    IActionFactory,\n    keys,\n    values,\n    entries,\n    set,\n    remove,\n    has,\n    get,\n    apiOwnKeys as ownKeys,\n    apiDefineProperty as defineProperty,\n    configure,\n    onBecomeObserved,\n    onBecomeUnobserved,\n    flow,\n    isFlow,\n    flowResult,\n    FlowCancellationError,\n    isFlowCancellationError,\n    toJS,\n    trace,\n    IObserverTree,\n    IDependencyTree,\n    getDependencyTree,\n    getObserverTree,\n    resetGlobalState as _resetGlobalState,\n    getGlobalState as _getGlobalState,\n    getDebugName,\n    getAtom,\n    getAdministration as _getAdministration,\n    allowStateChanges as _allowStateChanges,\n    runInAction as _allowStateChangesInsideComputed, // This has become the default behavior in Mobx 6\n    Lambda,\n    $mobx,\n    isComputingDerivation as _isComputingDerivation,\n    onReactionError,\n    interceptReads as _interceptReads,\n    IComputedValueOptions,\n    IActionRunInfo,\n    _startAction,\n    _endAction,\n    allowStateReadsStart as _allowStateReadsStart,\n    allowStateReadsEnd as _allowStateReadsEnd,\n    makeObservable,\n    makeAutoObservable,\n    autoAction as _autoAction,\n    AnnotationsMap,\n    AnnotationMapEntry,\n    override\n} from \"./internal\"\n\n// Devtools support\ndeclare const __MOBX_DEVTOOLS_GLOBAL_HOOK__: { injectMobx: (any) => void }\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n    // See: https://github.com/andykog/mobx-devtools/\n    __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n        spy,\n        extras: {\n            getDebugName\n        },\n        $mobx\n    })\n}\n","import { configure } from \"mobx\"\n\nexport function defaultNoopBatch(callback: () => void) {\n    callback()\n}\n\nexport function observerBatching(reactionScheduler: any) {\n    if (!reactionScheduler) {\n        reactionScheduler = defaultNoopBatch\n        if (\"production\" !== process.env.NODE_ENV) {\n            console.warn(\n                \"[MobX] Failed to get unstable_batched updates from react-dom / react-native\"\n            )\n        }\n    }\n    configure({ reactionScheduler })\n}\n\nexport const isObserverBatched = () => {\n    if (\"production\" !== process.env.NODE_ENV) {\n        console.warn(\"[MobX] Deprecated\")\n    }\n\n    return true\n}\n","import { getDependencyTree, Reaction } from \"mobx\"\n\nexport function printDebugValue(v: Reaction) {\n    return getDependencyTree(v)\n}\n","declare class FinalizationRegistryType<T> {\n    constructor(cleanup: (cleanupToken: T) => void)\n    register(object: object, cleanupToken: T, unregisterToken?: object): void\n    unregister(unregisterToken: object): void\n}\n\ndeclare const FinalizationRegistry: typeof FinalizationRegistryType | undefined\n\nconst FinalizationRegistryLocal =\n    typeof FinalizationRegistry === \"undefined\" ? undefined : FinalizationRegistry\n\nexport { FinalizationRegistryLocal as FinalizationRegistry }\n","import { Reaction } from \"mobx\"\n\nexport function createTrackingData(reaction: Reaction) {\n    const trackingData: IReactionTracking = {\n        reaction,\n        mounted: false,\n        changedBeforeMount: false,\n        cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS\n    }\n    return trackingData\n}\n\n/**\n * Unified api for timers/Finalization registry cleanups\n * This abstraction make useObserver much simpler\n */\nexport interface ReactionCleanupTracking {\n    /**\n     *\n     * @param reaction The reaction to cleanup\n     * @param objectRetainedByReact This will be in actual use only when FinalizationRegister is in use\n     */\n    addReactionToTrack(\n        reactionTrackingRef: React.MutableRefObject<IReactionTracking | null>,\n        reaction: Reaction,\n        objectRetainedByReact: object\n    ): IReactionTracking\n    recordReactionAsCommitted(reactionRef: React.MutableRefObject<IReactionTracking | null>): void\n    forceCleanupTimerToRunNowForTests(): void\n    resetCleanupScheduleForTests(): void\n}\n\nexport interface IReactionTracking {\n    /** The Reaction created during first render, which may be leaked */\n    reaction: Reaction\n    /**\n     * The time (in ticks) at which point we should dispose of the reaction\n     * if this component hasn't yet been fully mounted.\n     */\n    cleanAt: number\n\n    /**\n     * Whether the component has yet completed mounting (for us, whether\n     * its useEffect has run)\n     */\n    mounted: boolean\n\n    /**\n     * Whether the observables that the component is tracking changed between\n     * the first render and the first useEffect.\n     */\n    changedBeforeMount: boolean\n\n    /**\n     * In case we are using finalization registry based cleanup,\n     * this will hold the cleanup token associated with this reaction\n     */\n    finalizationRegistryCleanupToken?: number\n}\n\n/**\n * The minimum time before we'll clean up a Reaction created in a render\n * for a component that hasn't managed to run its effects. This needs to\n * be big enough to ensure that a component won't turn up and have its\n * effects run without being re-rendered.\n */\nexport const CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 10_000\n\n/**\n * The frequency with which we'll check for leaked reactions.\n */\nexport const CLEANUP_TIMER_LOOP_MILLIS = 10_000\n","import { FinalizationRegistry as FinalizationRegistryMaybeUndefined } from \"./FinalizationRegistryWrapper\"\nimport { createReactionCleanupTrackingUsingFinalizationRegister } from \"./createReactionCleanupTrackingUsingFinalizationRegister\"\nimport { createTimerBasedReactionCleanupTracking } from \"./createTimerBasedReactionCleanupTracking\"\nexport { IReactionTracking } from \"./reactionCleanupTrackingCommon\"\n\nconst {\n    addReactionToTrack,\n    recordReactionAsCommitted,\n    resetCleanupScheduleForTests,\n    forceCleanupTimerToRunNowForTests\n} = FinalizationRegistryMaybeUndefined\n    ? createReactionCleanupTrackingUsingFinalizationRegister(FinalizationRegistryMaybeUndefined)\n    : createTimerBasedReactionCleanupTracking()\n\nexport {\n    addReactionToTrack,\n    recordReactionAsCommitted,\n    resetCleanupScheduleForTests,\n    forceCleanupTimerToRunNowForTests\n}\n","import { FinalizationRegistry as FinalizationRegistryMaybeUndefined } from \"./FinalizationRegistryWrapper\"\nimport { Reaction } from \"mobx\"\nimport {\n    ReactionCleanupTracking,\n    IReactionTracking,\n    createTrackingData\n} from \"./reactionCleanupTrackingCommon\"\n\n/**\n * FinalizationRegistry-based uncommitted reaction cleanup\n */\nexport function createReactionCleanupTrackingUsingFinalizationRegister(\n    FinalizationRegistry: NonNullable<typeof FinalizationRegistryMaybeUndefined>\n): ReactionCleanupTracking {\n    const cleanupTokenToReactionTrackingMap = new Map<number, IReactionTracking>()\n    let globalCleanupTokensCounter = 1\n\n    const registry = new FinalizationRegistry(function cleanupFunction(token: number) {\n        const trackedReaction = cleanupTokenToReactionTrackingMap.get(token)\n        if (trackedReaction) {\n            trackedReaction.reaction.dispose()\n            cleanupTokenToReactionTrackingMap.delete(token)\n        }\n    })\n\n    return {\n        addReactionToTrack(\n            reactionTrackingRef: React.MutableRefObject<IReactionTracking | null>,\n            reaction: Reaction,\n            objectRetainedByReact: object\n        ) {\n            const token = globalCleanupTokensCounter++\n\n            registry.register(objectRetainedByReact, token, reactionTrackingRef)\n            reactionTrackingRef.current = createTrackingData(reaction)\n            reactionTrackingRef.current.finalizationRegistryCleanupToken = token\n            cleanupTokenToReactionTrackingMap.set(token, reactionTrackingRef.current)\n\n            return reactionTrackingRef.current\n        },\n        recordReactionAsCommitted(reactionRef: React.MutableRefObject<IReactionTracking | null>) {\n            registry.unregister(reactionRef)\n\n            if (reactionRef.current && reactionRef.current.finalizationRegistryCleanupToken) {\n                cleanupTokenToReactionTrackingMap.delete(\n                    reactionRef.current.finalizationRegistryCleanupToken\n                )\n            }\n        },\n        forceCleanupTimerToRunNowForTests() {\n            // When FinalizationRegistry in use, this this is no-op\n        },\n        resetCleanupScheduleForTests() {\n            // When FinalizationRegistry in use, this this is no-op\n        }\n    }\n}\n","import { Reaction } from \"mobx\"\nimport {\n    ReactionCleanupTracking,\n    IReactionTracking,\n    CLEANUP_TIMER_LOOP_MILLIS,\n    createTrackingData\n} from \"./reactionCleanupTrackingCommon\"\n\n/**\n * timers, gc-style, uncommitted reaction cleanup\n */\nexport function createTimerBasedReactionCleanupTracking(): ReactionCleanupTracking {\n    /**\n     * Reactions created by components that have yet to be fully mounted.\n     */\n    const uncommittedReactionRefs: Set<React.MutableRefObject<IReactionTracking | null>> = new Set()\n\n    /**\n     * Latest 'uncommitted reactions' cleanup timer handle.\n     */\n    let reactionCleanupHandle: ReturnType<typeof setTimeout> | undefined\n\n    /* istanbul ignore next */\n    /**\n     * Only to be used by test functions; do not export outside of mobx-react-lite\n     */\n    function forceCleanupTimerToRunNowForTests() {\n        // This allows us to control the execution of the cleanup timer\n        // to force it to run at awkward times in unit tests.\n        if (reactionCleanupHandle) {\n            clearTimeout(reactionCleanupHandle)\n            cleanUncommittedReactions()\n        }\n    }\n\n    /* istanbul ignore next */\n    function resetCleanupScheduleForTests() {\n        if (uncommittedReactionRefs.size > 0) {\n            for (const ref of uncommittedReactionRefs) {\n                const tracking = ref.current\n                if (tracking) {\n                    tracking.reaction.dispose()\n                    ref.current = null\n                }\n            }\n            uncommittedReactionRefs.clear()\n        }\n\n        if (reactionCleanupHandle) {\n            clearTimeout(reactionCleanupHandle)\n            reactionCleanupHandle = undefined\n        }\n    }\n\n    function ensureCleanupTimerRunning() {\n        if (reactionCleanupHandle === undefined) {\n            reactionCleanupHandle = setTimeout(cleanUncommittedReactions, CLEANUP_TIMER_LOOP_MILLIS)\n        }\n    }\n\n    function scheduleCleanupOfReactionIfLeaked(\n        ref: React.MutableRefObject<IReactionTracking | null>\n    ) {\n        uncommittedReactionRefs.add(ref)\n\n        ensureCleanupTimerRunning()\n    }\n\n    function recordReactionAsCommitted(\n        reactionRef: React.MutableRefObject<IReactionTracking | null>\n    ) {\n        uncommittedReactionRefs.delete(reactionRef)\n    }\n\n    /**\n     * Run by the cleanup timer to dispose any outstanding reactions\n     */\n    function cleanUncommittedReactions() {\n        reactionCleanupHandle = undefined\n\n        // Loop through all the candidate leaked reactions; those older\n        // than CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS get tidied.\n\n        const now = Date.now()\n        uncommittedReactionRefs.forEach(ref => {\n            const tracking = ref.current\n            if (tracking) {\n                if (now >= tracking.cleanAt) {\n                    // It's time to tidy up this leaked reaction.\n                    tracking.reaction.dispose()\n                    ref.current = null\n                    uncommittedReactionRefs.delete(ref)\n                }\n            }\n        })\n\n        if (uncommittedReactionRefs.size > 0) {\n            // We've just finished a round of cleanups but there are still\n            // some leak candidates outstanding.\n            ensureCleanupTimerRunning()\n        }\n    }\n\n    return {\n        addReactionToTrack(\n            reactionTrackingRef: React.MutableRefObject<IReactionTracking | null>,\n            reaction: Reaction,\n            /**\n             * On timer based implementation we don't really need this object,\n             * but we keep the same api\n             */\n            objectRetainedByReact: unknown\n        ) {\n            reactionTrackingRef.current = createTrackingData(reaction)\n            scheduleCleanupOfReactionIfLeaked(reactionTrackingRef)\n            return reactionTrackingRef.current\n        },\n        recordReactionAsCommitted,\n        forceCleanupTimerToRunNowForTests,\n        resetCleanupScheduleForTests\n    }\n}\n","let globalIsUsingStaticRendering = false\n\nexport function enableStaticRendering(enable: boolean) {\n    globalIsUsingStaticRendering = enable\n}\n\nexport function isUsingStaticRendering(): boolean {\n    return globalIsUsingStaticRendering\n}\n","import { Reaction } from \"mobx\"\nimport React from \"react\"\nimport { printDebugValue } from \"./utils/printDebugValue\"\nimport {\n    addReactionToTrack,\n    IReactionTracking,\n    recordReactionAsCommitted\n} from \"./utils/reactionCleanupTracking\"\nimport { isUsingStaticRendering } from \"./staticRendering\"\n\nfunction observerComponentNameFor(baseComponentName: string) {\n    return `observer${baseComponentName}`\n}\n\n/**\n * We use class to make it easier to detect in heap snapshots by name\n */\nclass ObjectToBeRetainedByReact {}\n\nfunction objectToBeRetainedByReactFactory() {\n    return new ObjectToBeRetainedByReact()\n}\n\nexport function useObserver<T>(fn: () => T, baseComponentName: string = \"observed\"): T {\n    if (isUsingStaticRendering()) {\n        return fn()\n    }\n\n    const [objectRetainedByReact] = React.useState(objectToBeRetainedByReactFactory)\n    // Force update, see #2982\n    const [, setState] = React.useState()\n    const forceUpdate = () => setState([] as any)\n\n    // StrictMode/ConcurrentMode/Suspense may mean that our component is\n    // rendered and abandoned multiple times, so we need to track leaked\n    // Reactions.\n    const reactionTrackingRef = React.useRef<IReactionTracking | null>(null)\n\n    if (!reactionTrackingRef.current) {\n        // First render for this component (or first time since a previous\n        // reaction from an abandoned render was disposed).\n\n        const newReaction = new Reaction(observerComponentNameFor(baseComponentName), () => {\n            // Observable has changed, meaning we want to re-render\n            // BUT if we're a component that hasn't yet got to the useEffect()\n            // stage, we might be a component that _started_ to render, but\n            // got dropped, and we don't want to make state changes then.\n            // (It triggers warnings in StrictMode, for a start.)\n            if (trackingData.mounted) {\n                // We have reached useEffect(), so we're mounted, and can trigger an update\n                forceUpdate()\n            } else {\n                // We haven't yet reached useEffect(), so we'll need to trigger a re-render\n                // when (and if) useEffect() arrives.\n                trackingData.changedBeforeMount = true\n            }\n        })\n\n        const trackingData = addReactionToTrack(\n            reactionTrackingRef,\n            newReaction,\n            objectRetainedByReact\n        )\n    }\n\n    const { reaction } = reactionTrackingRef.current!\n    React.useDebugValue(reaction, printDebugValue)\n\n    React.useEffect(() => {\n        // Called on first mount only\n        recordReactionAsCommitted(reactionTrackingRef)\n\n        if (reactionTrackingRef.current) {\n            // Great. We've already got our reaction from our render;\n            // all we need to do is to record that it's now mounted,\n            // to allow future observable changes to trigger re-renders\n            reactionTrackingRef.current.mounted = true\n            // Got a change before first mount, force an update\n            if (reactionTrackingRef.current.changedBeforeMount) {\n                reactionTrackingRef.current.changedBeforeMount = false\n                forceUpdate()\n            }\n        } else {\n            // The reaction we set up in our render has been disposed.\n            // This can be due to bad timings of renderings, e.g. our\n            // component was paused for a _very_ long time, and our\n            // reaction got cleaned up\n\n            // Re-create the reaction\n            reactionTrackingRef.current = {\n                reaction: new Reaction(observerComponentNameFor(baseComponentName), () => {\n                    // We've definitely already been mounted at this point\n                    forceUpdate()\n                }),\n                mounted: true,\n                changedBeforeMount: false,\n                cleanAt: Infinity\n            }\n            forceUpdate()\n        }\n\n        return () => {\n            reactionTrackingRef.current!.reaction.dispose()\n            reactionTrackingRef.current = null\n        }\n    }, [])\n\n    // render the original component, but have the\n    // reaction track the observables, so that rendering\n    // can be invalidated (see above) once a dependency changes\n    let rendering!: T\n    let exception\n    reaction.track(() => {\n        try {\n            rendering = fn()\n        } catch (e) {\n            exception = e\n        }\n    })\n\n    if (exception) {\n        throw exception // re-throw any exceptions caught during rendering\n    }\n\n    return rendering\n}\n","import { forwardRef, memo } from \"react\"\n\nimport { isUsingStaticRendering } from \"./staticRendering\"\nimport { useObserver } from \"./useObserver\"\n\nlet warnObserverOptionsDeprecated = true\n\nconst hasSymbol = typeof Symbol === \"function\" && Symbol.for\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nconst ReactForwardRefSymbol = hasSymbol\n    ? Symbol.for(\"react.forward_ref\")\n    : typeof forwardRef === \"function\" && forwardRef((props: any) => null)[\"$$typeof\"]\n\nconst ReactMemoSymbol = hasSymbol\n    ? Symbol.for(\"react.memo\")\n    : typeof memo === \"function\" && memo((props: any) => null)[\"$$typeof\"]\n\nexport interface IObserverOptions {\n    readonly forwardRef?: boolean\n}\n\nexport function observer<P extends object, TRef = {}>(\n    baseComponent: React.RefForwardingComponent<TRef, P>,\n    options: IObserverOptions & { forwardRef: true }\n): React.MemoExoticComponent<\n    React.ForwardRefExoticComponent<React.PropsWithoutRef<P> & React.RefAttributes<TRef>>\n>\n\nexport function observer<P extends object, TRef = {}>(\n    baseComponent: React.ForwardRefExoticComponent<\n        React.PropsWithoutRef<P> & React.RefAttributes<TRef>\n    >\n): React.MemoExoticComponent<\n    React.ForwardRefExoticComponent<React.PropsWithoutRef<P> & React.RefAttributes<TRef>>\n>\n\nexport function observer<P extends object>(\n    baseComponent: React.FunctionComponent<P>,\n    options?: IObserverOptions\n): React.FunctionComponent<P>\n\nexport function observer<\n    C extends React.FunctionComponent<any> | React.RefForwardingComponent<any>,\n    Options extends IObserverOptions\n>(\n    baseComponent: C,\n    options?: Options\n): Options extends { forwardRef: true }\n    ? C extends React.RefForwardingComponent<infer TRef, infer P>\n        ? C &\n              React.MemoExoticComponent<\n                  React.ForwardRefExoticComponent<\n                      React.PropsWithoutRef<P> & React.RefAttributes<TRef>\n                  >\n              >\n        : never /* forwardRef set for a non forwarding component */\n    : C & { displayName: string }\n\n// n.b. base case is not used for actual typings or exported in the typing files\nexport function observer<P extends object, TRef = {}>(\n    baseComponent:\n        | React.RefForwardingComponent<TRef, P>\n        | React.FunctionComponent<P>\n        | React.ForwardRefExoticComponent<React.PropsWithoutRef<P> & React.RefAttributes<TRef>>,\n    // TODO remove in next major\n    options?: IObserverOptions\n) {\n    if (process.env.NODE_ENV !== \"production\" && warnObserverOptionsDeprecated && options) {\n        warnObserverOptionsDeprecated = false\n        console.warn(\n            `[mobx-react-lite] \\`observer(fn, { forwardRef: true })\\` is depreacted, use \\`observer(React.forwardRef(fn))\\``\n        )\n    }\n\n    if (ReactMemoSymbol && baseComponent[\"$$typeof\"] === ReactMemoSymbol) {\n        throw new Error(\n            `[mobx-react-lite] You are trying to use \\`observer\\` on a function component wrapped in either another \\`observer\\` or \\`React.memo\\`. The observer already applies 'React.memo' for you.`\n        )\n    }\n\n    // The working of observer is explained step by step in this talk: https://www.youtube.com/watch?v=cPF4iBedoF0&feature=youtu.be&t=1307\n    if (isUsingStaticRendering()) {\n        return baseComponent\n    }\n\n    let useForwardRef = options?.forwardRef ?? false\n    let render = baseComponent\n\n    const baseComponentName = baseComponent.displayName || baseComponent.name\n\n    // If already wrapped with forwardRef, unwrap,\n    // so we can patch render and apply memo\n    if (ReactForwardRefSymbol && baseComponent[\"$$typeof\"] === ReactForwardRefSymbol) {\n        useForwardRef = true\n        render = baseComponent[\"render\"]\n        if (typeof render !== \"function\") {\n            throw new Error(\n                `[mobx-react-lite] \\`render\\` property of ForwardRef was not a function`\n            )\n        }\n    }\n\n    let observerComponent = (props: P, ref: React.Ref<TRef>) => {\n        return useObserver(() => render(props, ref), baseComponentName)\n    }\n\n    // Don't set `displayName` for anonymous components,\n    // so the `displayName` can be customized by user, see #3192.\n    if (baseComponentName !== \"\") {\n        ;(observerComponent as React.FunctionComponent).displayName = baseComponentName\n    }\n\n    // Support legacy context: `contextTypes` must be applied before `memo`\n    if ((baseComponent as any).contextTypes) {\n        ;(observerComponent as React.FunctionComponent).contextTypes = (\n            baseComponent as any\n        ).contextTypes\n    }\n\n    if (useForwardRef) {\n        // `forwardRef` must be applied prior `memo`\n        // `forwardRef(observer(cmp))` throws:\n        // \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))\"\n        observerComponent = forwardRef(observerComponent)\n    }\n\n    // memo; we are not interested in deep updates\n    // in props; we assume that if deep objects are changed,\n    // this is in observables, which would have been tracked anyway\n    observerComponent = memo(observerComponent)\n\n    copyStaticProperties(baseComponent, observerComponent)\n\n    if (\"production\" !== process.env.NODE_ENV) {\n        Object.defineProperty(observerComponent, \"contextTypes\", {\n            set() {\n                throw new Error(\n                    `[mobx-react-lite] \\`${\n                        this.displayName || this.type?.displayName || \"Component\"\n                    }.contextTypes\\` must be set before applying \\`observer\\`.`\n                )\n            }\n        })\n    }\n\n    return observerComponent\n}\n\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nconst hoistBlackList: any = {\n    $$typeof: true,\n    render: true,\n    compare: true,\n    type: true,\n    // Don't redefine `displayName`,\n    // it's defined as getter-setter pair on `memo` (see #3192).\n    displayName: true\n}\n\nfunction copyStaticProperties(base: any, target: any) {\n    Object.keys(base).forEach(key => {\n        if (!hoistBlackList[key]) {\n            Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key)!)\n        }\n    })\n}\n","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n\n  var _s, _e;\n\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar defaultOptions = {\n  bindI18n: 'languageChanged',\n  bindI18nStore: '',\n  transEmptyNodeValue: '',\n  transSupportBasicHtmlNodes: true,\n  transWrapTextNodes: '',\n  transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n  useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n  return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n  function ReportNamespaces() {\n    _classCallCheck(this, ReportNamespaces);\n\n    this.usedNamespaces = {};\n  }\n\n  _createClass(ReportNamespaces, [{\n    key: \"addUsedNamespaces\",\n    value: function addUsedNamespaces(namespaces) {\n      var _this = this;\n\n      namespaces.forEach(function (ns) {\n        if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n      });\n    }\n  }, {\n    key: \"getUsedNamespaces\",\n    value: function getUsedNamespaces() {\n      return Object.keys(this.usedNamespaces);\n    }\n  }]);\n\n  return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n  i18nInstance = instance;\n}\nexport function getI18n() {\n  return i18nInstance;\n}\nexport var initReactI18next = {\n  type: '3rdParty',\n  init: function init(instance) {\n    setDefaults(instance.options.react);\n    setI18n(instance);\n  }\n};\nexport function composeInitialProps(ForComponent) {\n  return function (ctx) {\n    return new Promise(function (resolve) {\n      var i18nInitialProps = getInitialProps();\n\n      if (ForComponent.getInitialProps) {\n        ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n          resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n        });\n      } else {\n        resolve(i18nInitialProps);\n      }\n    });\n  };\n}\nexport function getInitialProps() {\n  var i18n = getI18n();\n  var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n  var ret = {};\n  var initialI18nStore = {};\n  i18n.languages.forEach(function (l) {\n    initialI18nStore[l] = {};\n    namespaces.forEach(function (ns) {\n      initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n    });\n  });\n  ret.initialI18nStore = initialI18nStore;\n  ret.initialLanguage = i18n.language;\n  return ret;\n}","import \"./utils/assertEnvironment\"\n\nimport { unstable_batchedUpdates as batch } from \"./utils/reactBatchedUpdates\"\nimport { observerBatching } from \"./utils/observerBatching\"\nimport { useDeprecated } from \"./utils/utils\"\nimport { useObserver as useObserverOriginal } from \"./useObserver\"\nimport { enableStaticRendering } from \"./staticRendering\"\n\nobserverBatching(batch)\n\nexport { isUsingStaticRendering, enableStaticRendering } from \"./staticRendering\"\nexport { observer, IObserverOptions } from \"./observer\"\nexport { Observer } from \"./ObserverComponent\"\nexport { useLocalObservable } from \"./useLocalObservable\"\nexport { useLocalStore } from \"./useLocalStore\"\nexport { useAsObservableSource } from \"./useAsObservableSource\"\nexport { resetCleanupScheduleForTests as clearTimers } from \"./utils/reactionCleanupTracking\"\n\nexport function useObserver<T>(fn: () => T, baseComponentName: string = \"observed\"): T {\n    if (\"production\" !== process.env.NODE_ENV) {\n        useDeprecated(\n            \"[mobx-react-lite] 'useObserver(fn)' is deprecated. Use `<Observer>{fn}</Observer>` instead, or wrap the entire component in `observer`.\"\n        )\n    }\n    return useObserverOriginal(fn, baseComponentName)\n}\n\nexport { isObserverBatched, observerBatching } from \"./utils/observerBatching\"\n\nexport function useStaticRendering(enable: boolean) {\n    if (\"production\" !== process.env.NODE_ENV) {\n        console.warn(\n            \"[mobx-react-lite] 'useStaticRendering' is deprecated, use 'enableStaticRendering' instead\"\n        )\n    }\n    enableStaticRendering(enable)\n}\n","export function warn() {\n  if (console && console.warn) {\n    var _console;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n    (_console = console).warn.apply(_console, args);\n  }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n  if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n  warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n  i18n.loadNamespaces(ns, function () {\n    if (i18n.isInitialized) {\n      cb();\n    } else {\n      var initialized = function initialized() {\n        setTimeout(function () {\n          i18n.off('initialized', initialized);\n        }, 0);\n        cb();\n      };\n\n      i18n.on('initialized', initialized);\n    }\n  });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (!i18n.languages || !i18n.languages.length) {\n    warnOnce('i18n.languages were undefined or empty', i18n.languages);\n    return true;\n  }\n\n  var lng = i18n.languages[0];\n  var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n  var lastLng = i18n.languages[i18n.languages.length - 1];\n  if (lng.toLowerCase() === 'cimode') return true;\n\n  var loadNotPending = function loadNotPending(l, n) {\n    var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n    return loadState === -1 || loadState === 2;\n  };\n\n  if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n  if (i18n.hasResourceBundle(lng, ns)) return true;\n  if (!i18n.services.backendConnector.backend) return true;\n  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n  return false;\n}\nexport function getDisplayName(Component) {\n  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\nexport function useTranslation(ns) {\n  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var i18nFromProps = props.i18n;\n\n  var _ref = useContext(I18nContext) || {},\n      i18nFromContext = _ref.i18n,\n      defaultNSFromContext = _ref.defaultNS;\n\n  var i18n = i18nFromProps || i18nFromContext || getI18n();\n  if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n  if (!i18n) {\n    warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n    var notReadyT = function notReadyT(k) {\n      return Array.isArray(k) ? k[k.length - 1] : k;\n    };\n\n    var retNotReady = [notReadyT, {}, false];\n    retNotReady.t = notReadyT;\n    retNotReady.i18n = {};\n    retNotReady.ready = false;\n    return retNotReady;\n  }\n\n  if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n  var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n  var useSuspense = i18nOptions.useSuspense,\n      keyPrefix = i18nOptions.keyPrefix;\n  var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n  if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n  var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n    return hasLoadedNamespace(n, i18n, i18nOptions);\n  });\n\n  function getT() {\n    return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n  }\n\n  var _useState = useState(getT),\n      _useState2 = _slicedToArray(_useState, 2),\n      t = _useState2[0],\n      setT = _useState2[1];\n\n  var isMounted = useRef(true);\n  useEffect(function () {\n    var bindI18n = i18nOptions.bindI18n,\n        bindI18nStore = i18nOptions.bindI18nStore;\n    isMounted.current = true;\n\n    if (!ready && !useSuspense) {\n      loadNamespaces(i18n, namespaces, function () {\n        if (isMounted.current) setT(getT);\n      });\n    }\n\n    function boundReset() {\n      if (isMounted.current) setT(getT);\n    }\n\n    if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n    if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n    return function () {\n      isMounted.current = false;\n      if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n        return i18n.off(e, boundReset);\n      });\n      if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n        return i18n.store.off(e, boundReset);\n      });\n    };\n  }, [i18n, namespaces.join()]);\n  var isInitial = useRef(true);\n  useEffect(function () {\n    if (isMounted.current && !isInitial.current) {\n      setT(getT);\n    }\n\n    isInitial.current = false;\n  }, [i18n]);\n  var ret = [t, i18n, ready];\n  ret.t = t;\n  ret.i18n = i18n;\n  ret.ready = ready;\n  if (ready) return ret;\n  if (!ready && !useSuspense) return ret;\n  throw new Promise(function (resolve) {\n    loadNamespaces(i18n, namespaces, function () {\n      resolve();\n    });\n  });\n}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","import { isValidElement } from 'react';\n\nimport { Id } from '../types';\n\nexport function isNum(v: any): v is Number {\n  return typeof v === 'number' && !isNaN(v);\n}\n\nexport function isBool(v: any): v is Boolean {\n  return typeof v === 'boolean';\n}\n\nexport function isStr(v: any): v is String {\n  return typeof v === 'string';\n}\n\nexport function isFn(v: any): v is Function {\n  return typeof v === 'function';\n}\n\nexport function parseClassName(v: any) {\n  return isStr(v) || isFn(v) ? v : null;\n}\n\nexport function isToastIdValid(toastId?: Id) {\n  return toastId === 0 || toastId;\n}\n\nexport function getAutoCloseDelay(\n  toastAutoClose?: false | number,\n  containerAutoClose?: false | number\n) {\n  return toastAutoClose === false ||\n    (isNum(toastAutoClose) && toastAutoClose > 0)\n    ? toastAutoClose\n    : containerAutoClose;\n}\n\nexport const canUseDom = !!(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n);\n\nexport function canBeRendered<T>(content: T): boolean {\n  return (\n    isValidElement(content) || isStr(content) || isFn(content) || isNum(content)\n  );\n}\n","import { ToastPosition, TypeOptions } from '../types';\n\ntype KeyOfPosition =\n  | 'TOP_LEFT'\n  | 'TOP_RIGHT'\n  | 'TOP_CENTER'\n  | 'BOTTOM_LEFT'\n  | 'BOTTOM_RIGHT'\n  | 'BOTTOM_CENTER';\n\ntype KeyOfType = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR' | 'DEFAULT';\n\nexport const POSITION: { [key in KeyOfPosition]: ToastPosition } = {\n  TOP_LEFT: 'top-left',\n  TOP_RIGHT: 'top-right',\n  TOP_CENTER: 'top-center',\n  BOTTOM_LEFT: 'bottom-left',\n  BOTTOM_RIGHT: 'bottom-right',\n  BOTTOM_CENTER: 'bottom-center'\n};\n\nexport const TYPE: { [key in KeyOfType]: TypeOptions } = {\n  INFO: 'info',\n  SUCCESS: 'success',\n  WARNING: 'warning',\n  ERROR: 'error',\n  DEFAULT: 'default'\n};\n\nexport const enum Default {\n  COLLAPSE_DURATION = 300,\n  DEBOUNCE_DURATION = 50,\n  CSS_NAMESPACE = 'Toastify',\n  DRAGGABLE_PERCENT = 80\n}\n\nexport const enum Direction {\n  X = 'x',\n  Y = 'y'\n}\n\nexport const enum SyntheticEvent {\n  ENTRANCE_ANIMATION_END = 'd'\n}\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { collapseToast } from './collapseToast';\nimport { Default, SyntheticEvent } from './constant';\n\nimport { ToastTransitionProps } from '../types';\n\nexport interface CSSTransitionProps {\n  /**\n   * Css class to apply when toast enter\n   */\n  enter: string;\n\n  /**\n   * Css class to apply when toast leave\n   */\n  exit: string;\n\n  /**\n   * Append current toast position to the classname.\n   * If multiple classes are provided, only the last one will get the position\n   * For instance `myclass--top-center`...\n   * `Default: false`\n   */\n  appendPosition?: boolean;\n\n  /**\n   * Collapse toast smoothly when exit animation end\n   * `Default: true`\n   */\n  collapse?: boolean;\n\n  /**\n   * Collapse transition duration\n   * `Default: 300`\n   */\n  collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n  Enter,\n  Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n *   enter: \"animate__animated animate__bounceIn\",\n *   exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n  enter,\n  exit,\n  appendPosition = false,\n  collapse = true,\n  collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n  return function ToastTransition({\n    children,\n    position,\n    preventExitTransition,\n    done,\n    nodeRef,\n    isIn\n  }: ToastTransitionProps) {\n    const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n    const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n    const baseClassName = useRef<string>();\n    const animationStep = useRef(AnimationStep.Enter);\n\n    useLayoutEffect(() => {\n      onEnter();\n    }, []);\n\n    useEffect(() => {\n      if (!isIn) preventExitTransition ? onExited() : onExit();\n    }, [isIn]);\n\n    function onEnter() {\n      const node = nodeRef.current!;\n      baseClassName.current = node.className;\n      node.className += ` ${enterClassName}`;\n      node.addEventListener('animationend', onEntered);\n      node.addEventListener('animationcancel', onEntered);\n    }\n\n    function onEntered(e: AnimationEvent) {\n      if (e.target !== nodeRef.current) return;\n\n      const node = nodeRef.current!;\n      node.dispatchEvent(new Event(SyntheticEvent.ENTRANCE_ANIMATION_END));\n      node.removeEventListener('animationend', onEntered);\n      node.removeEventListener('animationcancel', onEntered);\n      if (animationStep.current === AnimationStep.Enter) {\n        node.className = baseClassName.current!;\n      }\n    }\n\n    function onExit() {\n      animationStep.current = AnimationStep.Exit;\n      const node = nodeRef.current!;\n\n      node.className += ` ${exitClassName}`;\n      node.addEventListener('animationend', onExited);\n    }\n\n    function onExited() {\n      const node = nodeRef.current!;\n\n      node.removeEventListener('animationend', onExited);\n      collapse ? collapseToast(node, done, collapseDuration) : done();\n    }\n\n    return <>{children}</>;\n  };\n}\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(\n  node: HTMLElement,\n  done: () => void,\n  duration = Default.COLLAPSE_DURATION\n) {\n  const { scrollHeight, style } = node;\n\n  requestAnimationFrame(() => {\n    style.minHeight = 'initial';\n    style.height = scrollHeight + 'px';\n    style.transition = `all ${duration}ms`;\n\n    requestAnimationFrame(() => {\n      style.height = '0';\n      style.padding = '0';\n      style.margin = '0';\n      setTimeout(done, duration as number);\n    });\n  });\n}\n","import {\n  Id,\n  ToastContent,\n  ClearWaitingQueueParams,\n  NotValidatedToastProps\n} from '../types';\nimport { ContainerInstance } from '../hooks';\n\nexport const enum Event {\n  Show,\n  Clear,\n  DidMount,\n  WillUnmount,\n  Change,\n  ClearWaitingQueue\n}\n\ntype OnShowCallback = (\n  content: ToastContent,\n  options: NotValidatedToastProps\n) => void;\ntype OnClearCallback = (id?: Id) => void;\ntype OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;\ntype OnDidMountCallback = (containerInstance: ContainerInstance) => void;\ntype OnWillUnmountCallback = OnDidMountCallback;\nexport type OnChangeCallback = (\n  toast: number,\n  containerId?: number | string\n) => void;\ntype Callback =\n  | OnShowCallback\n  | OnClearCallback\n  | OnClearWaitingQueue\n  | OnDidMountCallback\n  | OnWillUnmountCallback\n  | OnChangeCallback;\ntype TimeoutId = ReturnType<typeof setTimeout>;\n\nexport interface EventManager {\n  list: Map<Event, Callback[]>;\n  emitQueue: Map<Event, TimeoutId[]>;\n  on(event: Event.Show, callback: OnShowCallback): EventManager;\n  on(event: Event.Clear, callback: OnClearCallback): EventManager;\n  on(\n    event: Event.ClearWaitingQueue,\n    callback: OnClearWaitingQueue\n  ): EventManager;\n  on(event: Event.DidMount, callback: OnDidMountCallback): EventManager;\n  on(event: Event.WillUnmount, callback: OnWillUnmountCallback): EventManager;\n  on(event: Event.Change, callback: OnChangeCallback): EventManager;\n  off(event: Event, callback?: Callback): EventManager;\n  cancelEmit(event: Event): EventManager;\n  emit(\n    event: Event.Show,\n    content: React.ReactNode,\n    options: NotValidatedToastProps\n  ): void;\n  emit(event: Event.Clear, id?: string | number): void;\n  emit(event: Event.ClearWaitingQueue, params: ClearWaitingQueueParams): void;\n  emit(event: Event.DidMount, containerInstance: ContainerInstance): void;\n  emit(event: Event.WillUnmount, containerInstance: ContainerInstance): void;\n  emit(event: Event.Change, toast: number, containerId?: number | string): void;\n}\n\nexport const eventManager: EventManager = {\n  list: new Map(),\n  emitQueue: new Map(),\n\n  on(event: Event, callback: Callback) {\n    this.list.has(event) || this.list.set(event, []);\n    this.list.get(event)!.push(callback);\n    return this;\n  },\n\n  off(event, callback) {\n    if (callback) {\n      const cb = this.list.get(event)!.filter(cb => cb !== callback);\n      this.list.set(event, cb);\n      return this;\n    }\n    this.list.delete(event);\n    return this;\n  },\n\n  cancelEmit(event) {\n    const timers = this.emitQueue.get(event);\n    if (timers) {\n      timers.forEach(clearTimeout);\n      this.emitQueue.delete(event);\n    }\n\n    return this;\n  },\n\n  /**\n   * Enqueue the event at the end of the call stack\n   * Doing so let the user call toast as follow:\n   * toast('1')\n   * toast('2')\n   * toast('3')\n   * Without setTimemout the code above will not work\n   */\n  emit(event: Event, ...args: any[]) {\n    this.list.has(event) &&\n      this.list.get(event)!.forEach((callback: Callback) => {\n        const timer: TimeoutId = setTimeout(() => {\n          // @ts-ignore\n          callback(...args);\n        }, 0);\n\n        this.emitQueue.has(event) || this.emitQueue.set(event, []);\n        this.emitQueue.get(event)!.push(timer);\n      });\n  }\n};\n","import {\n  useEffect,\n  useRef,\n  useReducer,\n  cloneElement,\n  isValidElement,\n  useState\n} from 'react';\nimport {\n  parseClassName,\n  canBeRendered,\n  isBool,\n  isFn,\n  isNum,\n  isStr,\n  isToastIdValid,\n  getAutoCloseDelay\n} from '../utils';\nimport { eventManager, Event } from '../core/eventManager';\n\nimport {\n  Id,\n  ToastContainerProps,\n  ToastProps,\n  ToastContent,\n  Toast,\n  ToastPosition,\n  ClearWaitingQueueParams,\n  NotValidatedToastProps,\n  ToastTransition\n} from '../types';\n\ninterface QueuedToast {\n  toastContent: ToastContent;\n  toastProps: ToastProps;\n  staleId?: Id;\n}\n\nexport interface ContainerInstance {\n  toastKey: number;\n  displayedToast: number;\n  props: ToastContainerProps;\n  containerId?: Id | null;\n  isToastActive: (toastId: Id) => boolean;\n  getToast: (id: Id) => Toast | null | undefined;\n  queue: QueuedToast[];\n  count: number;\n}\n\nexport function useToastContainer(props: ToastContainerProps) {\n  const [, forceUpdate] = useReducer(x => x + 1, 0);\n  const [toastIds, setToastIds] = useState<Id[]>([]);\n  const containerRef = useRef(null);\n  const toastToRender = useRef(new Map<Id, Toast>()).current;\n  const isToastActive = (id: Id) => toastIds.indexOf(id) !== -1;\n  const instance = useRef<ContainerInstance>({\n    toastKey: 1,\n    displayedToast: 0,\n    count: 0,\n    queue: [],\n    props,\n    containerId: null,\n    isToastActive,\n    getToast: id => toastToRender.get(id)\n  }).current;\n\n  useEffect(() => {\n    instance.containerId = props.containerId;\n    eventManager\n      .cancelEmit(Event.WillUnmount)\n      .on(Event.Show, buildToast)\n      .on(Event.Clear, toastId => containerRef.current && removeToast(toastId))\n      .on(Event.ClearWaitingQueue, clearWaitingQueue)\n      .emit(Event.DidMount, instance);\n\n    return () => eventManager.emit(Event.WillUnmount, instance);\n  }, []);\n\n  useEffect(() => {\n    instance.isToastActive = isToastActive;\n    instance.displayedToast = toastIds.length;\n    eventManager.emit(Event.Change, toastIds.length, props.containerId);\n  }, [toastIds]);\n\n  useEffect(() => {\n    instance.props = props;\n  });\n\n  function clearWaitingQueue({ containerId }: ClearWaitingQueueParams) {\n    const { limit } = instance.props;\n    if (limit && (!containerId || instance.containerId === containerId)) {\n      instance.count -= instance.queue.length;\n      instance.queue = [];\n    }\n  }\n\n  function removeToast(toastId?: Id) {\n    setToastIds(state =>\n      isToastIdValid(toastId) ? state.filter(id => id !== toastId) : []\n    );\n  }\n\n  function dequeueToast() {\n    const {\n      toastContent,\n      toastProps,\n      staleId\n    } = instance.queue.shift() as QueuedToast;\n    appendToast(toastContent, toastProps, staleId);\n  }\n\n  /**\n   * check if a container is attached to the dom\n   * check for multi-container, build only if associated\n   * check for duplicate toastId if no update\n   */\n  function isNotValid(options: NotValidatedToastProps) {\n    return (\n      !containerRef.current ||\n      (instance.props.enableMultiContainer &&\n        options.containerId !== instance.props.containerId) ||\n      (toastToRender.has(options.toastId) && options.updateId == null)\n    );\n  }\n\n  // this function and all the function called inside needs to rely on refs\n  function buildToast(\n    content: ToastContent,\n    { delay, staleId, ...options }: NotValidatedToastProps\n  ) {\n    if (!canBeRendered(content) || isNotValid(options)) return;\n\n    const { toastId, updateId, data } = options;\n    const { props } = instance;\n    const closeToast = () => removeToast(toastId);\n    const isNotAnUpdate = updateId == null;\n\n    if (isNotAnUpdate) instance.count++;\n\n    const toastProps: ToastProps = {\n      toastId,\n      updateId,\n      isLoading: options.isLoading,\n      theme: options.theme || props.theme!,\n      icon: options.icon != null ? options.icon : props.icon,\n      isIn: false,\n      key: options.key || instance.toastKey++,\n      type: options.type!,\n      closeToast: closeToast,\n      closeButton: options.closeButton,\n      rtl: props.rtl,\n      position: options.position || (props.position as ToastPosition),\n      transition: options.transition || (props.transition as ToastTransition),\n      className: parseClassName(options.className || props.toastClassName),\n      bodyClassName: parseClassName(\n        options.bodyClassName || props.bodyClassName\n      ),\n      style: options.style || props.toastStyle,\n      bodyStyle: options.bodyStyle || props.bodyStyle,\n      onClick: options.onClick || props.onClick,\n      pauseOnHover: isBool(options.pauseOnHover)\n        ? options.pauseOnHover\n        : props.pauseOnHover,\n      pauseOnFocusLoss: isBool(options.pauseOnFocusLoss)\n        ? options.pauseOnFocusLoss\n        : props.pauseOnFocusLoss,\n      draggable: isBool(options.draggable)\n        ? options.draggable\n        : props.draggable,\n      draggablePercent:\n        options.draggablePercent || (props.draggablePercent as number),\n      draggableDirection:\n        options.draggableDirection || props.draggableDirection,\n      closeOnClick: isBool(options.closeOnClick)\n        ? options.closeOnClick\n        : props.closeOnClick,\n      progressClassName: parseClassName(\n        options.progressClassName || props.progressClassName\n      ),\n      progressStyle: options.progressStyle || props.progressStyle,\n      autoClose: options.isLoading\n        ? false\n        : getAutoCloseDelay(options.autoClose, props.autoClose),\n      hideProgressBar: isBool(options.hideProgressBar)\n        ? options.hideProgressBar\n        : props.hideProgressBar,\n      progress: options.progress,\n      role: options.role || props.role,\n      deleteToast() {\n        toastToRender.delete(toastId);\n        const queueLen = instance.queue.length;\n        instance.count = isToastIdValid(toastId)\n          ? instance.count - 1\n          : instance.count - instance.displayedToast;\n\n        if (instance.count < 0) instance.count = 0;\n\n        if (queueLen > 0) {\n          const freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit!;\n\n          if (queueLen === 1 || freeSlot === 1) {\n            instance.displayedToast++;\n            dequeueToast();\n          } else {\n            const toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n            instance.displayedToast = toDequeue;\n\n            for (let i = 0; i < toDequeue; i++) dequeueToast();\n          }\n        } else {\n          forceUpdate();\n        }\n      }\n    };\n\n    if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n    if (isFn(options.onClose)) toastProps.onClose = options.onClose;\n\n    toastProps.closeButton = props.closeButton;\n\n    if (options.closeButton === false || canBeRendered(options.closeButton)) {\n      toastProps.closeButton = options.closeButton;\n    } else if (options.closeButton === true) {\n      toastProps.closeButton = canBeRendered(props.closeButton)\n        ? props.closeButton\n        : true;\n    }\n\n    let toastContent = content;\n\n    if (isValidElement(content) && !isStr(content.type)) {\n      toastContent = cloneElement(content, {\n        closeToast,\n        toastProps,\n        data\n      });\n    } else if (isFn(content)) {\n      toastContent = content({ closeToast, toastProps, data });\n    }\n\n    // not handling limit + delay by design. Waiting for user feedback first\n    if (\n      props.limit &&\n      props.limit > 0 &&\n      instance.count > props.limit &&\n      isNotAnUpdate\n    ) {\n      instance.queue.push({ toastContent, toastProps, staleId });\n    } else if (isNum(delay) && (delay as number) > 0) {\n      setTimeout(() => {\n        appendToast(toastContent, toastProps, staleId);\n      }, delay);\n    } else {\n      appendToast(toastContent, toastProps, staleId);\n    }\n  }\n\n  function appendToast(\n    content: ToastContent,\n    toastProps: ToastProps,\n    staleId?: Id\n  ) {\n    const { toastId } = toastProps;\n\n    if (staleId) toastToRender.delete(staleId);\n\n    toastToRender.set(toastId, {\n      content,\n      props: toastProps\n    });\n    setToastIds(state => [...state, toastId].filter(id => id !== staleId));\n  }\n\n  function getToastToRender<T>(\n    cb: (position: ToastPosition, toastList: Toast[]) => T\n  ) {\n    const toRender = new Map<ToastPosition, Toast[]>();\n    const collection = Array.from(toastToRender.values());\n\n    if (props.newestOnTop) collection.reverse();\n\n    collection.forEach(toast => {\n      const { position } = toast.props;\n      toRender.has(position) || toRender.set(position, []);\n      toRender.get(position)!.push(toast);\n    });\n\n    return Array.from(toRender, p => cb(p[0], p[1]));\n  }\n\n  return {\n    getToastToRender,\n    containerRef,\n    isToastActive\n  };\n}\n","import {\n  useState,\n  useRef,\n  useEffect,\n  isValidElement,\n  DOMAttributes\n} from 'react';\n\nimport { isFn, Default, Direction, SyntheticEvent } from '../utils';\nimport { ToastProps } from '../types';\n\ninterface Draggable {\n  start: number;\n  x: number;\n  y: number;\n  delta: number;\n  removalDistance: number;\n  canCloseOnClick: boolean;\n  canDrag: boolean;\n  boundingRect: DOMRect | null;\n  didMove: boolean;\n}\n\ntype DragEvent = MouseEvent & TouchEvent;\n\nfunction getX(e: DragEvent) {\n  return e.targetTouches && e.targetTouches.length >= 1\n    ? e.targetTouches[0].clientX\n    : e.clientX;\n}\n\nfunction getY(e: DragEvent) {\n  return e.targetTouches && e.targetTouches.length >= 1\n    ? e.targetTouches[0].clientY\n    : e.clientY;\n}\n\nexport function useToast(props: ToastProps) {\n  const [isRunning, setIsRunning] = useState(false);\n  const [preventExitTransition, setPreventExitTransition] = useState(false);\n  const toastRef = useRef<HTMLDivElement>(null);\n  const drag = useRef<Draggable>({\n    start: 0,\n    x: 0,\n    y: 0,\n    delta: 0,\n    removalDistance: 0,\n    canCloseOnClick: true,\n    canDrag: false,\n    boundingRect: null,\n    didMove: false\n  }).current;\n  const syncProps = useRef(props);\n  const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n  useEffect(() => {\n    syncProps.current = props;\n  });\n\n  useEffect(() => {\n    if (toastRef.current)\n      toastRef.current.addEventListener(\n        SyntheticEvent.ENTRANCE_ANIMATION_END,\n        playToast,\n        { once: true }\n      );\n\n    if (isFn(props.onOpen))\n      props.onOpen(isValidElement(props.children) && props.children.props);\n\n    return () => {\n      const props = syncProps.current;\n      if (isFn(props.onClose))\n        props.onClose(isValidElement(props.children) && props.children.props);\n    };\n  }, []);\n\n  useEffect(() => {\n    props.pauseOnFocusLoss && bindFocusEvents();\n    return () => {\n      props.pauseOnFocusLoss && unbindFocusEvents();\n    };\n  }, [props.pauseOnFocusLoss]);\n\n  function onDragStart(\n    e: React.MouseEvent<HTMLElement, MouseEvent> | React.TouchEvent<HTMLElement>\n  ) {\n    if (props.draggable) {\n      bindDragEvents();\n      const toast = toastRef.current!;\n      drag.canCloseOnClick = true;\n      drag.canDrag = true;\n      drag.boundingRect = toast.getBoundingClientRect();\n      toast.style.transition = '';\n      drag.x = getX(e.nativeEvent as DragEvent);\n      drag.y = getY(e.nativeEvent as DragEvent);\n\n      if (props.draggableDirection === Direction.X) {\n        drag.start = drag.x;\n        drag.removalDistance =\n          toast.offsetWidth * (props.draggablePercent / 100);\n      } else {\n        drag.start = drag.y;\n        drag.removalDistance =\n          toast.offsetHeight *\n          (props.draggablePercent === Default.DRAGGABLE_PERCENT\n            ? props.draggablePercent * 1.5\n            : props.draggablePercent / 100);\n      }\n    }\n  }\n\n  function onDragTransitionEnd() {\n    if (drag.boundingRect) {\n      const { top, bottom, left, right } = drag.boundingRect;\n\n      if (\n        props.pauseOnHover &&\n        drag.x >= left &&\n        drag.x <= right &&\n        drag.y >= top &&\n        drag.y <= bottom\n      ) {\n        pauseToast();\n      } else {\n        playToast();\n      }\n    }\n  }\n\n  function playToast() {\n    setIsRunning(true);\n  }\n\n  function pauseToast() {\n    setIsRunning(false);\n  }\n\n  function bindFocusEvents() {\n    if (!document.hasFocus()) pauseToast();\n\n    window.addEventListener('focus', playToast);\n    window.addEventListener('blur', pauseToast);\n  }\n\n  function unbindFocusEvents() {\n    window.removeEventListener('focus', playToast);\n    window.removeEventListener('blur', pauseToast);\n  }\n\n  function bindDragEvents() {\n    drag.didMove = false;\n    document.addEventListener('mousemove', onDragMove);\n    document.addEventListener('mouseup', onDragEnd);\n\n    document.addEventListener('touchmove', onDragMove);\n    document.addEventListener('touchend', onDragEnd);\n  }\n\n  function unbindDragEvents() {\n    document.removeEventListener('mousemove', onDragMove);\n    document.removeEventListener('mouseup', onDragEnd);\n\n    document.removeEventListener('touchmove', onDragMove);\n    document.removeEventListener('touchend', onDragEnd);\n  }\n\n  function onDragMove(e: MouseEvent | TouchEvent) {\n    const toast = toastRef.current!;\n    if (drag.canDrag && toast) {\n      drag.didMove = true;\n      if (isRunning) pauseToast();\n      drag.x = getX(e as DragEvent);\n      drag.y = getY(e as DragEvent);\n      if (props.draggableDirection === Direction.X) {\n        drag.delta = drag.x - drag.start;\n      } else {\n        drag.delta = drag.y - drag.start;\n      }\n\n      // prevent false positif during a toast click\n      if (drag.start !== drag.x) drag.canCloseOnClick = false;\n      toast.style.transform = `translate${props.draggableDirection}(${drag.delta}px)`;\n      toast.style.opacity = `${1 -\n        Math.abs(drag.delta / drag.removalDistance)}`;\n    }\n  }\n\n  function onDragEnd() {\n    unbindDragEvents();\n    const toast = toastRef.current!;\n    if (drag.canDrag && drag.didMove && toast) {\n      drag.canDrag = false;\n      if (Math.abs(drag.delta) > drag.removalDistance) {\n        setPreventExitTransition(true);\n        props.closeToast();\n        return;\n      }\n      toast.style.transition = 'transform 0.2s, opacity 0.2s';\n      toast.style.transform = `translate${props.draggableDirection}(0)`;\n      toast.style.opacity = '1';\n    }\n  }\n\n  const eventHandlers: DOMAttributes<HTMLElement> = {\n    onMouseDown: onDragStart,\n    onTouchStart: onDragStart,\n    onMouseUp: onDragTransitionEnd,\n    onTouchEnd: onDragTransitionEnd\n  };\n\n  if (autoClose && pauseOnHover) {\n    eventHandlers.onMouseEnter = pauseToast;\n    eventHandlers.onMouseLeave = playToast;\n  }\n\n  // prevent toast from closing when user drags the toast\n  if (closeOnClick) {\n    eventHandlers.onClick = (e: React.MouseEvent) => {\n      onClick && onClick(e);\n      drag.canCloseOnClick && closeToast();\n    };\n  }\n\n  return {\n    playToast,\n    pauseToast,\n    isRunning,\n    preventExitTransition,\n    toastRef,\n    eventHandlers\n  };\n}\n","import * as React from 'react';\nimport { Default } from '../utils';\nimport { Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n  closeToast: (e: React.MouseEvent<HTMLElement>) => void;\n  type: TypeOptions;\n  ariaLabel?: string;\n  theme: Theme;\n}\n\nexport function CloseButton({\n  closeToast,\n  theme,\n  ariaLabel = 'close'\n}: CloseButtonProps) {\n  return (\n    <button\n      className={`${Default.CSS_NAMESPACE}__close-button ${Default.CSS_NAMESPACE}__close-button--${theme}`}\n      type=\"button\"\n      onClick={e => {\n        e.stopPropagation();\n        closeToast(e);\n      }}\n      aria-label={ariaLabel}\n    >\n      <svg aria-hidden=\"true\" viewBox=\"0 0 14 16\">\n        <path\n          fillRule=\"evenodd\"\n          d=\"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"\n        />\n      </svg>\n    </button>\n  );\n}\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { TYPE, Default, isFn } from './../utils';\nimport { TypeOptions, ToastClassName, Theme } from '../types';\n\nexport interface ProgressBarProps {\n  /**\n   * The animation delay which determine when to close the toast\n   */\n  delay: number;\n\n  /**\n   * Whether or not the animation is running or paused\n   */\n  isRunning: boolean;\n\n  /**\n   * Func to close the current toast\n   */\n  closeToast: () => void;\n\n  /**\n   * Optional type : info, success ...\n   */\n  type: TypeOptions;\n\n  /**\n   * The theme that is currently used\n   */\n  theme: Theme;\n\n  /**\n   * Hide or not the progress bar\n   */\n  hide?: boolean;\n\n  /**\n   * Optionnal className\n   */\n  className?: ToastClassName;\n\n  /**\n   * Optionnal inline style\n   */\n  style?: React.CSSProperties;\n\n  /**\n   * Tell wether or not controlled progress bar is used\n   */\n  controlledProgress?: boolean;\n\n  /**\n   * Controlled progress value\n   */\n  progress?: number | string;\n\n  /**\n   * Support rtl content\n   */\n  rtl?: boolean;\n\n  /**\n   * Tell if the component is visible on screen or not\n   */\n  isIn?: boolean;\n}\n\nexport function ProgressBar({\n  delay,\n  isRunning,\n  closeToast,\n  type,\n  hide,\n  className,\n  style: userStyle,\n  controlledProgress,\n  progress,\n  rtl,\n  isIn,\n  theme\n}: ProgressBarProps) {\n  const style: React.CSSProperties = {\n    ...userStyle,\n    animationDuration: `${delay}ms`,\n    animationPlayState: isRunning ? 'running' : 'paused',\n    opacity: hide ? 0 : 1\n  };\n\n  if (controlledProgress) style.transform = `scaleX(${progress})`;\n  const defaultClassName = cx(\n    `${Default.CSS_NAMESPACE}__progress-bar`,\n    controlledProgress\n      ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n      : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n    `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n    `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n    {\n      [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n    }\n  );\n  const classNames = isFn(className)\n    ? className({\n        rtl,\n        type,\n        defaultClassName\n      })\n    : cx(defaultClassName, className);\n\n  // 🧐 controlledProgress is derived from progress\n  // so if controlledProgress is set\n  // it means that this is also the case for progress\n  const animationEvent = {\n    [controlledProgress && progress! >= 1\n      ? 'onTransitionEnd'\n      : 'onAnimationEnd']:\n      controlledProgress && progress! < 1\n        ? null\n        : () => {\n            isIn && closeToast();\n          }\n  };\n\n  // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n  return (\n    <div\n      role=\"progressbar\"\n      aria-hidden={hide ? 'true' : 'false'}\n      aria-label=\"notification timer\"\n      className={classNames}\n      style={style}\n      {...animationEvent}\n    />\n  );\n}\n\nProgressBar.defaultProps = {\n  type: TYPE.DEFAULT,\n  hide: false\n};\n","import * as React from 'react';\n\nimport { Theme, TypeOptions } from '../types';\nimport { Default } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n  theme: Theme;\n  type: TypeOptions;\n}\n\nexport type BuiltInIconProps = React.SVGProps<SVGSVGElement> & IconProps;\n\nconst Svg: React.FC<BuiltInIconProps> = ({ theme, type, ...rest }) => (\n  <svg\n    viewBox=\"0 0 24 24\"\n    width=\"100%\"\n    height=\"100%\"\n    fill={\n      theme === 'colored'\n        ? 'currentColor'\n        : `var(--toastify-icon-color-${type})`\n    }\n    {...rest}\n  />\n);\n\nfunction Warning(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z\" />\n    </Svg>\n  );\n}\n\nfunction Info(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z\" />\n    </Svg>\n  );\n}\n\nfunction Success(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z\" />\n    </Svg>\n  );\n}\n\nfunction Error(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z\" />\n    </Svg>\n  );\n}\n\nfunction Spinner() {\n  return <div className={`${Default.CSS_NAMESPACE}__spinner`} />;\n}\n\nexport const Icons = {\n  info: Info,\n  warning: Warning,\n  success: Success,\n  error: Error,\n  spinner: Spinner\n};\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { ProgressBar } from './ProgressBar';\nimport { Icons } from './Icons';\nimport { ToastProps } from '../types';\nimport { Default, isFn, isStr } from '../utils';\nimport { useToast } from '../hooks';\n\nexport const Toast: React.FC<ToastProps> = props => {\n  const {\n    isRunning,\n    preventExitTransition,\n    toastRef,\n    eventHandlers\n  } = useToast(props);\n  const {\n    closeButton,\n    children,\n    autoClose,\n    onClick,\n    type,\n    hideProgressBar,\n    closeToast,\n    transition: Transition,\n    position,\n    className,\n    style,\n    bodyClassName,\n    bodyStyle,\n    progressClassName,\n    progressStyle,\n    updateId,\n    role,\n    progress,\n    rtl,\n    toastId,\n    deleteToast,\n    isIn,\n    isLoading,\n    icon,\n    theme\n  } = props;\n  const defaultClassName = cx(\n    `${Default.CSS_NAMESPACE}__toast`,\n    `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n    `${Default.CSS_NAMESPACE}__toast--${type}`,\n    {\n      [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n    }\n  );\n  const cssClasses = isFn(className)\n    ? className({\n        rtl,\n        position,\n        type,\n        defaultClassName\n      })\n    : cx(defaultClassName, className);\n  const isProgressControlled = !!progress;\n  const maybeIcon = Icons[type as keyof typeof Icons];\n  const iconProps = { theme, type };\n  let Icon: React.ReactNode = maybeIcon && maybeIcon(iconProps);\n\n  if (icon === false) {\n    Icon = void 0;\n  } else if (isFn(icon)) {\n    Icon = icon(iconProps);\n  } else if (React.isValidElement(icon)) {\n    Icon = React.cloneElement(icon, iconProps);\n  } else if (isStr(icon)) {\n    Icon = icon;\n  } else if (isLoading) {\n    Icon = Icons.spinner();\n  }\n\n  function renderCloseButton(closeButton: any) {\n    if (!closeButton) return;\n\n    const props = { closeToast, type, theme };\n\n    if (isFn(closeButton)) return closeButton(props);\n\n    if (React.isValidElement(closeButton))\n      return React.cloneElement(closeButton, props);\n  }\n\n  return (\n    <Transition\n      isIn={isIn}\n      done={deleteToast}\n      position={position}\n      preventExitTransition={preventExitTransition}\n      nodeRef={toastRef}\n    >\n      <div\n        id={toastId as string}\n        onClick={onClick}\n        className={cssClasses}\n        {...eventHandlers}\n        style={style}\n        ref={toastRef}\n      >\n        <div\n          {...(isIn && { role: role })}\n          className={\n            isFn(bodyClassName)\n              ? bodyClassName({ type })\n              : cx(`${Default.CSS_NAMESPACE}__toast-body`, bodyClassName)\n          }\n          style={bodyStyle}\n        >\n          {Icon && (\n            <div\n              className={cx(`${Default.CSS_NAMESPACE}__toast-icon`, {\n                [`${Default.CSS_NAMESPACE}--animate-icon ${Default.CSS_NAMESPACE}__zoom-enter`]: !isLoading\n              })}\n            >\n              {Icon}\n            </div>\n          )}\n          <div>{children}</div>\n        </div>\n        {renderCloseButton(closeButton)}\n        {(autoClose || isProgressControlled) && (\n          <ProgressBar\n            {...(updateId && !isProgressControlled\n              ? { key: `pb-${updateId}` }\n              : {})}\n            rtl={rtl}\n            theme={theme}\n            delay={autoClose as number}\n            isRunning={isRunning}\n            isIn={isIn}\n            closeToast={closeToast}\n            hide={hideProgressBar}\n            type={type}\n            style={progressStyle}\n            className={progressClassName}\n            controlledProgress={isProgressControlled}\n            progress={progress}\n          />\n        )}\n      </div>\n    </Transition>\n  );\n};\n","import { Default, cssTransition } from '../utils';\n\nconst Bounce = cssTransition({\n  enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-enter`,\n  exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-exit`,\n  appendPosition: true\n});\n\nconst Slide = cssTransition({\n  enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-enter`,\n  exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-exit`,\n  appendPosition: true\n});\n\nconst Zoom = cssTransition({\n  enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-enter`,\n  exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-exit`\n});\n\nconst Flip = cssTransition({\n  enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-enter`,\n  exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-exit`\n});\n\nexport { Bounce, Slide, Zoom, Flip };\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { Toast } from './Toast';\nimport { CloseButton } from './CloseButton';\nimport { Bounce } from './Transitions';\nimport { POSITION, Direction, Default, parseClassName, isFn } from '../utils';\nimport { useToastContainer } from '../hooks';\nimport { ToastContainerProps, ToastPosition } from '../types';\n\nexport const ToastContainer: React.FC<ToastContainerProps> = props => {\n  const { getToastToRender, containerRef, isToastActive } = useToastContainer(\n    props\n  );\n  const { className, style, rtl, containerId } = props;\n\n  function getClassName(position: ToastPosition) {\n    const defaultClassName = cx(\n      `${Default.CSS_NAMESPACE}__toast-container`,\n      `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n      { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n    );\n    return isFn(className)\n      ? className({\n          position,\n          rtl,\n          defaultClassName\n        })\n      : cx(defaultClassName, parseClassName(className));\n  }\n\n  return (\n    <div\n      ref={containerRef}\n      className={Default.CSS_NAMESPACE as string}\n      id={containerId as string}\n    >\n      {getToastToRender((position, toastList) => {\n        const containerStyle: React.CSSProperties = !toastList.length\n          ? { ...style, pointerEvents: 'none' }\n          : { ...style };\n\n        return (\n          <div\n            className={getClassName(position)}\n            style={containerStyle}\n            key={`container-${position}`}\n          >\n            {toastList.map(({ content, props: toastProps }) => {\n              return (\n                <Toast\n                  {...toastProps}\n                  isIn={isToastActive(toastProps.toastId)}\n                  key={`toast-${toastProps.key}`}\n                  closeButton={\n                    toastProps.closeButton === true\n                      ? CloseButton\n                      : toastProps.closeButton\n                  }\n                >\n                  {content}\n                </Toast>\n              );\n            })}\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n\nToastContainer.defaultProps = {\n  position: POSITION.TOP_RIGHT as ToastPosition,\n  transition: Bounce,\n  rtl: false,\n  autoClose: 5000,\n  hideProgressBar: false,\n  closeButton: CloseButton,\n  pauseOnHover: true,\n  pauseOnFocusLoss: true,\n  closeOnClick: true,\n  newestOnTop: false,\n  draggable: true,\n  draggablePercent: Default.DRAGGABLE_PERCENT as number,\n  draggableDirection: Direction.X,\n  role: 'alert',\n  theme: 'light'\n};\n","import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport { POSITION, TYPE, canUseDom, isStr, isNum, isFn } from '../utils';\nimport { eventManager, OnChangeCallback, Event } from './eventManager';\nimport {\n  ToastContent,\n  ToastOptions,\n  ToastProps,\n  Id,\n  ToastContainerProps,\n  UpdateOptions,\n  ClearWaitingQueueParams,\n  NotValidatedToastProps,\n  TypeOptions\n} from '../types';\nimport { ContainerInstance } from '../hooks';\nimport { ToastContainer } from '../components';\n\ninterface EnqueuedToast {\n  content: ToastContent;\n  options: NotValidatedToastProps;\n}\n\nlet containers = new Map<ContainerInstance | Id, ContainerInstance>();\nlet latestInstance: ContainerInstance | Id;\nlet containerDomNode: HTMLElement;\nlet containerConfig: ToastContainerProps;\nlet queue: EnqueuedToast[] = [];\nlet lazy = false;\n\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\nfunction getToast(toastId: Id, { containerId }: ToastOptions) {\n  const container = containers.get(containerId || latestInstance);\n  if (!container) return null;\n\n  return container.getToast(toastId);\n}\n\n/**\n * Generate a random toastId\n */\nfunction generateToastId() {\n  return Math.random()\n    .toString(36)\n    .substring(2, 9);\n}\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId(options?: ToastOptions) {\n  if (options && (isStr(options.toastId) || isNum(options.toastId))) {\n    return options.toastId;\n  }\n\n  return generateToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\nfunction dispatchToast(\n  content: ToastContent,\n  options: NotValidatedToastProps\n): Id {\n  if (containers.size > 0) {\n    eventManager.emit(Event.Show, content, options);\n  } else {\n    queue.push({ content, options });\n    if (lazy && canUseDom) {\n      lazy = false;\n      containerDomNode = document.createElement('div');\n      document.body.appendChild(containerDomNode);\n      render(<ToastContainer {...containerConfig} />, containerDomNode);\n    }\n  }\n\n  return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions(type: string, options?: ToastOptions) {\n  return {\n    ...options,\n    type: (options && options.type) || type,\n    toastId: getToastId(options)\n  } as NotValidatedToastProps;\n}\n\nfunction createToastByType(type: string) {\n  return (content: ToastContent, options?: ToastOptions) =>\n    dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast(content: ToastContent, options?: ToastOptions) {\n  return dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));\n}\n\ntoast.loading = (content: ToastContent, options?: ToastOptions) =>\n  dispatchToast(\n    content,\n    mergeOptions(TYPE.DEFAULT, {\n      isLoading: true,\n      autoClose: false,\n      closeOnClick: false,\n      closeButton: false,\n      draggable: false,\n      ...options\n    })\n  );\n\nexport interface ToastPromiseParams {\n  pending?: string | UpdateOptions;\n  success?: string | UpdateOptions;\n  error?: string | UpdateOptions;\n}\n\nfunction handlePromise<T>(\n  promise: Promise<T> | (() => Promise<T>),\n  { pending, error, success }: ToastPromiseParams,\n  options?: ToastOptions\n) {\n  let id: Id;\n\n  if (pending) {\n    id = isStr(pending)\n      ? toast.loading(pending, options)\n      : toast.loading(pending.render, {\n          ...options,\n          ...(pending as ToastOptions)\n        });\n  }\n\n  const resetParams = {\n    isLoading: null,\n    autoClose: null,\n    closeOnClick: null,\n    closeButton: null,\n    draggable: null\n  };\n\n  const resolver = (\n    type: TypeOptions,\n    input: string | UpdateOptions | undefined,\n    result: T\n  ) => {\n    // Remove the toast if the input has not been provided. This prevents the toast from hanging\n    // in the pending state if a success/error toast has not been provided.\n    if (input == null) {\n      toast.dismiss(id);\n      return;\n    }\n\n    const baseParams = {\n      type,\n      ...resetParams,\n      ...options,\n      data: result\n    };\n    const params = isStr(input) ? { render: input } : input;\n\n    // if the id is set we know that it's an update\n    if (id) {\n      toast.update(id, {\n        ...baseParams,\n        ...params\n      });\n    } else {\n      // using toast.promise without loading\n      toast(params.render, {\n        ...baseParams,\n        ...params\n      } as ToastOptions);\n    }\n\n    return result;\n  };\n\n  const p = isFn(promise) ? promise() : promise;\n\n  //call the resolvers only when needed\n  p.then(result => resolver('success', success, result)).catch(err =>\n    resolver('error', error, err)\n  );\n\n  return p;\n}\n\ntoast.promise = handlePromise;\ntoast.success = createToastByType(TYPE.SUCCESS);\ntoast.info = createToastByType(TYPE.INFO);\ntoast.error = createToastByType(TYPE.ERROR);\ntoast.warning = createToastByType(TYPE.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n  dispatchToast(\n    content,\n    mergeOptions(TYPE.DEFAULT, {\n      theme: 'dark',\n      ...options\n    })\n  );\n\n/**\n * Remove toast programmaticaly\n */\ntoast.dismiss = (id?: Id) => eventManager.emit(Event.Clear, id);\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = (params: ClearWaitingQueueParams = {}) =>\n  eventManager.emit(Event.ClearWaitingQueue, params);\n\n/**\n * return true if one container is displaying the toast\n */\ntoast.isActive = (id: Id) => {\n  let isToastActive = false;\n\n  containers.forEach(container => {\n    if (container.isToastActive && container.isToastActive(id)) {\n      isToastActive = true;\n    }\n  });\n\n  return isToastActive;\n};\n\ntoast.update = (toastId: Id, options: UpdateOptions = {}) => {\n  // if you call toast and toast.update directly nothing will be displayed\n  // this is why I defered the update\n  setTimeout(() => {\n    const toast = getToast(toastId, options as ToastOptions);\n    if (toast) {\n      const { props: oldOptions, content: oldContent } = toast;\n\n      const nextOptions = {\n        ...oldOptions,\n        ...options,\n        toastId: options.toastId || toastId,\n        updateId: generateToastId()\n      } as ToastProps & UpdateOptions;\n\n      if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n      const content = nextOptions.render || oldContent;\n      delete nextOptions.render;\n\n      dispatchToast(content, nextOptions);\n    }\n  }, 0);\n};\n\n/**\n * Used for controlled progress bar.\n */\ntoast.done = (id: Id) => {\n  toast.update(id, {\n    progress: 1\n  });\n};\n\n/**\n * @deprecated\n * API will change in the next major release\n *\n * Track changes. The callback get the number of toast displayed\n */\ntoast.onChange = (callback: OnChangeCallback) => {\n  if (isFn(callback)) {\n    eventManager.on(Event.Change, callback);\n  }\n  return () => {\n    isFn(callback) && eventManager.off(Event.Change, callback);\n  };\n};\n\n/**\n * @deprecated\n * will be removed in the next major release\n *\n * Configure the ToastContainer when lazy mounted\n * Prefer ToastContainer over this one\n */\ntoast.configure = (config: ToastContainerProps = {}) => {\n  lazy = true;\n  containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\neventManager\n  .on(Event.DidMount, (containerInstance: ContainerInstance) => {\n    latestInstance = containerInstance.containerId || containerInstance;\n    containers.set(latestInstance, containerInstance);\n\n    queue.forEach(item => {\n      eventManager.emit(Event.Show, item.content, item.options);\n    });\n\n    queue = [];\n  })\n  .on(Event.WillUnmount, (containerInstance: ContainerInstance) => {\n    containers.delete(containerInstance.containerId || containerInstance);\n\n    if (containers.size === 0) {\n      eventManager\n        .off(Event.Show)\n        .off(Event.Clear)\n        .off(Event.ClearWaitingQueue);\n    }\n\n    if (canUseDom && containerDomNode) {\n      document.body.removeChild(containerDomNode);\n    }\n  });\n\nexport { toast };\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n\n  return target;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nexport default function _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n\n  return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n  if (isNativeReflectConstruct()) {\n    _construct = Reflect.construct;\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !isNativeFunction(Class)) return Class;\n\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n\n      _cache.set(Class, Wrapper);\n    }\n\n    function Wrapper() {\n      return construct(Class, arguments, getPrototypeOf(this).constructor);\n    }\n\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return setPrototypeOf(Wrapper, Class);\n  };\n\n  return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n  return typeof value === 'function';\n}\n","/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass<T>(createImpl: (_super: any) => any): T {\n  const _super = (instance: any) => {\n    Error.call(instance);\n    instance.stack = new Error().stack;\n  };\n\n  const ctorFunc = createImpl(_super);\n  ctorFunc.prototype = Object.create(Error.prototype);\n  ctorFunc.prototype.constructor = ctorFunc;\n  return ctorFunc;\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n  readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n  /**\n   * @deprecated Internal implementation detail. Do not construct error instances.\n   * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n   */\n  new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n  (_super) =>\n    function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n      _super(this);\n      this.message = errors\n        ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n  ')}`\n        : '';\n      this.name = 'UnsubscriptionError';\n      this.errors = errors;\n    }\n);\n","/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove<T>(arr: T[] | undefined | null, item: T) {\n  if (arr) {\n    const index = arr.indexOf(item);\n    0 <= index && arr.splice(index, 1);\n  }\n}\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n  /** @nocollapse */\n  public static EMPTY = (() => {\n    const empty = new Subscription();\n    empty.closed = true;\n    return empty;\n  })();\n\n  /**\n   * A flag to indicate whether this Subscription has already been unsubscribed.\n   */\n  public closed = false;\n\n  private _parentage: Subscription[] | Subscription | null = null;\n\n  /**\n   * The list of registered teardowns to execute upon unsubscription. Adding and removing from this\n   * list occurs in the {@link #add} and {@link #remove} methods.\n   */\n  private _teardowns: Exclude<TeardownLogic, void>[] | null = null;\n\n  /**\n   * @param initialTeardown A function executed first as part of the teardown\n   * process that is kicked off when {@link #unsubscribe} is called.\n   */\n  constructor(private initialTeardown?: () => void) {}\n\n  /**\n   * Disposes the resources held by the subscription. May, for instance, cancel\n   * an ongoing Observable execution or cancel any other type of work that\n   * started when the Subscription was created.\n   * @return {void}\n   */\n  unsubscribe(): void {\n    let errors: any[] | undefined;\n\n    if (!this.closed) {\n      this.closed = true;\n\n      // Remove this from it's parents.\n      const { _parentage } = this;\n      if (_parentage) {\n        this._parentage = null;\n        if (Array.isArray(_parentage)) {\n          for (const parent of _parentage) {\n            parent.remove(this);\n          }\n        } else {\n          _parentage.remove(this);\n        }\n      }\n\n      const { initialTeardown } = this;\n      if (isFunction(initialTeardown)) {\n        try {\n          initialTeardown();\n        } catch (e) {\n          errors = e instanceof UnsubscriptionError ? e.errors : [e];\n        }\n      }\n\n      const { _teardowns } = this;\n      if (_teardowns) {\n        this._teardowns = null;\n        for (const teardown of _teardowns) {\n          try {\n            execTeardown(teardown);\n          } catch (err) {\n            errors = errors ?? [];\n            if (err instanceof UnsubscriptionError) {\n              errors = [...errors, ...err.errors];\n            } else {\n              errors.push(err);\n            }\n          }\n        }\n      }\n\n      if (errors) {\n        throw new UnsubscriptionError(errors);\n      }\n    }\n  }\n\n  /**\n   * Adds a teardown to this subscription, so that teardown will be unsubscribed/called\n   * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n   * because it has already been unsubscribed, then whatever teardown is passed to it\n   * will automatically be executed (unless the teardown itself is also a closed subscription).\n   *\n   * Closed Subscriptions cannot be added as teardowns to any subscription. Adding a closed\n   * subscription to a any subscription will result in no operation. (A noop).\n   *\n   * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n   * operation at all. (A noop).\n   *\n   * `Subscription` instances that are added to this instance will automatically remove themselves\n   * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n   * will need to be removed manually with {@link #remove}\n   *\n   * @param teardown The teardown logic to add to this subscription.\n   */\n  add(teardown: TeardownLogic): void {\n    // Only add the teardown if it's not undefined\n    // and don't add a subscription to itself.\n    if (teardown && teardown !== this) {\n      if (this.closed) {\n        // If this subscription is already closed,\n        // execute whatever teardown is handed to it automatically.\n        execTeardown(teardown);\n      } else {\n        if (teardown instanceof Subscription) {\n          // We don't add closed subscriptions, and we don't add the same subscription\n          // twice. Subscription unsubscribe is idempotent.\n          if (teardown.closed || teardown._hasParent(this)) {\n            return;\n          }\n          teardown._addParent(this);\n        }\n        (this._teardowns = this._teardowns ?? []).push(teardown);\n      }\n    }\n  }\n\n  /**\n   * Checks to see if a this subscription already has a particular parent.\n   * This will signal that this subscription has already been added to the parent in question.\n   * @param parent the parent to check for\n   */\n  private _hasParent(parent: Subscription) {\n    const { _parentage } = this;\n    return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n  }\n\n  /**\n   * Adds a parent to this subscription so it can be removed from the parent if it\n   * unsubscribes on it's own.\n   *\n   * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n   * @param parent The parent subscription to add\n   */\n  private _addParent(parent: Subscription) {\n    const { _parentage } = this;\n    this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n  }\n\n  /**\n   * Called on a child when it is removed via {@link #remove}.\n   * @param parent The parent to remove\n   */\n  private _removeParent(parent: Subscription) {\n    const { _parentage } = this;\n    if (_parentage === parent) {\n      this._parentage = null;\n    } else if (Array.isArray(_parentage)) {\n      arrRemove(_parentage, parent);\n    }\n  }\n\n  /**\n   * Removes a teardown from this subscription that was previously added with the {@link #add} method.\n   *\n   * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n   * from every other `Subscription` they have been added to. This means that using the `remove` method\n   * is not a common thing and should be used thoughtfully.\n   *\n   * If you add the same teardown instance of a function or an unsubscribable object to a `Subcription` instance\n   * more than once, you will need to call `remove` the same number of times to remove all instances.\n   *\n   * All teardown instances are removed to free up memory upon unsubscription.\n   *\n   * @param teardown The teardown to remove from this subscription\n   */\n  remove(teardown: Exclude<TeardownLogic, void>): void {\n    const { _teardowns } = this;\n    _teardowns && arrRemove(_teardowns, teardown);\n\n    if (teardown instanceof Subscription) {\n      teardown._removeParent(this);\n    }\n  }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n  return (\n    value instanceof Subscription ||\n    (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n  );\n}\n\nfunction execTeardown(teardown: Unsubscribable | (() => void)) {\n  if (isFunction(teardown)) {\n    teardown();\n  } else {\n    teardown.unsubscribe();\n  }\n}\n","import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n  onUnhandledError: null,\n  onStoppedNotification: null,\n  Promise: undefined,\n  useDeprecatedSynchronousErrorHandling: false,\n  useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n  /**\n   * A registration point for unhandled errors from RxJS. These are errors that\n   * cannot were not handled by consuming code in the usual subscription path. For\n   * example, if you have this configured, and you subscribe to an observable without\n   * providing an error handler, errors from that subscription will end up here. This\n   * will _always_ be called asynchronously on another job in the runtime. This is because\n   * we do not want errors thrown in this user-configured handler to interfere with the\n   * behavior of the library.\n   */\n  onUnhandledError: ((err: any) => void) | null;\n\n  /**\n   * A registration point for notifications that cannot be sent to subscribers because they\n   * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n   * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n   * might want a different behavior. For example, with sources that attempt to report errors\n   * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n   * This will _always_ be called asynchronously on another job in the runtime. This is because\n   * we do not want errors thrown in this user-configured handler to interfere with the\n   * behavior of the library.\n   */\n  onStoppedNotification: ((notification: ObservableNotification<any>, subscriber: Subscriber<any>) => void) | null;\n\n  /**\n   * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n   * methods.\n   *\n   * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n   * Promise constructor. If you need a Promise implementation other than native promises,\n   * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n   */\n  Promise?: PromiseConstructorLike;\n\n  /**\n   * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n   * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n   * call in a try/catch block. It also enables producer interference, a nasty bug\n   * where a multicast can be broken for all observers by a downstream consumer with\n   * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n   * FOR MIGRATION REASONS.\n   *\n   * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n   * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n   * behaviors described above. Will be removed in v8.\n   */\n  useDeprecatedSynchronousErrorHandling: boolean;\n\n  /**\n   * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n   * `unsubscribe()` via `this` context in `next` functions created in observers passed\n   * to `subscribe`.\n   *\n   * This is being removed because the performance was severely problematic, and it could also cause\n   * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n   * their `this` context overwritten.\n   *\n   * @deprecated As of version 8, RxJS will no longer support altering the\n   * context of next functions provided as part of an observer to Subscribe. Instead,\n   * you will have access to a subscription or a signal or token that will allow you to do things like\n   * unsubscribe and test closed status. Will be removed in v8.\n   */\n  useDeprecatedNextContext: boolean;\n}\n","type SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => number;\ntype ClearTimeoutFunction = (handle: number) => void;\n\ninterface TimeoutProvider {\n  setTimeout: SetTimeoutFunction;\n  clearTimeout: ClearTimeoutFunction;\n  delegate:\n    | {\n        setTimeout: SetTimeoutFunction;\n        clearTimeout: ClearTimeoutFunction;\n      }\n    | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n  // When accessing the delegate, use the variable rather than `this` so that\n  // the functions can be called without being bound to the provider.\n  setTimeout(...args) {\n    const { delegate } = timeoutProvider;\n    return (delegate?.setTimeout || setTimeout)(...args);\n  },\n  clearTimeout(handle) {\n    const { delegate } = timeoutProvider;\n    return (delegate?.clearTimeout || clearTimeout)(handle);\n  },\n  delegate: undefined,\n};\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n  timeoutProvider.setTimeout(() => {\n    const { onUnhandledError } = config;\n    if (onUnhandledError) {\n      // Execute the user-configured error handler.\n      onUnhandledError(err);\n    } else {\n      // Throw so it is picked up by the runtime's uncaught error mechanism.\n      throw err;\n    }\n  });\n}\n","/* tslint:disable:no-empty */\nexport function noop() { }\n","import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n  return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification<T>(value: T) {\n  return createNotification('N', value, undefined) as NextNotification<T>;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n  return {\n    kind,\n    value,\n    error,\n  };\n}\n","import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n  if (config.useDeprecatedSynchronousErrorHandling) {\n    const isRoot = !context;\n    if (isRoot) {\n      context = { errorThrown: false, error: null };\n    }\n    cb();\n    if (isRoot) {\n      const { errorThrown, error } = context!;\n      context = null;\n      if (errorThrown) {\n        throw error;\n      }\n    }\n  } else {\n    // This is the general non-deprecated path for everyone that\n    // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n    cb();\n  }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n  if (config.useDeprecatedSynchronousErrorHandling && context) {\n    context.errorThrown = true;\n    context.error = err;\n  }\n}\n","import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nexport class Subscriber<T> extends Subscription implements Observer<T> {\n  /**\n   * A static factory for a Subscriber, given a (potentially partial) definition\n   * of an Observer.\n   * @param next The `next` callback of an Observer.\n   * @param error The `error` callback of an\n   * Observer.\n   * @param complete The `complete` callback of an\n   * Observer.\n   * @return A Subscriber wrapping the (partially defined)\n   * Observer represented by the given arguments.\n   * @nocollapse\n   * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n   * method, and there is no reason to be creating instances of `Subscriber` directly.\n   * If you have a specific use case, please file an issue.\n   */\n  static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T> {\n    return new SafeSubscriber(next, error, complete);\n  }\n\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  protected isStopped: boolean = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  protected destination: Subscriber<any> | Observer<any>; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n  /**\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n   */\n  constructor(destination?: Subscriber<any> | Observer<any>) {\n    super();\n    if (destination) {\n      this.destination = destination;\n      // Automatically chain subscriptions together here.\n      // if destination is a Subscription, then it is a Subscriber.\n      if (isSubscription(destination)) {\n        destination.add(this);\n      }\n    } else {\n      this.destination = EMPTY_OBSERVER;\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive notifications of type `next` from\n   * the Observable, with a value. The Observable may call this method 0 or more\n   * times.\n   * @param {T} [value] The `next` value.\n   * @return {void}\n   */\n  next(value?: T): void {\n    if (this.isStopped) {\n      handleStoppedNotification(nextNotification(value), this);\n    } else {\n      this._next(value!);\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive notifications of type `error` from\n   * the Observable, with an attached `Error`. Notifies the Observer that\n   * the Observable has experienced an error condition.\n   * @param {any} [err] The `error` exception.\n   * @return {void}\n   */\n  error(err?: any): void {\n    if (this.isStopped) {\n      handleStoppedNotification(errorNotification(err), this);\n    } else {\n      this.isStopped = true;\n      this._error(err);\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive a valueless notification of type\n   * `complete` from the Observable. Notifies the Observer that the Observable\n   * has finished sending push-based notifications.\n   * @return {void}\n   */\n  complete(): void {\n    if (this.isStopped) {\n      handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n    } else {\n      this.isStopped = true;\n      this._complete();\n    }\n  }\n\n  unsubscribe(): void {\n    if (!this.closed) {\n      this.isStopped = true;\n      super.unsubscribe();\n      this.destination = null!;\n    }\n  }\n\n  protected _next(value: T): void {\n    this.destination.next(value);\n  }\n\n  protected _error(err: any): void {\n    try {\n      this.destination.error(err);\n    } finally {\n      this.unsubscribe();\n    }\n  }\n\n  protected _complete(): void {\n    try {\n      this.destination.complete();\n    } finally {\n      this.unsubscribe();\n    }\n  }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind<Fn extends (...args: any[]) => any>(fn: Fn, thisArg: any): Fn {\n  return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver<T> implements Observer<T> {\n  constructor(private partialObserver: Partial<Observer<T>>) {}\n\n  next(value: T): void {\n    const { partialObserver } = this;\n    if (partialObserver.next) {\n      try {\n        partialObserver.next(value);\n      } catch (error) {\n        handleUnhandledError(error);\n      }\n    }\n  }\n\n  error(err: any): void {\n    const { partialObserver } = this;\n    if (partialObserver.error) {\n      try {\n        partialObserver.error(err);\n      } catch (error) {\n        handleUnhandledError(error);\n      }\n    } else {\n      handleUnhandledError(err);\n    }\n  }\n\n  complete(): void {\n    const { partialObserver } = this;\n    if (partialObserver.complete) {\n      try {\n        partialObserver.complete();\n      } catch (error) {\n        handleUnhandledError(error);\n      }\n    }\n  }\n}\n\nexport class SafeSubscriber<T> extends Subscriber<T> {\n  constructor(\n    observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n    error?: ((e?: any) => void) | null,\n    complete?: (() => void) | null\n  ) {\n    super();\n\n    let partialObserver: Partial<Observer<T>>;\n    if (isFunction(observerOrNext) || !observerOrNext) {\n      // The first argument is a function, not an observer. The next\n      // two arguments *could* be observers, or they could be empty.\n      partialObserver = {\n        next: observerOrNext ?? undefined,\n        error: error ?? undefined,\n        complete: complete ?? undefined,\n      };\n    } else {\n      // The first argument is a partial observer.\n      let context: any;\n      if (this && config.useDeprecatedNextContext) {\n        // This is a deprecated path that made `this.unsubscribe()` available in\n        // next handler functions passed to subscribe. This only exists behind a flag\n        // now, as it is *very* slow.\n        context = Object.create(observerOrNext);\n        context.unsubscribe = () => this.unsubscribe();\n        partialObserver = {\n          next: observerOrNext.next && bind(observerOrNext.next, context),\n          error: observerOrNext.error && bind(observerOrNext.error, context),\n          complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n        };\n      } else {\n        // The \"normal\" path. Just use the partial observer directly.\n        partialObserver = observerOrNext;\n      }\n    }\n\n    // Wrap the partial observer to ensure it's a full observer, and\n    // make sure proper error handling is accounted for.\n    this.destination = new ConsumerObserver(partialObserver);\n  }\n}\n\nfunction handleUnhandledError(error: any) {\n  if (config.useDeprecatedSynchronousErrorHandling) {\n    captureError(error);\n  } else {\n    // Ideal path, we report this as an unhandled error,\n    // which is thrown on a new call stack.\n    reportUnhandledError(error);\n  }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n  throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification<any>, subscriber: Subscriber<any>) {\n  const { onStoppedNotification } = config;\n  onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly<Observer<any>> & { closed: true } = {\n  closed: true,\n  next: noop,\n  error: defaultErrorHandler,\n  complete: noop,\n};\n","/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `<T>(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n *   map(i => range(i)),\n *   mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n *   next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n *   next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity<T>(x: T): T {\n  return x;\n}\n","import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;\nexport function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;\nexport function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;\nexport function pipe<T, A, B, C, D>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>\n): UnaryFunction<T, D>;\nexport function pipe<T, A, B, C, D, E>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>\n): UnaryFunction<T, E>;\nexport function pipe<T, A, B, C, D, E, F>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>\n): UnaryFunction<T, F>;\nexport function pipe<T, A, B, C, D, E, F, G>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>\n): UnaryFunction<T, G>;\nexport function pipe<T, A, B, C, D, E, F, G, H>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>,\n  fn8: UnaryFunction<G, H>\n): UnaryFunction<T, H>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>,\n  fn8: UnaryFunction<G, H>,\n  fn9: UnaryFunction<H, I>\n): UnaryFunction<T, I>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>,\n  fn8: UnaryFunction<G, H>,\n  fn9: UnaryFunction<H, I>,\n  ...fns: UnaryFunction<any, any>[]\n): UnaryFunction<T, unknown>;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on.  \n */\nexport function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> {\n  return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> {\n  if (fns.length === 0) {\n    return identity as UnaryFunction<any, any>;\n  }\n\n  if (fns.length === 1) {\n    return fns[0];\n  }\n\n  return function piped(input: T): R {\n    return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any);\n  };\n}\n","import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nexport class Observable<T> implements Subscribable<T> {\n  /**\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   */\n  source: Observable<any> | undefined;\n\n  /**\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   */\n  operator: Operator<any, T> | undefined;\n\n  /**\n   * @constructor\n   * @param {Function} subscribe the function that is called when the Observable is\n   * initially subscribed to. This function is given a Subscriber, to which new values\n   * can be `next`ed, or an `error` method can be called to raise an error, or\n   * `complete` can be called to notify of a successful completion.\n   */\n  constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic) {\n    if (subscribe) {\n      this._subscribe = subscribe;\n    }\n  }\n\n  // HACK: Since TypeScript inherits static properties too, we have to\n  // fight against TypeScript here so Subject can have a different static create signature\n  /**\n   * Creates a new Observable by calling the Observable constructor\n   * @owner Observable\n   * @method create\n   * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n   * @return {Observable} a new observable\n   * @nocollapse\n   * @deprecated Use `new Observable()` instead. Will be removed in v8.\n   */\n  static create: (...args: any[]) => any = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {\n    return new Observable<T>(subscribe);\n  };\n\n  /**\n   * Creates a new Observable, with this Observable instance as the source, and the passed\n   * operator defined as the new observable's operator.\n   * @method lift\n   * @param operator the operator defining the operation to take on the observable\n   * @return a new observable with the Operator applied\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   * If you have implemented an operator using `lift`, it is recommended that you create an\n   * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n   * scratch\" section here: https://rxjs.dev/guide/operators\n   */\n  lift<R>(operator?: Operator<T, R>): Observable<R> {\n    const observable = new Observable<R>();\n    observable.source = this;\n    observable.operator = operator;\n    return observable;\n  }\n\n  subscribe(observer?: Partial<Observer<T>>): Subscription;\n  subscribe(next: (value: T) => void): Subscription;\n  /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n  subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n  /**\n   * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n   *\n   * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n   *\n   * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n   * might be for example a function that you passed to Observable's constructor, but most of the time it is\n   * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n   * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n   * the thought.\n   *\n   * Apart from starting the execution of an Observable, this method allows you to listen for values\n   * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n   * of the following ways.\n   *\n   * The first way is creating an object that implements {@link Observer} interface. It should have methods\n   * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n   * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n   * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n   * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n   * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n   * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n   * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n   * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n   * an `error` method to avoid missing thrown errors.\n   *\n   * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n   * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n   * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n   * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n   * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n   * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n   *\n   * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n   * and you also handled emissions internally by using operators (e.g. using `tap`).\n   *\n   * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n   * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n   * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n   * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n   *\n   * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n   * It is an Observable itself that decides when these functions will be called. For example {@link of}\n   * by default emits all its values synchronously. Always check documentation for how given Observable\n   * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n   *\n   * ## Examples\n   *\n   * Subscribe with an {@link guide/observer Observer}\n   *\n   * ```ts\n   * import { of } from 'rxjs';\n   *\n   * const sumObserver = {\n   *   sum: 0,\n   *   next(value) {\n   *     console.log('Adding: ' + value);\n   *     this.sum = this.sum + value;\n   *   },\n   *   error() {\n   *     // We actually could just remove this method,\n   *     // since we do not really care about errors right now.\n   *   },\n   *   complete() {\n   *     console.log('Sum equals: ' + this.sum);\n   *   }\n   * };\n   *\n   * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n   *   .subscribe(sumObserver);\n   *\n   * // Logs:\n   * // 'Adding: 1'\n   * // 'Adding: 2'\n   * // 'Adding: 3'\n   * // 'Sum equals: 6'\n   * ```\n   *\n   * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n   *\n   * ```ts\n   * import { of } from 'rxjs'\n   *\n   * let sum = 0;\n   *\n   * of(1, 2, 3).subscribe(\n   *   value => {\n   *     console.log('Adding: ' + value);\n   *     sum = sum + value;\n   *   },\n   *   undefined,\n   *   () => console.log('Sum equals: ' + sum)\n   * );\n   *\n   * // Logs:\n   * // 'Adding: 1'\n   * // 'Adding: 2'\n   * // 'Adding: 3'\n   * // 'Sum equals: 6'\n   * ```\n   *\n   * Cancel a subscription\n   *\n   * ```ts\n   * import { interval } from 'rxjs';\n   *\n   * const subscription = interval(1000).subscribe({\n   *   next(num) {\n   *     console.log(num)\n   *   },\n   *   complete() {\n   *     // Will not be called, even when cancelling subscription.\n   *     console.log('completed!');\n   *   }\n   * });\n   *\n   * setTimeout(() => {\n   *   subscription.unsubscribe();\n   *   console.log('unsubscribed!');\n   * }, 2500);\n   *\n   * // Logs:\n   * // 0 after 1s\n   * // 1 after 2s\n   * // 'unsubscribed!' after 2.5s\n   * ```\n   *\n   * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n   * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n   * Observable.\n   * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n   * the error will be thrown asynchronously as unhandled.\n   * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n   * @return {Subscription} a subscription reference to the registered handlers\n   * @method subscribe\n   */\n  subscribe(\n    observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n    error?: ((error: any) => void) | null,\n    complete?: (() => void) | null\n  ): Subscription {\n    const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n    errorContext(() => {\n      const { operator, source } = this;\n      subscriber.add(\n        operator\n          ? // We're dealing with a subscription in the\n            // operator chain to one of our lifted operators.\n            operator.call(subscriber, source)\n          : source\n          ? // If `source` has a value, but `operator` does not, something that\n            // had intimate knowledge of our API, like our `Subject`, must have\n            // set it. We're going to just call `_subscribe` directly.\n            this._subscribe(subscriber)\n          : // In all other cases, we're likely wrapping a user-provided initializer\n            // function, so we need to catch errors and handle them appropriately.\n            this._trySubscribe(subscriber)\n      );\n    });\n\n    return subscriber;\n  }\n\n  /** @internal */\n  protected _trySubscribe(sink: Subscriber<T>): TeardownLogic {\n    try {\n      return this._subscribe(sink);\n    } catch (err) {\n      // We don't need to return anything in this case,\n      // because it's just going to try to `add()` to a subscription\n      // above.\n      sink.error(err);\n    }\n  }\n\n  /**\n   * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n   * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n   *\n   * **WARNING**: Only use this with observables you *know* will complete. If the source\n   * observable does not complete, you will end up with a promise that is hung up, and\n   * potentially all of the state of an async function hanging out in memory. To avoid\n   * this situation, look into adding something like {@link timeout}, {@link take},\n   * {@link takeWhile}, or {@link takeUntil} amongst others.\n   *\n   * ## Example\n   *\n   * ```ts\n   * import { interval, take } from 'rxjs';\n   *\n   * const source$ = interval(1000).pipe(take(4));\n   *\n   * async function getTotal() {\n   *   let total = 0;\n   *\n   *   await source$.forEach(value => {\n   *     total += value;\n   *     console.log('observable -> ' + value);\n   *   });\n   *\n   *   return total;\n   * }\n   *\n   * getTotal().then(\n   *   total => console.log('Total: ' + total)\n   * );\n   *\n   * // Expected:\n   * // 'observable -> 0'\n   * // 'observable -> 1'\n   * // 'observable -> 2'\n   * // 'observable -> 3'\n   * // 'Total: 6'\n   * ```\n   *\n   * @param next a handler for each value emitted by the observable\n   * @return a promise that either resolves on observable completion or\n   *  rejects with the handled error\n   */\n  forEach(next: (value: T) => void): Promise<void>;\n\n  /**\n   * @param next a handler for each value emitted by the observable\n   * @param promiseCtor a constructor function used to instantiate the Promise\n   * @return a promise that either resolves on observable completion or\n   *  rejects with the handled error\n   * @deprecated Passing a Promise constructor will no longer be available\n   * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n   * little benefit. If you need this functionality, it is recommended that you either\n   * polyfill Promise, or you create an adapter to convert the returned native promise\n   * to whatever promise implementation you wanted. Will be removed in v8.\n   */\n  forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise<void>;\n\n  forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void> {\n    promiseCtor = getPromiseCtor(promiseCtor);\n\n    return new promiseCtor<void>((resolve, reject) => {\n      const subscriber = new SafeSubscriber<T>({\n        next: (value) => {\n          try {\n            next(value);\n          } catch (err) {\n            reject(err);\n            subscriber.unsubscribe();\n          }\n        },\n        error: reject,\n        complete: resolve,\n      });\n      this.subscribe(subscriber);\n    }) as Promise<void>;\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<any>): TeardownLogic {\n    return this.source?.subscribe(subscriber);\n  }\n\n  /**\n   * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n   * @method Symbol.observable\n   * @return {Observable} this instance of the observable\n   */\n  [Symbol_observable]() {\n    return this;\n  }\n\n  /* tslint:disable:max-line-length */\n  pipe(): Observable<T>;\n  pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n  pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;\n  pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;\n  pipe<A, B, C, D>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>\n  ): Observable<D>;\n  pipe<A, B, C, D, E>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>\n  ): Observable<E>;\n  pipe<A, B, C, D, E, F>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>\n  ): Observable<F>;\n  pipe<A, B, C, D, E, F, G>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>\n  ): Observable<G>;\n  pipe<A, B, C, D, E, F, G, H>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>,\n    op8: OperatorFunction<G, H>\n  ): Observable<H>;\n  pipe<A, B, C, D, E, F, G, H, I>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>,\n    op8: OperatorFunction<G, H>,\n    op9: OperatorFunction<H, I>\n  ): Observable<I>;\n  pipe<A, B, C, D, E, F, G, H, I>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>,\n    op8: OperatorFunction<G, H>,\n    op9: OperatorFunction<H, I>,\n    ...operations: OperatorFunction<any, any>[]\n  ): Observable<unknown>;\n  /* tslint:enable:max-line-length */\n\n  /**\n   * Used to stitch together functional operators into a chain.\n   * @method pipe\n   * @return {Observable} the Observable result of all of the operators having\n   * been called in the order they were passed in.\n   *\n   * ## Example\n   *\n   * ```ts\n   * import { interval, filter, map, scan } from 'rxjs';\n   *\n   * interval(1000)\n   *   .pipe(\n   *     filter(x => x % 2 === 0),\n   *     map(x => x + x),\n   *     scan((acc, x) => acc + x)\n   *   )\n   *   .subscribe(x => console.log(x));\n   * ```\n   */\n  pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n    return pipeFromArray(operations)(this);\n  }\n\n  /* tslint:disable:max-line-length */\n  /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n  toPromise(): Promise<T | undefined>;\n  /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n  toPromise(PromiseCtor: typeof Promise): Promise<T | undefined>;\n  /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n  toPromise(PromiseCtor: PromiseConstructorLike): Promise<T | undefined>;\n  /* tslint:enable:max-line-length */\n\n  /**\n   * Subscribe to this Observable and get a Promise resolving on\n   * `complete` with the last emission (if any).\n   *\n   * **WARNING**: Only use this with observables you *know* will complete. If the source\n   * observable does not complete, you will end up with a promise that is hung up, and\n   * potentially all of the state of an async function hanging out in memory. To avoid\n   * this situation, look into adding something like {@link timeout}, {@link take},\n   * {@link takeWhile}, or {@link takeUntil} amongst others.\n   *\n   * @method toPromise\n   * @param [promiseCtor] a constructor function used to instantiate\n   * the Promise\n   * @return A Promise that resolves with the last value emit, or\n   * rejects on an error. If there were no emissions, Promise\n   * resolves with undefined.\n   * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n   */\n  toPromise(promiseCtor?: PromiseConstructorLike): Promise<T | undefined> {\n    promiseCtor = getPromiseCtor(promiseCtor);\n\n    return new promiseCtor((resolve, reject) => {\n      let value: T | undefined;\n      this.subscribe(\n        (x: T) => (value = x),\n        (err: any) => reject(err),\n        () => resolve(value)\n      );\n    }) as Promise<T | undefined>;\n  }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n  return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver<T>(value: any): value is Observer<T> {\n  return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber<T>(value: any): value is Subscriber<T> {\n  return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n  /**\n   * @deprecated Internal implementation detail. Do not construct error instances.\n   * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n   */\n  new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n  (_super) =>\n    function ObjectUnsubscribedErrorImpl(this: any) {\n      _super(this);\n      this.name = 'ObjectUnsubscribedError';\n      this.message = 'object unsubscribed';\n    }\n);\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject<T> extends Observable<T> implements SubscriptionLike {\n  closed = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  observers: Observer<T>[] = [];\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  isStopped = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  hasError = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  thrownError: any = null;\n\n  /**\n   * Creates a \"subject\" by basically gluing an observer to an observable.\n   *\n   * @nocollapse\n   * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n   */\n  static create: (...args: any[]) => any = <T>(destination: Observer<T>, source: Observable<T>): AnonymousSubject<T> => {\n    return new AnonymousSubject<T>(destination, source);\n  };\n\n  constructor() {\n    // NOTE: This must be here to obscure Observable's constructor.\n    super();\n  }\n\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  lift<R>(operator: Operator<T, R>): Observable<R> {\n    const subject = new AnonymousSubject(this, this);\n    subject.operator = operator as any;\n    return subject as any;\n  }\n\n  /** @internal */\n  protected _throwIfClosed() {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    }\n  }\n\n  next(value: T) {\n    errorContext(() => {\n      this._throwIfClosed();\n      if (!this.isStopped) {\n        const copy = this.observers.slice();\n        for (const observer of copy) {\n          observer.next(value);\n        }\n      }\n    });\n  }\n\n  error(err: any) {\n    errorContext(() => {\n      this._throwIfClosed();\n      if (!this.isStopped) {\n        this.hasError = this.isStopped = true;\n        this.thrownError = err;\n        const { observers } = this;\n        while (observers.length) {\n          observers.shift()!.error(err);\n        }\n      }\n    });\n  }\n\n  complete() {\n    errorContext(() => {\n      this._throwIfClosed();\n      if (!this.isStopped) {\n        this.isStopped = true;\n        const { observers } = this;\n        while (observers.length) {\n          observers.shift()!.complete();\n        }\n      }\n    });\n  }\n\n  unsubscribe() {\n    this.isStopped = this.closed = true;\n    this.observers = null!;\n  }\n\n  get observed() {\n    return this.observers?.length > 0;\n  }\n\n  /** @internal */\n  protected _trySubscribe(subscriber: Subscriber<T>): TeardownLogic {\n    this._throwIfClosed();\n    return super._trySubscribe(subscriber);\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    this._throwIfClosed();\n    this._checkFinalizedStatuses(subscriber);\n    return this._innerSubscribe(subscriber);\n  }\n\n  /** @internal */\n  protected _innerSubscribe(subscriber: Subscriber<any>) {\n    const { hasError, isStopped, observers } = this;\n    return hasError || isStopped\n      ? EMPTY_SUBSCRIPTION\n      : (observers.push(subscriber), new Subscription(() => arrRemove(observers, subscriber)));\n  }\n\n  /** @internal */\n  protected _checkFinalizedStatuses(subscriber: Subscriber<any>) {\n    const { hasError, thrownError, isStopped } = this;\n    if (hasError) {\n      subscriber.error(thrownError);\n    } else if (isStopped) {\n      subscriber.complete();\n    }\n  }\n\n  /**\n   * Creates a new Observable with this Subject as the source. You can do this\n   * to create customize Observer-side logic of the Subject and conceal it from\n   * code that uses the Observable.\n   * @return {Observable} Observable that the Subject casts to\n   */\n  asObservable(): Observable<T> {\n    const observable: any = new Observable<T>();\n    observable.source = this;\n    return observable;\n  }\n}\n\n/**\n * @class AnonymousSubject<T>\n */\nexport class AnonymousSubject<T> extends Subject<T> {\n  constructor(\n    /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n    public destination?: Observer<T>,\n    source?: Observable<T>\n  ) {\n    super();\n    this.source = source;\n  }\n\n  next(value: T) {\n    this.destination?.next?.(value);\n  }\n\n  error(err: any) {\n    this.destination?.error?.(err);\n  }\n\n  complete() {\n    this.destination?.complete?.();\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n  }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject<T>\n */\nexport class BehaviorSubject<T> extends Subject<T> {\n  constructor(private _value: T) {\n    super();\n  }\n\n  get value(): T {\n    return this.getValue();\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    const subscription = super._subscribe(subscriber);\n    !subscription.closed && subscriber.next(this._value);\n    return subscription;\n  }\n\n  getValue(): T {\n    const { hasError, thrownError, _value } = this;\n    if (hasError) {\n      throw thrownError;\n    }\n    this._throwIfClosed();\n    return _value;\n  }\n\n  next(value: T): void {\n    super.next((this._value = value));\n  }\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType<typeof Observable>['lift'] } {\n  return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate<T, R>(\n  init: (liftedSource: Observable<T>, subscriber: Subscriber<R>) => (() => void) | void\n): OperatorFunction<T, R> {\n  return (source: Observable<T>) => {\n    if (hasLift(source)) {\n      return source.lift(function (this: Subscriber<R>, liftedSource: Observable<T>) {\n        try {\n          return init(liftedSource, this);\n        } catch (err) {\n          this.error(err);\n        }\n      });\n    }\n    throw new TypeError('Unable to lift unknown Observable type');\n  };\n}\n","import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber<T>(\n  destination: Subscriber<any>,\n  onNext?: (value: T) => void,\n  onComplete?: () => void,\n  onError?: (err: any) => void,\n  onFinalize?: () => void\n): Subscriber<T> {\n  return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber<T> extends Subscriber<T> {\n  /**\n   * Creates an instance of an `OperatorSubscriber`.\n   * @param destination The downstream subscriber.\n   * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n   * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n   * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n   * and send to the `destination` error handler.\n   * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n   * this handler are sent to the `destination` error handler.\n   * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n   * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n   * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n   * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n   * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n   * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n   */\n  constructor(\n    destination: Subscriber<any>,\n    onNext?: (value: T) => void,\n    onComplete?: () => void,\n    onError?: (err: any) => void,\n    private onFinalize?: () => void,\n    private shouldUnsubscribe?: () => boolean\n  ) {\n    // It's important - for performance reasons - that all of this class's\n    // members are initialized and that they are always initialized in the same\n    // order. This will ensure that all OperatorSubscriber instances have the\n    // same hidden class in V8. This, in turn, will help keep the number of\n    // hidden classes involved in property accesses within the base class as\n    // low as possible. If the number of hidden classes involved exceeds four,\n    // the property accesses will become megamorphic and performance penalties\n    // will be incurred - i.e. inline caches won't be used.\n    //\n    // The reasons for ensuring all instances have the same hidden class are\n    // further discussed in this blog post from Benedikt Meurer:\n    // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n    super(destination);\n    this._next = onNext\n      ? function (this: OperatorSubscriber<T>, value: T) {\n          try {\n            onNext(value);\n          } catch (err) {\n            destination.error(err);\n          }\n        }\n      : super._next;\n    this._error = onError\n      ? function (this: OperatorSubscriber<T>, err: any) {\n          try {\n            onError(err);\n          } catch (err) {\n            // Send any errors that occur down stream.\n            destination.error(err);\n          } finally {\n            // Ensure teardown.\n            this.unsubscribe();\n          }\n        }\n      : super._error;\n    this._complete = onComplete\n      ? function (this: OperatorSubscriber<T>) {\n          try {\n            onComplete();\n          } catch (err) {\n            // Send any errors that occur down stream.\n            destination.error(err);\n          } finally {\n            // Ensure teardown.\n            this.unsubscribe();\n          }\n        }\n      : super._complete;\n  }\n\n  unsubscribe() {\n    if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n      const { closed } = this;\n      super.unsubscribe();\n      // Execute additional teardown if we have any and we didn't already do so.\n      !closed && this.onFinalize?.();\n    }\n  }\n}\n","import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, S extends T, A>(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction<T, S>;\nexport function filter<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;\nexport function filter<T>(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, A>(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction<T>;\nexport function filter<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T>;\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * ![](filter.png)\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n *\n * Emit only click events whose target was a DIV element\n *\n * ```ts\n * import { fromEvent, filter } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => (<HTMLElement>ev.target).tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param thisArg An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return A function that returns an Observable that emits items from the\n * source Observable that satisfy the specified `predicate`.\n */\nexport function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    // An index passed to our predicate function on each call.\n    let index = 0;\n\n    // Subscribe to the source, all errors and completions are\n    // forwarded to the consumer.\n    source.subscribe(\n      // Call the predicate with the appropriate `this` context,\n      // if the predicate returns `true`, then send the value\n      // to the consumer.\n      createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value))\n    );\n  });\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface EmptyError extends Error {}\n\nexport interface EmptyErrorCtor {\n  /**\n   * @deprecated Internal implementation detail. Do not construct error instances.\n   * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n   */\n  new (): EmptyError;\n}\n\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n * @see {@link firstValueFrom}\n * @see {@link lastValueFrom}\n *\n * @class EmptyError\n */\nexport const EmptyError: EmptyErrorCtor = createErrorClass((_super) => function EmptyErrorImpl(this: any) {\n  _super(this);\n  this.name = 'EmptyError';\n  this.message = 'no elements in sequence';\n});\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * <span class=\"informal\">Just emits 'complete', and nothing else.</span>\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n *   next: () => console.log('Next'),\n *   complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n *   mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable<never>((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n  return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n  return new Observable<never>((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","import { MonoTypeOperatorFunction } from '../types';\nimport { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Takes the first `count` values from the source, then\n * completes.</span>\n *\n * ![](take.png)\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * ## Example\n *\n * Take the first 5 seconds of an infinite 1-second interval Observable\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const intervalCount = interval(1000);\n * const takeFive = intervalCount.pipe(take(5));\n * takeFive.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // 3\n * // 4\n * ```\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param count The maximum number of `next` values to emit.\n * @return A function that returns an Observable that emits only the first\n * `count` values emitted by the source Observable, or all of the values from\n * the source if the source emits fewer than `count` values.\n */\nexport function take<T>(count: number): MonoTypeOperatorFunction<T> {\n  return count <= 0\n    ? // If we are taking no values, that's empty.\n      () => EMPTY\n    : operate((source, subscriber) => {\n        let seen = 0;\n        source.subscribe(\n          createOperatorSubscriber(subscriber, (value) => {\n            // Increment the number of values we have seen,\n            // then check it against the allowed count to see\n            // if we are still letting values through.\n            if (++seen <= count) {\n              subscriber.next(value);\n              // If we have met or passed our allowed count,\n              // we need to complete. We have to do <= here,\n              // because re-entrant code will increment `seen` twice.\n              if (count <= seen) {\n                subscriber.complete();\n              }\n            }\n          })\n        );\n      });\n}\n","import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Emits a given value if the source Observable completes without emitting any\n * `next` value, otherwise mirrors the source Observable.\n *\n * <span class=\"informal\">If the source Observable turns out to be empty, then\n * this operator will emit a default value.</span>\n *\n * ![](defaultIfEmpty.png)\n *\n * `defaultIfEmpty` emits the values emitted by the source Observable or a\n * specified default value if the source Observable is empty (completes without\n * having emitted any `next` value).\n *\n * ## Example\n *\n * If no clicks happen in 5 seconds, then emit 'no clicks'\n *\n * ```ts\n * import { fromEvent, takeUntil, interval, defaultIfEmpty } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000)));\n * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link empty}\n * @see {@link last}\n *\n * @param defaultValue The default value used if the source\n * Observable is empty.\n * @return A function that returns an Observable that emits either the\n * specified `defaultValue` if the source Observable emits no items, or the\n * values emitted by the source Observable.\n */\nexport function defaultIfEmpty<T, R>(defaultValue: R): OperatorFunction<T, T | R> {\n  return operate((source, subscriber) => {\n    let hasValue = false;\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          hasValue = true;\n          subscriber.next(value);\n        },\n        () => {\n          if (!hasValue) {\n            subscriber.next(defaultValue!);\n          }\n          subscriber.complete();\n        }\n      )\n    );\n  });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { MonoTypeOperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * If the source observable completes without emitting a value, it will emit\n * an error. The error will be created at that time by the optional\n * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.\n *\n * ![](throwIfEmpty.png)\n *\n * ## Example\n *\n * Throw an error if the document wasn't clicked within 1 second\n *\n * ```ts\n * import { fromEvent, takeUntil, timer, throwIfEmpty } from 'rxjs';\n *\n * const click$ = fromEvent(document, 'click');\n *\n * click$.pipe(\n *   takeUntil(timer(1000)),\n *   throwIfEmpty(() => new Error('The document was not clicked within 1 second'))\n * )\n * .subscribe({\n *   next() {\n *    console.log('The document was clicked');\n *   },\n *   error(err) {\n *     console.error(err.message);\n *   }\n * });\n * ```\n *\n * @param errorFactory A factory function called to produce the\n * error to be thrown when the source observable completes without emitting a\n * value.\n * @return A function that returns an Observable that throws an error if the\n * source Observable completed without emitting.\n */\nexport function throwIfEmpty<T>(errorFactory: () => any = defaultErrorFactory): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    let hasValue = false;\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          hasValue = true;\n          subscriber.next(value);\n        },\n        () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))\n      )\n    );\n  });\n}\n\nfunction defaultErrorFactory() {\n  return new EmptyError();\n}\n","export function ApiHostName(): string {\r\n  //if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\r\n  //  return \"https://localhost:44323\";\r\n  //}\r\n\r\n  return (`${window.location.protocol}//${ window.location.hostname}${window.location.port ? `:${window.location.port}` : \"\"}${process.env.PUBLIC_URL}`)  \r\n}\r\n\r\nexport default function ApiUrl(): string {\r\n  return `${ApiHostName()}/api/`\r\n}\r\n","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n  type: 'logger',\n  log: function log(args) {\n    this.output('log', args);\n  },\n  warn: function warn(args) {\n    this.output('warn', args);\n  },\n  error: function error(args) {\n    this.output('error', args);\n  },\n  output: function output(type, args) {\n    if (console && console[type]) console[type].apply(console, args);\n  }\n};\n\nvar Logger = function () {\n  function Logger(concreteLogger) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Logger);\n\n    this.init(concreteLogger, options);\n  }\n\n  _createClass(Logger, [{\n    key: \"init\",\n    value: function init(concreteLogger) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      this.prefix = options.prefix || 'i18next:';\n      this.logger = concreteLogger || consoleLogger;\n      this.options = options;\n      this.debug = options.debug;\n    }\n  }, {\n    key: \"setDebug\",\n    value: function setDebug(bool) {\n      this.debug = bool;\n    }\n  }, {\n    key: \"log\",\n    value: function log() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      return this.forward(args, 'log', '', true);\n    }\n  }, {\n    key: \"warn\",\n    value: function warn() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return this.forward(args, 'warn', '', true);\n    }\n  }, {\n    key: \"error\",\n    value: function error() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      return this.forward(args, 'error', '');\n    }\n  }, {\n    key: \"deprecate\",\n    value: function deprecate() {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n    }\n  }, {\n    key: \"forward\",\n    value: function forward(args, lvl, prefix, debugOnly) {\n      if (debugOnly && !this.debug) return null;\n      if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n      return this.logger[lvl](args);\n    }\n  }, {\n    key: \"create\",\n    value: function create(moduleName) {\n      return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n        prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n      }), this.options));\n    }\n  }]);\n\n  return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n  function EventEmitter() {\n    _classCallCheck(this, EventEmitter);\n\n    this.observers = {};\n  }\n\n  _createClass(EventEmitter, [{\n    key: \"on\",\n    value: function on(events, listener) {\n      var _this = this;\n\n      events.split(' ').forEach(function (event) {\n        _this.observers[event] = _this.observers[event] || [];\n\n        _this.observers[event].push(listener);\n      });\n      return this;\n    }\n  }, {\n    key: \"off\",\n    value: function off(event, listener) {\n      if (!this.observers[event]) return;\n\n      if (!listener) {\n        delete this.observers[event];\n        return;\n      }\n\n      this.observers[event] = this.observers[event].filter(function (l) {\n        return l !== listener;\n      });\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(event) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (this.observers[event]) {\n        var cloned = [].concat(this.observers[event]);\n        cloned.forEach(function (observer) {\n          observer.apply(void 0, args);\n        });\n      }\n\n      if (this.observers['*']) {\n        var _cloned = [].concat(this.observers['*']);\n\n        _cloned.forEach(function (observer) {\n          observer.apply(observer, [event].concat(args));\n        });\n      }\n    }\n  }]);\n\n  return EventEmitter;\n}();\n\nfunction defer() {\n  var res;\n  var rej;\n  var promise = new Promise(function (resolve, reject) {\n    res = resolve;\n    rej = reject;\n  });\n  promise.resolve = res;\n  promise.reject = rej;\n  return promise;\n}\nfunction makeString(object) {\n  if (object == null) return '';\n  return '' + object;\n}\nfunction copy(a, s, t) {\n  a.forEach(function (m) {\n    if (s[m]) t[m] = s[m];\n  });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n  function cleanKey(key) {\n    return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n  }\n\n  function canNotTraverseDeeper() {\n    return !object || typeof object === 'string';\n  }\n\n  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n  while (stack.length > 1) {\n    if (canNotTraverseDeeper()) return {};\n    var key = cleanKey(stack.shift());\n    if (!object[key] && Empty) object[key] = new Empty();\n\n    if (Object.prototype.hasOwnProperty.call(object, key)) {\n      object = object[key];\n    } else {\n      object = {};\n    }\n  }\n\n  if (canNotTraverseDeeper()) return {};\n  return {\n    obj: object,\n    k: cleanKey(stack.shift())\n  };\n}\n\nfunction setPath(object, path, newValue) {\n  var _getLastOfPath = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath.obj,\n      k = _getLastOfPath.k;\n\n  obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n  var _getLastOfPath2 = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath2.obj,\n      k = _getLastOfPath2.k;\n\n  obj[k] = obj[k] || [];\n  if (concat) obj[k] = obj[k].concat(newValue);\n  if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n  var _getLastOfPath3 = getLastOfPath(object, path),\n      obj = _getLastOfPath3.obj,\n      k = _getLastOfPath3.k;\n\n  if (!obj) return undefined;\n  return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n  var value = getPath(data, key);\n\n  if (value !== undefined) {\n    return value;\n  }\n\n  return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n  for (var prop in source) {\n    if (prop !== '__proto__' && prop !== 'constructor') {\n      if (prop in target) {\n        if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n          if (overwrite) target[prop] = source[prop];\n        } else {\n          deepExtend(target[prop], source[prop], overwrite);\n        }\n      } else {\n        target[prop] = source[prop];\n      }\n    }\n  }\n\n  return target;\n}\nfunction regexEscape(str) {\n  return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\n  '/': '&#x2F;'\n};\nfunction escape(data) {\n  if (typeof data === 'string') {\n    return data.replace(/[&<>\"'\\/]/g, function (s) {\n      return _entityMap[s];\n    });\n  }\n\n  return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n  nsSeparator = nsSeparator || '';\n  keySeparator = keySeparator || '';\n  var possibleChars = chars.filter(function (c) {\n    return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n  });\n  if (possibleChars.length === 0) return true;\n  var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n    return c === '?' ? '\\\\?' : c;\n  }).join('|'), \")\"));\n  var matched = !r.test(key);\n\n  if (!matched) {\n    var ki = key.indexOf(keySeparator);\n\n    if (ki > 0 && !r.test(key.substring(0, ki))) {\n      matched = true;\n    }\n  }\n\n  return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n  var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n  if (!obj) return undefined;\n  if (obj[path]) return obj[path];\n  var paths = path.split(keySeparator);\n  var current = obj;\n\n  for (var i = 0; i < paths.length; ++i) {\n    if (!current) return undefined;\n\n    if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n      return undefined;\n    }\n\n    if (current[paths[i]] === undefined) {\n      var j = 2;\n      var p = paths.slice(i, i + j).join(keySeparator);\n      var mix = current[p];\n\n      while (mix === undefined && paths.length > i + j) {\n        j++;\n        p = paths.slice(i, i + j).join(keySeparator);\n        mix = current[p];\n      }\n\n      if (mix === undefined) return undefined;\n\n      if (path.endsWith(p)) {\n        if (typeof mix === 'string') return mix;\n        if (p && typeof mix[p] === 'string') return mix[p];\n      }\n\n      var joinedPath = paths.slice(i + j).join(keySeparator);\n      if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n      return undefined;\n    }\n\n    current = current[paths[i]];\n  }\n\n  return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n  _inherits(ResourceStore, _EventEmitter);\n\n  var _super = _createSuper(ResourceStore);\n\n  function ResourceStore(data) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      ns: ['translation'],\n      defaultNS: 'translation'\n    };\n\n    _classCallCheck(this, ResourceStore);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    _this.data = data || {};\n    _this.options = options;\n\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n\n    if (_this.options.ignoreJSONStructure === undefined) {\n      _this.options.ignoreJSONStructure = true;\n    }\n\n    return _this;\n  }\n\n  _createClass(ResourceStore, [{\n    key: \"addNamespaces\",\n    value: function addNamespaces(ns) {\n      if (this.options.ns.indexOf(ns) < 0) {\n        this.options.ns.push(ns);\n      }\n    }\n  }, {\n    key: \"removeNamespaces\",\n    value: function removeNamespaces(ns) {\n      var index = this.options.ns.indexOf(ns);\n\n      if (index > -1) {\n        this.options.ns.splice(index, 1);\n      }\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(lng, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n      var path = [lng, ns];\n      if (key && typeof key !== 'string') path = path.concat(key);\n      if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n      }\n\n      var result = getPath(this.data, path);\n      if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n      return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n    }\n  }, {\n    key: \"addResource\",\n    value: function addResource(lng, ns, key, value) {\n      var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n        silent: false\n      };\n      var keySeparator = this.options.keySeparator;\n      if (keySeparator === undefined) keySeparator = '.';\n      var path = [lng, ns];\n      if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        value = ns;\n        ns = path[1];\n      }\n\n      this.addNamespaces(ns);\n      setPath(this.data, path, value);\n      if (!options.silent) this.emit('added', lng, ns, key, value);\n    }\n  }, {\n    key: \"addResources\",\n    value: function addResources(lng, ns, resources) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n        silent: false\n      };\n\n      for (var m in resources) {\n        if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n          silent: true\n        });\n      }\n\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"addResourceBundle\",\n    value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n        silent: false\n      };\n      var path = [lng, ns];\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        deep = resources;\n        resources = ns;\n        ns = path[1];\n      }\n\n      this.addNamespaces(ns);\n      var pack = getPath(this.data, path) || {};\n\n      if (deep) {\n        deepExtend(pack, resources, overwrite);\n      } else {\n        pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n      }\n\n      setPath(this.data, path, pack);\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"removeResourceBundle\",\n    value: function removeResourceBundle(lng, ns) {\n      if (this.hasResourceBundle(lng, ns)) {\n        delete this.data[lng][ns];\n      }\n\n      this.removeNamespaces(ns);\n      this.emit('removed', lng, ns);\n    }\n  }, {\n    key: \"hasResourceBundle\",\n    value: function hasResourceBundle(lng, ns) {\n      return this.getResource(lng, ns) !== undefined;\n    }\n  }, {\n    key: \"getResourceBundle\",\n    value: function getResourceBundle(lng, ns) {\n      if (!ns) ns = this.options.defaultNS;\n      if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n      return this.getResource(lng, ns);\n    }\n  }, {\n    key: \"getDataByLanguage\",\n    value: function getDataByLanguage(lng) {\n      return this.data[lng];\n    }\n  }, {\n    key: \"hasLanguageSomeTranslations\",\n    value: function hasLanguageSomeTranslations(lng) {\n      var data = this.getDataByLanguage(lng);\n      var n = data && Object.keys(data) || [];\n      return !!n.find(function (v) {\n        return data[v] && Object.keys(data[v]).length > 0;\n      });\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return this.data;\n    }\n  }]);\n\n  return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n  processors: {},\n  addPostProcessor: function addPostProcessor(module) {\n    this.processors[module.name] = module;\n  },\n  handle: function handle(processors, value, key, options, translator) {\n    var _this = this;\n\n    processors.forEach(function (processor) {\n      if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n    });\n    return value;\n  }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n  _inherits(Translator, _EventEmitter);\n\n  var _super = _createSuper$1(Translator);\n\n  function Translator(services) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Translator);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n    _this.options = options;\n\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n\n    _this.logger = baseLogger.create('translator');\n    return _this;\n  }\n\n  _createClass(Translator, [{\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng) {\n      if (lng) this.language = lng;\n    }\n  }, {\n    key: \"exists\",\n    value: function exists(key) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n\n      if (key === undefined || key === null) {\n        return false;\n      }\n\n      var resolved = this.resolve(key, options);\n      return resolved && resolved.res !== undefined;\n    }\n  }, {\n    key: \"extractFromKey\",\n    value: function extractFromKey(key, options) {\n      var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n      if (nsSeparator === undefined) nsSeparator = ':';\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var namespaces = options.ns || this.options.defaultNS || [];\n      var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n      var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n      if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n        var m = key.match(this.interpolator.nestingRegexp);\n\n        if (m && m.length > 0) {\n          return {\n            key: key,\n            namespaces: namespaces\n          };\n        }\n\n        var parts = key.split(nsSeparator);\n        if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n        key = parts.join(keySeparator);\n      }\n\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      return {\n        key: key,\n        namespaces: namespaces\n      };\n    }\n  }, {\n    key: \"translate\",\n    value: function translate(keys, options, lastKey) {\n      var _this2 = this;\n\n      if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n        options = this.options.overloadTranslationOptionHandler(arguments);\n      }\n\n      if (!options) options = {};\n      if (keys === undefined || keys === null) return '';\n      if (!Array.isArray(keys)) keys = [String(keys)];\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n      var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n          key = _this$extractFromKey.key,\n          namespaces = _this$extractFromKey.namespaces;\n\n      var namespace = namespaces[namespaces.length - 1];\n      var lng = options.lng || this.language;\n      var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n      if (lng && lng.toLowerCase() === 'cimode') {\n        if (appendNamespaceToCIMode) {\n          var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n          return namespace + nsSeparator + key;\n        }\n\n        return key;\n      }\n\n      var resolved = this.resolve(keys, options);\n      var res = resolved && resolved.res;\n      var resUsedKey = resolved && resolved.usedKey || key;\n      var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n      var resType = Object.prototype.toString.apply(res);\n      var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n      var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n      var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n      var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n      if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n        if (!options.returnObjects && !this.options.returnObjects) {\n          if (!this.options.returnedObjectHandler) {\n            this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n          }\n\n          return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n            ns: namespaces\n          })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n        }\n\n        if (keySeparator) {\n          var resTypeIsArray = resType === '[object Array]';\n          var copy = resTypeIsArray ? [] : {};\n          var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n          for (var m in res) {\n            if (Object.prototype.hasOwnProperty.call(res, m)) {\n              var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n              copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n                joinArrays: false,\n                ns: namespaces\n              }));\n              if (copy[m] === deepKey) copy[m] = res[m];\n            }\n          }\n\n          res = copy;\n        }\n      } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n        res = res.join(joinArrays);\n        if (res) res = this.extendTranslation(res, keys, options, lastKey);\n      } else {\n        var usedDefault = false;\n        var usedKey = false;\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n        var hasDefaultValue = Translator.hasDefaultValue(options);\n        var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n        var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n        if (!this.isValidLookup(res) && hasDefaultValue) {\n          usedDefault = true;\n          res = defaultValue;\n        }\n\n        if (!this.isValidLookup(res)) {\n          usedKey = true;\n          res = key;\n        }\n\n        var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n        var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n        var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n        if (usedKey || usedDefault || updateMissing) {\n          this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n          if (keySeparator) {\n            var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n              keySeparator: false\n            }));\n            if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n          }\n\n          var lngs = [];\n          var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n          if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n            for (var i = 0; i < fallbackLngs.length; i++) {\n              lngs.push(fallbackLngs[i]);\n            }\n          } else if (this.options.saveMissingTo === 'all') {\n            lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n          } else {\n            lngs.push(options.lng || this.language);\n          }\n\n          var send = function send(l, k, specificDefaultValue) {\n            var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n            if (_this2.options.missingKeyHandler) {\n              _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n            } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n              _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n            }\n\n            _this2.emit('missingKey', l, namespace, k, res);\n          };\n\n          if (this.options.saveMissing) {\n            if (this.options.saveMissingPlurals && needsPluralHandling) {\n              lngs.forEach(function (language) {\n                _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n                  send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n                });\n              });\n            } else {\n              send(lngs, key, defaultValue);\n            }\n          }\n        }\n\n        res = this.extendTranslation(res, keys, options, resolved, lastKey);\n        if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n        if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n          if (this.options.compatibilityAPI !== 'v1') {\n            res = this.options.parseMissingKeyHandler(key, usedDefault ? res : undefined);\n          } else {\n            res = this.options.parseMissingKeyHandler(res);\n          }\n        }\n      }\n\n      return res;\n    }\n  }, {\n    key: \"extendTranslation\",\n    value: function extendTranslation(res, key, options, resolved, lastKey) {\n      var _this3 = this;\n\n      if (this.i18nFormat && this.i18nFormat.parse) {\n        res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n          resolved: resolved\n        });\n      } else if (!options.skipInterpolation) {\n        if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n          interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n        }));\n        var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n        var nestBef;\n\n        if (skipOnVariables) {\n          var nb = res.match(this.interpolator.nestingRegexp);\n          nestBef = nb && nb.length;\n        }\n\n        var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n        if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n        res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n        if (skipOnVariables) {\n          var na = res.match(this.interpolator.nestingRegexp);\n          var nestAft = na && na.length;\n          if (nestBef < nestAft) options.nest = false;\n        }\n\n        if (options.nest !== false) res = this.interpolator.nest(res, function () {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n\n          if (lastKey && lastKey[0] === args[0] && !options.context) {\n            _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n            return null;\n          }\n\n          return _this3.translate.apply(_this3, args.concat([key]));\n        }, options);\n        if (options.interpolation) this.interpolator.reset();\n      }\n\n      var postProcess = options.postProcess || this.options.postProcess;\n      var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n      if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n        res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n          i18nResolved: resolved\n        }, options) : options, this);\n      }\n\n      return res;\n    }\n  }, {\n    key: \"resolve\",\n    value: function resolve(keys) {\n      var _this4 = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var found;\n      var usedKey;\n      var exactUsedKey;\n      var usedLng;\n      var usedNS;\n      if (typeof keys === 'string') keys = [keys];\n      keys.forEach(function (k) {\n        if (_this4.isValidLookup(found)) return;\n\n        var extracted = _this4.extractFromKey(k, options);\n\n        var key = extracted.key;\n        usedKey = key;\n        var namespaces = extracted.namespaces;\n        if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n        var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n        var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n        var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n        namespaces.forEach(function (ns) {\n          if (_this4.isValidLookup(found)) return;\n          usedNS = ns;\n\n          if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n            checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n            _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n          }\n\n          codes.forEach(function (code) {\n            if (_this4.isValidLookup(found)) return;\n            usedLng = code;\n            var finalKeys = [key];\n\n            if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n              _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n            } else {\n              var pluralSuffix;\n              if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n              var zeroSuffix = '_zero';\n\n              if (needsPluralHandling) {\n                finalKeys.push(key + pluralSuffix);\n\n                if (needsZeroSuffixLookup) {\n                  finalKeys.push(key + zeroSuffix);\n                }\n              }\n\n              if (needsContextHandling) {\n                var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n                finalKeys.push(contextKey);\n\n                if (needsPluralHandling) {\n                  finalKeys.push(contextKey + pluralSuffix);\n\n                  if (needsZeroSuffixLookup) {\n                    finalKeys.push(contextKey + zeroSuffix);\n                  }\n                }\n              }\n            }\n\n            var possibleKey;\n\n            while (possibleKey = finalKeys.pop()) {\n              if (!_this4.isValidLookup(found)) {\n                exactUsedKey = possibleKey;\n                found = _this4.getResource(code, ns, possibleKey, options);\n              }\n            }\n          });\n        });\n      });\n      return {\n        res: found,\n        usedKey: usedKey,\n        exactUsedKey: exactUsedKey,\n        usedLng: usedLng,\n        usedNS: usedNS\n      };\n    }\n  }, {\n    key: \"isValidLookup\",\n    value: function isValidLookup(res) {\n      return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(code, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n      return this.resourceStore.getResource(code, ns, key, options);\n    }\n  }], [{\n    key: \"hasDefaultValue\",\n    value: function hasDefaultValue(options) {\n      var prefix = 'defaultValue';\n\n      for (var option in options) {\n        if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n          return true;\n        }\n      }\n\n      return false;\n    }\n  }]);\n\n  return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n  function LanguageUtil(options) {\n    _classCallCheck(this, LanguageUtil);\n\n    this.options = options;\n    this.supportedLngs = this.options.supportedLngs || false;\n    this.logger = baseLogger.create('languageUtils');\n  }\n\n  _createClass(LanguageUtil, [{\n    key: \"getScriptPartFromCode\",\n    value: function getScriptPartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return null;\n      var p = code.split('-');\n      if (p.length === 2) return null;\n      p.pop();\n      if (p[p.length - 1].toLowerCase() === 'x') return null;\n      return this.formatLanguageCode(p.join('-'));\n    }\n  }, {\n    key: \"getLanguagePartFromCode\",\n    value: function getLanguagePartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return code;\n      var p = code.split('-');\n      return this.formatLanguageCode(p[0]);\n    }\n  }, {\n    key: \"formatLanguageCode\",\n    value: function formatLanguageCode(code) {\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n        var p = code.split('-');\n\n        if (this.options.lowerCaseLng) {\n          p = p.map(function (part) {\n            return part.toLowerCase();\n          });\n        } else if (p.length === 2) {\n          p[0] = p[0].toLowerCase();\n          p[1] = p[1].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n        } else if (p.length === 3) {\n          p[0] = p[0].toLowerCase();\n          if (p[1].length === 2) p[1] = p[1].toUpperCase();\n          if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n          if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n        }\n\n        return p.join('-');\n      }\n\n      return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n    }\n  }, {\n    key: \"isSupportedCode\",\n    value: function isSupportedCode(code) {\n      if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n        code = this.getLanguagePartFromCode(code);\n      }\n\n      return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n    }\n  }, {\n    key: \"getBestMatchFromCodes\",\n    value: function getBestMatchFromCodes(codes) {\n      var _this = this;\n\n      if (!codes) return null;\n      var found;\n      codes.forEach(function (code) {\n        if (found) return;\n\n        var cleanedLng = _this.formatLanguageCode(code);\n\n        if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n      });\n\n      if (!found && this.options.supportedLngs) {\n        codes.forEach(function (code) {\n          if (found) return;\n\n          var lngOnly = _this.getLanguagePartFromCode(code);\n\n          if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n          found = _this.options.supportedLngs.find(function (supportedLng) {\n            if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n          });\n        });\n      }\n\n      if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n      return found;\n    }\n  }, {\n    key: \"getFallbackCodes\",\n    value: function getFallbackCodes(fallbacks, code) {\n      if (!fallbacks) return [];\n      if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n      if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n      if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n      if (!code) return fallbacks[\"default\"] || [];\n      var found = fallbacks[code];\n      if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n      if (!found) found = fallbacks[this.formatLanguageCode(code)];\n      if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n      if (!found) found = fallbacks[\"default\"];\n      return found || [];\n    }\n  }, {\n    key: \"toResolveHierarchy\",\n    value: function toResolveHierarchy(code, fallbackCode) {\n      var _this2 = this;\n\n      var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n      var codes = [];\n\n      var addCode = function addCode(c) {\n        if (!c) return;\n\n        if (_this2.isSupportedCode(c)) {\n          codes.push(c);\n        } else {\n          _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n        }\n      };\n\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n        if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n        if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n      } else if (typeof code === 'string') {\n        addCode(this.formatLanguageCode(code));\n      }\n\n      fallbackCodes.forEach(function (fc) {\n        if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n      });\n      return codes;\n    }\n  }]);\n\n  return LanguageUtil;\n}();\n\nvar sets = [{\n  lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n  nr: [1, 2],\n  fc: 1\n}, {\n  lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n  nr: [1, 2],\n  fc: 2\n}, {\n  lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n  nr: [1],\n  fc: 3\n}, {\n  lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n  nr: [1, 2, 5],\n  fc: 4\n}, {\n  lngs: ['ar'],\n  nr: [0, 1, 2, 3, 11, 100],\n  fc: 5\n}, {\n  lngs: ['cs', 'sk'],\n  nr: [1, 2, 5],\n  fc: 6\n}, {\n  lngs: ['csb', 'pl'],\n  nr: [1, 2, 5],\n  fc: 7\n}, {\n  lngs: ['cy'],\n  nr: [1, 2, 3, 8],\n  fc: 8\n}, {\n  lngs: ['fr'],\n  nr: [1, 2],\n  fc: 9\n}, {\n  lngs: ['ga'],\n  nr: [1, 2, 3, 7, 11],\n  fc: 10\n}, {\n  lngs: ['gd'],\n  nr: [1, 2, 3, 20],\n  fc: 11\n}, {\n  lngs: ['is'],\n  nr: [1, 2],\n  fc: 12\n}, {\n  lngs: ['jv'],\n  nr: [0, 1],\n  fc: 13\n}, {\n  lngs: ['kw'],\n  nr: [1, 2, 3, 4],\n  fc: 14\n}, {\n  lngs: ['lt'],\n  nr: [1, 2, 10],\n  fc: 15\n}, {\n  lngs: ['lv'],\n  nr: [1, 2, 0],\n  fc: 16\n}, {\n  lngs: ['mk'],\n  nr: [1, 2],\n  fc: 17\n}, {\n  lngs: ['mnk'],\n  nr: [0, 1, 2],\n  fc: 18\n}, {\n  lngs: ['mt'],\n  nr: [1, 2, 11, 20],\n  fc: 19\n}, {\n  lngs: ['or'],\n  nr: [2, 1],\n  fc: 2\n}, {\n  lngs: ['ro'],\n  nr: [1, 2, 20],\n  fc: 20\n}, {\n  lngs: ['sl'],\n  nr: [5, 1, 2, 3],\n  fc: 21\n}, {\n  lngs: ['he', 'iw'],\n  nr: [1, 2, 20, 21],\n  fc: 22\n}];\nvar _rulesPluralsTypes = {\n  1: function _(n) {\n    return Number(n > 1);\n  },\n  2: function _(n) {\n    return Number(n != 1);\n  },\n  3: function _(n) {\n    return 0;\n  },\n  4: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  5: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n  },\n  6: function _(n) {\n    return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n  },\n  7: function _(n) {\n    return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  8: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n  },\n  9: function _(n) {\n    return Number(n >= 2);\n  },\n  10: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n  },\n  11: function _(n) {\n    return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n  },\n  12: function _(n) {\n    return Number(n % 10 != 1 || n % 100 == 11);\n  },\n  13: function _(n) {\n    return Number(n !== 0);\n  },\n  14: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n  },\n  15: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  16: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n  },\n  17: function _(n) {\n    return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n  },\n  18: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n  },\n  19: function _(n) {\n    return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n  },\n  20: function _(n) {\n    return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n  },\n  21: function _(n) {\n    return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n  },\n  22: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n  }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n  zero: 0,\n  one: 1,\n  two: 2,\n  few: 3,\n  many: 4,\n  other: 5\n};\n\nfunction createRules() {\n  var rules = {};\n  sets.forEach(function (set) {\n    set.lngs.forEach(function (l) {\n      rules[l] = {\n        numbers: set.nr,\n        plurals: _rulesPluralsTypes[set.fc]\n      };\n    });\n  });\n  return rules;\n}\n\nvar PluralResolver = function () {\n  function PluralResolver(languageUtils) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, PluralResolver);\n\n    this.languageUtils = languageUtils;\n    this.options = options;\n    this.logger = baseLogger.create('pluralResolver');\n\n    if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n      this.options.compatibilityJSON = 'v3';\n      this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n    }\n\n    this.rules = createRules();\n  }\n\n  _createClass(PluralResolver, [{\n    key: \"addRule\",\n    value: function addRule(lng, obj) {\n      this.rules[lng] = obj;\n    }\n  }, {\n    key: \"getRule\",\n    value: function getRule(code) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      if (this.shouldUseIntlApi()) {\n        try {\n          return new Intl.PluralRules(code, {\n            type: options.ordinal ? 'ordinal' : 'cardinal'\n          });\n        } catch (_unused) {\n          return;\n        }\n      }\n\n      return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n    }\n  }, {\n    key: \"needsPlural\",\n    value: function needsPlural(code) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var rule = this.getRule(code, options);\n\n      if (this.shouldUseIntlApi()) {\n        return rule && rule.resolvedOptions().pluralCategories.length > 1;\n      }\n\n      return rule && rule.numbers.length > 1;\n    }\n  }, {\n    key: \"getPluralFormsOfKey\",\n    value: function getPluralFormsOfKey(code, key) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      return this.getSuffixes(code, options).map(function (suffix) {\n        return \"\".concat(key).concat(suffix);\n      });\n    }\n  }, {\n    key: \"getSuffixes\",\n    value: function getSuffixes(code) {\n      var _this = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var rule = this.getRule(code, options);\n\n      if (!rule) {\n        return [];\n      }\n\n      if (this.shouldUseIntlApi()) {\n        return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n          return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n        }).map(function (pluralCategory) {\n          return \"\".concat(_this.options.prepend).concat(pluralCategory);\n        });\n      }\n\n      return rule.numbers.map(function (number) {\n        return _this.getSuffix(code, number, options);\n      });\n    }\n  }, {\n    key: \"getSuffix\",\n    value: function getSuffix(code, count) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var rule = this.getRule(code, options);\n\n      if (rule) {\n        if (this.shouldUseIntlApi()) {\n          return \"\".concat(this.options.prepend).concat(rule.select(count));\n        }\n\n        return this.getSuffixRetroCompatible(rule, count);\n      }\n\n      this.logger.warn(\"no plural rule found for: \".concat(code));\n      return '';\n    }\n  }, {\n    key: \"getSuffixRetroCompatible\",\n    value: function getSuffixRetroCompatible(rule, count) {\n      var _this2 = this;\n\n      var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n      var suffix = rule.numbers[idx];\n\n      if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n        if (suffix === 2) {\n          suffix = 'plural';\n        } else if (suffix === 1) {\n          suffix = '';\n        }\n      }\n\n      var returnSuffix = function returnSuffix() {\n        return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n      };\n\n      if (this.options.compatibilityJSON === 'v1') {\n        if (suffix === 1) return '';\n        if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n        return returnSuffix();\n      } else if (this.options.compatibilityJSON === 'v2') {\n        return returnSuffix();\n      } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n        return returnSuffix();\n      }\n\n      return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n    }\n  }, {\n    key: \"shouldUseIntlApi\",\n    value: function shouldUseIntlApi() {\n      return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n    }\n  }]);\n\n  return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n  function Interpolator() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, Interpolator);\n\n    this.logger = baseLogger.create('interpolator');\n    this.options = options;\n\n    this.format = options.interpolation && options.interpolation.format || function (value) {\n      return value;\n    };\n\n    this.init(options);\n  }\n\n  _createClass(Interpolator, [{\n    key: \"init\",\n    value: function init() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (!options.interpolation) options.interpolation = {\n        escapeValue: true\n      };\n      var iOpts = options.interpolation;\n      this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n      this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n      this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n      this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n      this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n      this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n      this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n      this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n      this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n      this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n      this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n      this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n      this.resetRegExp();\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      if (this.options) this.init(this.options);\n    }\n  }, {\n    key: \"resetRegExp\",\n    value: function resetRegExp() {\n      var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n      this.regexp = new RegExp(regexpStr, 'g');\n      var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n      this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n      var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n      this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n    }\n  }, {\n    key: \"interpolate\",\n    value: function interpolate(str, data, lng, options) {\n      var _this = this;\n\n      var match;\n      var value;\n      var replaces;\n      var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n      function regexSafe(val) {\n        return val.replace(/\\$/g, '$$$$');\n      }\n\n      var handleFormat = function handleFormat(key) {\n        if (key.indexOf(_this.formatSeparator) < 0) {\n          var path = getPathWithDefaults(data, defaultData, key);\n          return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n            interpolationkey: key\n          })) : path;\n        }\n\n        var p = key.split(_this.formatSeparator);\n        var k = p.shift().trim();\n        var f = p.join(_this.formatSeparator).trim();\n        return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n          interpolationkey: k\n        }));\n      };\n\n      this.resetRegExp();\n      var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n      var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n      var todos = [{\n        regex: this.regexpUnescape,\n        safeValue: function safeValue(val) {\n          return regexSafe(val);\n        }\n      }, {\n        regex: this.regexp,\n        safeValue: function safeValue(val) {\n          return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n        }\n      }];\n      todos.forEach(function (todo) {\n        replaces = 0;\n\n        while (match = todo.regex.exec(str)) {\n          var matchedVar = match[1].trim();\n          value = handleFormat(matchedVar);\n\n          if (value === undefined) {\n            if (typeof missingInterpolationHandler === 'function') {\n              var temp = missingInterpolationHandler(str, match, options);\n              value = typeof temp === 'string' ? temp : '';\n            } else if (options && options.hasOwnProperty(matchedVar)) {\n              value = '';\n            } else if (skipOnVariables) {\n              value = match[0];\n              continue;\n            } else {\n              _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n              value = '';\n            }\n          } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n            value = makeString(value);\n          }\n\n          var safeValue = todo.safeValue(value);\n          str = str.replace(match[0], safeValue);\n\n          if (skipOnVariables) {\n            todo.regex.lastIndex += safeValue.length;\n            todo.regex.lastIndex -= match[0].length;\n          } else {\n            todo.regex.lastIndex = 0;\n          }\n\n          replaces++;\n\n          if (replaces >= _this.maxReplaces) {\n            break;\n          }\n        }\n      });\n      return str;\n    }\n  }, {\n    key: \"nest\",\n    value: function nest(str, fc) {\n      var _this2 = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var match;\n      var value;\n\n      var clonedOptions = _objectSpread$3({}, options);\n\n      clonedOptions.applyPostProcessor = false;\n      delete clonedOptions.defaultValue;\n\n      function handleHasOptions(key, inheritedOptions) {\n        var sep = this.nestingOptionsSeparator;\n        if (key.indexOf(sep) < 0) return key;\n        var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n        var optionsString = \"{\".concat(c[1]);\n        key = c[0];\n        optionsString = this.interpolate(optionsString, clonedOptions);\n        optionsString = optionsString.replace(/'/g, '\"');\n\n        try {\n          clonedOptions = JSON.parse(optionsString);\n          if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n        } catch (e) {\n          this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n          return \"\".concat(key).concat(sep).concat(optionsString);\n        }\n\n        delete clonedOptions.defaultValue;\n        return key;\n      }\n\n      while (match = this.nestingRegexp.exec(str)) {\n        var formatters = [];\n        var doReduce = false;\n\n        if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n          var r = match[1].split(this.formatSeparator).map(function (elem) {\n            return elem.trim();\n          });\n          match[1] = r.shift();\n          formatters = r;\n          doReduce = true;\n        }\n\n        value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n        if (value && match[0] === str && typeof value !== 'string') return value;\n        if (typeof value !== 'string') value = makeString(value);\n\n        if (!value) {\n          this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n          value = '';\n        }\n\n        if (doReduce) {\n          value = formatters.reduce(function (v, f) {\n            return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n              interpolationkey: match[1].trim()\n            }));\n          }, value.trim());\n        }\n\n        str = str.replace(match[0], value);\n        this.regexp.lastIndex = 0;\n      }\n\n      return str;\n    }\n  }]);\n\n  return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n  var formatName = formatStr.toLowerCase().trim();\n  var formatOptions = {};\n\n  if (formatStr.indexOf('(') > -1) {\n    var p = formatStr.split('(');\n    formatName = p[0].toLowerCase().trim();\n    var optStr = p[1].substring(0, p[1].length - 1);\n\n    if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n    } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.range) formatOptions.range = optStr.trim();\n    } else {\n      var opts = optStr.split(';');\n      opts.forEach(function (opt) {\n        if (!opt) return;\n\n        var _opt$split = opt.split(':'),\n            _opt$split2 = _toArray(_opt$split),\n            key = _opt$split2[0],\n            rest = _opt$split2.slice(1);\n\n        var val = rest.join(':');\n        if (val.trim() === 'false') formatOptions[key.trim()] = false;\n        if (val.trim() === 'true') formatOptions[key.trim()] = true;\n        if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);\n        if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();\n      });\n    }\n  }\n\n  return {\n    formatName: formatName,\n    formatOptions: formatOptions\n  };\n}\n\nvar Formatter = function () {\n  function Formatter() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, Formatter);\n\n    this.logger = baseLogger.create('formatter');\n    this.options = options;\n    this.formats = {\n      number: function number(val, lng, options) {\n        return new Intl.NumberFormat(lng, options).format(val);\n      },\n      currency: function currency(val, lng, options) {\n        return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n          style: 'currency'\n        })).format(val);\n      },\n      datetime: function datetime(val, lng, options) {\n        return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n      },\n      relativetime: function relativetime(val, lng, options) {\n        return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n      },\n      list: function list(val, lng, options) {\n        return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n      }\n    };\n    this.init(options);\n  }\n\n  _createClass(Formatter, [{\n    key: \"init\",\n    value: function init(services) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n      var iOpts = options.interpolation;\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n    }\n  }, {\n    key: \"add\",\n    value: function add(name, fc) {\n      this.formats[name.toLowerCase().trim()] = fc;\n    }\n  }, {\n    key: \"format\",\n    value: function format(value, _format, lng, options) {\n      var _this = this;\n\n      var formats = _format.split(this.formatSeparator);\n\n      var result = formats.reduce(function (mem, f) {\n        var _parseFormatStr = parseFormatStr(f),\n            formatName = _parseFormatStr.formatName,\n            formatOptions = _parseFormatStr.formatOptions;\n\n        if (_this.formats[formatName]) {\n          var formatted = mem;\n\n          try {\n            var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n            var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n            formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n          } catch (error) {\n            _this.logger.warn(error);\n          }\n\n          return formatted;\n        } else {\n          _this.logger.warn(\"there was no format function for \".concat(formatName));\n        }\n\n        return mem;\n      }, value);\n      return result;\n    }\n  }]);\n\n  return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction remove(arr, what) {\n  var found = arr.indexOf(what);\n\n  while (found !== -1) {\n    arr.splice(found, 1);\n    found = arr.indexOf(what);\n  }\n}\n\nvar Connector = function (_EventEmitter) {\n  _inherits(Connector, _EventEmitter);\n\n  var _super = _createSuper$2(Connector);\n\n  function Connector(backend, store, services) {\n    var _this;\n\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n    _classCallCheck(this, Connector);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    _this.backend = backend;\n    _this.store = store;\n    _this.services = services;\n    _this.languageUtils = services.languageUtils;\n    _this.options = options;\n    _this.logger = baseLogger.create('backendConnector');\n    _this.state = {};\n    _this.queue = [];\n\n    if (_this.backend && _this.backend.init) {\n      _this.backend.init(services, options.backend, options);\n    }\n\n    return _this;\n  }\n\n  _createClass(Connector, [{\n    key: \"queueLoad\",\n    value: function queueLoad(languages, namespaces, options, callback) {\n      var _this2 = this;\n\n      var toLoad = [];\n      var pending = [];\n      var toLoadLanguages = [];\n      var toLoadNamespaces = [];\n      languages.forEach(function (lng) {\n        var hasAllNamespaces = true;\n        namespaces.forEach(function (ns) {\n          var name = \"\".concat(lng, \"|\").concat(ns);\n\n          if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n            _this2.state[name] = 2;\n          } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n            if (pending.indexOf(name) < 0) pending.push(name);\n          } else {\n            _this2.state[name] = 1;\n            hasAllNamespaces = false;\n            if (pending.indexOf(name) < 0) pending.push(name);\n            if (toLoad.indexOf(name) < 0) toLoad.push(name);\n            if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n          }\n        });\n        if (!hasAllNamespaces) toLoadLanguages.push(lng);\n      });\n\n      if (toLoad.length || pending.length) {\n        this.queue.push({\n          pending: pending,\n          loaded: {},\n          errors: [],\n          callback: callback\n        });\n      }\n\n      return {\n        toLoad: toLoad,\n        pending: pending,\n        toLoadLanguages: toLoadLanguages,\n        toLoadNamespaces: toLoadNamespaces\n      };\n    }\n  }, {\n    key: \"loaded\",\n    value: function loaded(name, err, data) {\n      var s = name.split('|');\n      var lng = s[0];\n      var ns = s[1];\n      if (err) this.emit('failedLoading', lng, ns, err);\n\n      if (data) {\n        this.store.addResourceBundle(lng, ns, data);\n      }\n\n      this.state[name] = err ? -1 : 2;\n      var loaded = {};\n      this.queue.forEach(function (q) {\n        pushPath(q.loaded, [lng], ns);\n        remove(q.pending, name);\n        if (err) q.errors.push(err);\n\n        if (q.pending.length === 0 && !q.done) {\n          Object.keys(q.loaded).forEach(function (l) {\n            if (!loaded[l]) loaded[l] = [];\n\n            if (q.loaded[l].length) {\n              q.loaded[l].forEach(function (ns) {\n                if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n              });\n            }\n          });\n          q.done = true;\n\n          if (q.errors.length) {\n            q.callback(q.errors);\n          } else {\n            q.callback();\n          }\n        }\n      });\n      this.emit('loaded', loaded);\n      this.queue = this.queue.filter(function (q) {\n        return !q.done;\n      });\n    }\n  }, {\n    key: \"read\",\n    value: function read(lng, ns, fcName) {\n      var _this3 = this;\n\n      var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n      var callback = arguments.length > 5 ? arguments[5] : undefined;\n      if (!lng.length) return callback(null, {});\n      return this.backend[fcName](lng, ns, function (err, data) {\n        if (err && data && tried < 5) {\n          setTimeout(function () {\n            _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n          }, wait);\n          return;\n        }\n\n        callback(err, data);\n      });\n    }\n  }, {\n    key: \"prepareLoading\",\n    value: function prepareLoading(languages, namespaces) {\n      var _this4 = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n      if (!this.backend) {\n        this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n        return callback && callback();\n      }\n\n      if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n      if (!toLoad.toLoad.length) {\n        if (!toLoad.pending.length) callback();\n        return null;\n      }\n\n      toLoad.toLoad.forEach(function (name) {\n        _this4.loadOne(name);\n      });\n    }\n  }, {\n    key: \"load\",\n    value: function load(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {}, callback);\n    }\n  }, {\n    key: \"reload\",\n    value: function reload(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {\n        reload: true\n      }, callback);\n    }\n  }, {\n    key: \"loadOne\",\n    value: function loadOne(name) {\n      var _this5 = this;\n\n      var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var s = name.split('|');\n      var lng = s[0];\n      var ns = s[1];\n      this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n        if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n        if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n        _this5.loaded(name, err, data);\n      });\n    }\n  }, {\n    key: \"saveMissing\",\n    value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n      if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n        this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n        return;\n      }\n\n      if (key === undefined || key === null || key === '') return;\n\n      if (this.backend && this.backend.create) {\n        this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n          isUpdate: isUpdate\n        }));\n      }\n\n      if (!languages || !languages[0]) return;\n      this.store.addResource(languages[0], namespace, key, fallbackValue);\n    }\n  }]);\n\n  return Connector;\n}(EventEmitter);\n\nfunction get() {\n  return {\n    debug: false,\n    initImmediate: true,\n    ns: ['translation'],\n    defaultNS: ['translation'],\n    fallbackLng: ['dev'],\n    fallbackNS: false,\n    supportedLngs: false,\n    nonExplicitSupportedLngs: false,\n    load: 'all',\n    preload: false,\n    simplifyPluralSuffix: true,\n    keySeparator: '.',\n    nsSeparator: ':',\n    pluralSeparator: '_',\n    contextSeparator: '_',\n    partialBundledLanguages: false,\n    saveMissing: false,\n    updateMissing: false,\n    saveMissingTo: 'fallback',\n    saveMissingPlurals: true,\n    missingKeyHandler: false,\n    missingInterpolationHandler: false,\n    postProcess: false,\n    postProcessPassResolved: false,\n    returnNull: true,\n    returnEmptyString: true,\n    returnObjects: false,\n    joinArrays: false,\n    returnedObjectHandler: false,\n    parseMissingKeyHandler: false,\n    appendNamespaceToMissingKey: false,\n    appendNamespaceToCIMode: false,\n    overloadTranslationOptionHandler: function handle(args) {\n      var ret = {};\n      if (_typeof(args[1]) === 'object') ret = args[1];\n      if (typeof args[1] === 'string') ret.defaultValue = args[1];\n      if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n      if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n        var options = args[3] || args[2];\n        Object.keys(options).forEach(function (key) {\n          ret[key] = options[key];\n        });\n      }\n\n      return ret;\n    },\n    interpolation: {\n      escapeValue: true,\n      format: function format(value, _format, lng, options) {\n        return value;\n      },\n      prefix: '{{',\n      suffix: '}}',\n      formatSeparator: ',',\n      unescapePrefix: '-',\n      nestingPrefix: '$t(',\n      nestingSuffix: ')',\n      nestingOptionsSeparator: ',',\n      maxReplaces: 1000,\n      skipOnVariables: true\n    }\n  };\n}\nfunction transformOptions(options) {\n  if (typeof options.ns === 'string') options.ns = [options.ns];\n  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n  if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n    options.supportedLngs = options.supportedLngs.concat(['cimode']);\n  }\n\n  return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n  var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n  mems.forEach(function (mem) {\n    if (typeof inst[mem] === 'function') {\n      inst[mem] = inst[mem].bind(inst);\n    }\n  });\n}\n\nvar I18n = function (_EventEmitter) {\n  _inherits(I18n, _EventEmitter);\n\n  var _super = _createSuper$3(I18n);\n\n  function I18n() {\n    var _this;\n\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n    _classCallCheck(this, I18n);\n\n    _this = _super.call(this);\n\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n\n    _this.options = transformOptions(options);\n    _this.services = {};\n    _this.logger = baseLogger;\n    _this.modules = {\n      external: []\n    };\n    bindMemberFunctions(_assertThisInitialized(_this));\n\n    if (callback && !_this.isInitialized && !options.isClone) {\n      if (!_this.options.initImmediate) {\n        _this.init(options, callback);\n\n        return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n      }\n\n      setTimeout(function () {\n        _this.init(options, callback);\n      }, 0);\n    }\n\n    return _this;\n  }\n\n  _createClass(I18n, [{\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n\n      if (!options.defaultNS && options.ns) {\n        if (typeof options.ns === 'string') {\n          options.defaultNS = options.ns;\n        } else if (options.ns.indexOf('translation') < 0) {\n          options.defaultNS = options.ns[0];\n        }\n      }\n\n      var defOpts = get();\n      this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n      if (this.options.compatibilityAPI !== 'v1') {\n        this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n      }\n\n      if (options.keySeparator !== undefined) {\n        this.options.userDefinedKeySeparator = options.keySeparator;\n      }\n\n      if (options.nsSeparator !== undefined) {\n        this.options.userDefinedNsSeparator = options.nsSeparator;\n      }\n\n      function createClassOnDemand(ClassOrObject) {\n        if (!ClassOrObject) return null;\n        if (typeof ClassOrObject === 'function') return new ClassOrObject();\n        return ClassOrObject;\n      }\n\n      if (!this.options.isClone) {\n        if (this.modules.logger) {\n          baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n        } else {\n          baseLogger.init(null, this.options);\n        }\n\n        var formatter;\n\n        if (this.modules.formatter) {\n          formatter = this.modules.formatter;\n        } else if (typeof Intl !== 'undefined') {\n          formatter = Formatter;\n        }\n\n        var lu = new LanguageUtil(this.options);\n        this.store = new ResourceStore(this.options.resources, this.options);\n        var s = this.services;\n        s.logger = baseLogger;\n        s.resourceStore = this.store;\n        s.languageUtils = lu;\n        s.pluralResolver = new PluralResolver(lu, {\n          prepend: this.options.pluralSeparator,\n          compatibilityJSON: this.options.compatibilityJSON,\n          simplifyPluralSuffix: this.options.simplifyPluralSuffix\n        });\n\n        if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n          s.formatter = createClassOnDemand(formatter);\n          s.formatter.init(s, this.options);\n          this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n        }\n\n        s.interpolator = new Interpolator(this.options);\n        s.utils = {\n          hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n        };\n        s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n        s.backendConnector.on('*', function (event) {\n          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n            args[_key - 1] = arguments[_key];\n          }\n\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n\n        if (this.modules.languageDetector) {\n          s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n          s.languageDetector.init(s, this.options.detection, this.options);\n        }\n\n        if (this.modules.i18nFormat) {\n          s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n          if (s.i18nFormat.init) s.i18nFormat.init(this);\n        }\n\n        this.translator = new Translator(this.services, this.options);\n        this.translator.on('*', function (event) {\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n        this.modules.external.forEach(function (m) {\n          if (m.init) m.init(_this2);\n        });\n      }\n\n      this.format = this.options.interpolation.format;\n      if (!callback) callback = noop;\n\n      if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n        var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n        if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n      }\n\n      if (!this.services.languageDetector && !this.options.lng) {\n        this.logger.warn('init: no languageDetector is used and no lng is defined');\n      }\n\n      var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n      storeApi.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store;\n\n          return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n        };\n      });\n      var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n      storeApiChained.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store2;\n\n          (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n          return _this2;\n        };\n      });\n      var deferred = defer();\n\n      var load = function load() {\n        var finish = function finish(err, t) {\n          if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n          _this2.isInitialized = true;\n          if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n          _this2.emit('initialized', _this2.options);\n\n          deferred.resolve(t);\n          callback(err, t);\n        };\n\n        if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n        _this2.changeLanguage(_this2.options.lng, finish);\n      };\n\n      if (this.options.resources || !this.options.initImmediate) {\n        load();\n      } else {\n        setTimeout(load, 0);\n      }\n\n      return deferred;\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(language) {\n      var _this3 = this;\n\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n      var usedCallback = callback;\n      var usedLng = typeof language === 'string' ? language : this.language;\n      if (typeof language === 'function') usedCallback = language;\n\n      if (!this.options.resources || this.options.partialBundledLanguages) {\n        if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n        var toLoad = [];\n\n        var append = function append(lng) {\n          if (!lng) return;\n\n          var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n          lngs.forEach(function (l) {\n            if (toLoad.indexOf(l) < 0) toLoad.push(l);\n          });\n        };\n\n        if (!usedLng) {\n          var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n          fallbacks.forEach(function (l) {\n            return append(l);\n          });\n        } else {\n          append(usedLng);\n        }\n\n        if (this.options.preload) {\n          this.options.preload.forEach(function (l) {\n            return append(l);\n          });\n        }\n\n        this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n      } else {\n        usedCallback(null);\n      }\n    }\n  }, {\n    key: \"reloadResources\",\n    value: function reloadResources(lngs, ns, callback) {\n      var deferred = defer();\n      if (!lngs) lngs = this.languages;\n      if (!ns) ns = this.options.ns;\n      if (!callback) callback = noop;\n      this.services.backendConnector.reload(lngs, ns, function (err) {\n        deferred.resolve();\n        callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"use\",\n    value: function use(module) {\n      if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n      if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n      if (module.type === 'backend') {\n        this.modules.backend = module;\n      }\n\n      if (module.type === 'logger' || module.log && module.warn && module.error) {\n        this.modules.logger = module;\n      }\n\n      if (module.type === 'languageDetector') {\n        this.modules.languageDetector = module;\n      }\n\n      if (module.type === 'i18nFormat') {\n        this.modules.i18nFormat = module;\n      }\n\n      if (module.type === 'postProcessor') {\n        postProcessor.addPostProcessor(module);\n      }\n\n      if (module.type === 'formatter') {\n        this.modules.formatter = module;\n      }\n\n      if (module.type === '3rdParty') {\n        this.modules.external.push(module);\n      }\n\n      return this;\n    }\n  }, {\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng, callback) {\n      var _this4 = this;\n\n      this.isLanguageChangingTo = lng;\n      var deferred = defer();\n      this.emit('languageChanging', lng);\n\n      var setLngProps = function setLngProps(l) {\n        _this4.language = l;\n        _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n        _this4.resolvedLanguage = undefined;\n        if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n        for (var li = 0; li < _this4.languages.length; li++) {\n          var lngInLngs = _this4.languages[li];\n          if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n          if (_this4.store.hasLanguageSomeTranslations(lngInLngs)) {\n            _this4.resolvedLanguage = lngInLngs;\n            break;\n          }\n        }\n      };\n\n      var done = function done(err, l) {\n        if (l) {\n          setLngProps(l);\n\n          _this4.translator.changeLanguage(l);\n\n          _this4.isLanguageChangingTo = undefined;\n\n          _this4.emit('languageChanged', l);\n\n          _this4.logger.log('languageChanged', l);\n        } else {\n          _this4.isLanguageChangingTo = undefined;\n        }\n\n        deferred.resolve(function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n        if (callback) callback(err, function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n      };\n\n      var setLng = function setLng(lngs) {\n        if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n        var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n        if (l) {\n          if (!_this4.language) {\n            setLngProps(l);\n          }\n\n          if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n          if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n        }\n\n        _this4.loadResources(l, function (err) {\n          done(err, l);\n        });\n      };\n\n      if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n        setLng(this.services.languageDetector.detect());\n      } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n        this.services.languageDetector.detect(setLng);\n      } else {\n        setLng(lng);\n      }\n\n      return deferred;\n    }\n  }, {\n    key: \"getFixedT\",\n    value: function getFixedT(lng, ns, keyPrefix) {\n      var _this5 = this;\n\n      var fixedT = function fixedT(key, opts) {\n        var options;\n\n        if (_typeof(opts) !== 'object') {\n          for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n            rest[_key3 - 2] = arguments[_key3];\n          }\n\n          options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n        } else {\n          options = _objectSpread$6({}, opts);\n        }\n\n        options.lng = options.lng || fixedT.lng;\n        options.lngs = options.lngs || fixedT.lngs;\n        options.ns = options.ns || fixedT.ns;\n        var keySeparator = _this5.options.keySeparator || '.';\n        var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n        return _this5.t(resultKey, options);\n      };\n\n      if (typeof lng === 'string') {\n        fixedT.lng = lng;\n      } else {\n        fixedT.lngs = lng;\n      }\n\n      fixedT.ns = ns;\n      fixedT.keyPrefix = keyPrefix;\n      return fixedT;\n    }\n  }, {\n    key: \"t\",\n    value: function t() {\n      var _this$translator;\n\n      return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n    }\n  }, {\n    key: \"exists\",\n    value: function exists() {\n      var _this$translator2;\n\n      return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n    }\n  }, {\n    key: \"setDefaultNamespace\",\n    value: function setDefaultNamespace(ns) {\n      this.options.defaultNS = ns;\n    }\n  }, {\n    key: \"hasLoadedNamespace\",\n    value: function hasLoadedNamespace(ns) {\n      var _this6 = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      if (!this.isInitialized) {\n        this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n        return false;\n      }\n\n      if (!this.languages || !this.languages.length) {\n        this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n        return false;\n      }\n\n      var lng = this.resolvedLanguage || this.languages[0];\n      var fallbackLng = this.options ? this.options.fallbackLng : false;\n      var lastLng = this.languages[this.languages.length - 1];\n      if (lng.toLowerCase() === 'cimode') return true;\n\n      var loadNotPending = function loadNotPending(l, n) {\n        var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n        return loadState === -1 || loadState === 2;\n      };\n\n      if (options.precheck) {\n        var preResult = options.precheck(this, loadNotPending);\n        if (preResult !== undefined) return preResult;\n      }\n\n      if (this.hasResourceBundle(lng, ns)) return true;\n      if (!this.services.backendConnector.backend) return true;\n      if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n      return false;\n    }\n  }, {\n    key: \"loadNamespaces\",\n    value: function loadNamespaces(ns, callback) {\n      var _this7 = this;\n\n      var deferred = defer();\n\n      if (!this.options.ns) {\n        callback && callback();\n        return Promise.resolve();\n      }\n\n      if (typeof ns === 'string') ns = [ns];\n      ns.forEach(function (n) {\n        if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n      });\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"loadLanguages\",\n    value: function loadLanguages(lngs, callback) {\n      var deferred = defer();\n      if (typeof lngs === 'string') lngs = [lngs];\n      var preloaded = this.options.preload || [];\n      var newLngs = lngs.filter(function (lng) {\n        return preloaded.indexOf(lng) < 0;\n      });\n\n      if (!newLngs.length) {\n        if (callback) callback();\n        return Promise.resolve();\n      }\n\n      this.options.preload = preloaded.concat(newLngs);\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"dir\",\n    value: function dir(lng) {\n      if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n      if (!lng) return 'rtl';\n      var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n      return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n    }\n  }, {\n    key: \"cloneInstance\",\n    value: function cloneInstance() {\n      var _this8 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n      var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n        isClone: true\n      });\n\n      var clone = new I18n(mergedOptions);\n      var membersToCopy = ['store', 'services', 'language'];\n      membersToCopy.forEach(function (m) {\n        clone[m] = _this8[m];\n      });\n      clone.services = _objectSpread$6({}, this.services);\n      clone.services.utils = {\n        hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n      };\n      clone.translator = new Translator(clone.services, clone.options);\n      clone.translator.on('*', function (event) {\n        for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n          args[_key4 - 1] = arguments[_key4];\n        }\n\n        clone.emit.apply(clone, [event].concat(args));\n      });\n      clone.init(mergedOptions, callback);\n      clone.translator.options = clone.options;\n      clone.translator.backendConnector.services.utils = {\n        hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n      };\n      return clone;\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return {\n        options: this.options,\n        store: this.store,\n        language: this.language,\n        languages: this.languages,\n        resolvedLanguage: this.resolvedLanguage\n      };\n    }\n  }]);\n\n  return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var callback = arguments.length > 1 ? arguments[1] : undefined;\n  return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","var arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n  each.call(slice.call(arguments, 1), function (source) {\n    if (source) {\n      for (var prop in source) {\n        if (obj[prop] === undefined) obj[prop] = source[prop];\n      }\n    }\n  });\n  return obj;\n}\nexport function debounce(func, wait, immediate) {\n  var timeout;\n  return function () {\n    var context = this;\n    var args = arguments;\n\n    var later = function later() {\n      timeout = null;\n      if (!immediate) func.apply(context, args);\n    };\n\n    var callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n    if (callNow) func.apply(context, args);\n  };\n}\n;\n\nfunction getLastOfPath(object, path, Empty) {\n  function cleanKey(key) {\n    return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n  }\n\n  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n  while (stack.length > 1) {\n    if (!object) return {};\n    var key = cleanKey(stack.shift());\n    if (!object[key] && Empty) object[key] = new Empty();\n    object = object[key];\n  }\n\n  if (!object) return {};\n  return {\n    obj: object,\n    k: cleanKey(stack.shift())\n  };\n}\n\nexport function setPath(object, path, newValue) {\n  var _getLastOfPath = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath.obj,\n      k = _getLastOfPath.k;\n\n  obj[k] = newValue;\n}\nexport function pushPath(object, path, newValue, concat) {\n  var _getLastOfPath2 = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath2.obj,\n      k = _getLastOfPath2.k;\n\n  obj[k] = obj[k] || [];\n  if (concat) obj[k] = obj[k].concat(newValue);\n  if (!concat) obj[k].push(newValue);\n}\nexport function getPath(object, path) {\n  var _getLastOfPath3 = getLastOfPath(object, path),\n      obj = _getLastOfPath3.obj,\n      k = _getLastOfPath3.k;\n\n  if (!obj) return undefined;\n  return obj[k];\n}\nvar regexp = new RegExp('{{(.+?)}}', 'g');\n\nfunction makeString(object) {\n  if (object == null) return '';\n  return '' + object;\n}\n\nexport function interpolate(str, data, lng) {\n  var match, value;\n\n  function regexSafe(val) {\n    return val.replace(/\\$/g, '$$$$');\n  }\n\n  while (match = regexp.exec(str)) {\n    value = match[1].trim();\n    if (typeof value !== 'string') value = makeString(value);\n    if (!value) value = '';\n    value = regexSafe(value);\n    str = str.replace(match[0], data[value] || value);\n    regexp.lastIndex = 0;\n  }\n\n  return str;\n}\nexport function isMissingOption(obj, props) {\n  return props.reduce(function (mem, p) {\n    if (mem) return mem;\n\n    if (!obj || !obj[p] || typeof obj[p] !== 'string' || !obj[p].toLowerCase() === p.toLowerCase()) {\n      var err = \"i18next-locize-backend :: got \\\"\".concat(obj[p], \"\\\" in options for \").concat(p, \" which is invalid.\");\n      console.warn(err);\n      return err;\n    }\n\n    return false;\n  }, false);\n}\nexport function optionExist(obj, props) {\n  return !isMissingOption(obj, props);\n}\nexport function defer() {\n  var res;\n  var rej;\n  var promise = new Promise(function (resolve, reject) {\n    res = resolve;\n    rej = reject;\n  });\n  promise.resolve = res;\n  promise.reject = rej;\n  return promise;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\n\nif (typeof fetch === 'function') {\n  if (typeof global !== 'undefined' && global.fetch) {\n    fetchApi = global.fetch;\n  } else if (typeof window !== 'undefined' && window.fetch) {\n    fetchApi = window.fetch;\n  }\n}\n\nvar XmlHttpRequestApi;\n\nif (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object') {\n  if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n    XmlHttpRequestApi = global.XMLHttpRequest;\n  } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n    XmlHttpRequestApi = window.XMLHttpRequest;\n  }\n}\n\nvar ActiveXObjectApi;\n\nif (typeof ActiveXObject === 'function') {\n  if (typeof global !== 'undefined' && global.ActiveXObject) {\n    ActiveXObjectApi = global.ActiveXObject;\n  } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n    ActiveXObjectApi = window.ActiveXObject;\n  }\n}\n\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n  var headers = {};\n\n  if (options.authorize && options.apiKey) {\n    headers.Authorization = options.apiKey;\n  }\n\n  if (payload || options.setContentTypeJSON) {\n    headers['Content-Type'] = 'application/json';\n  }\n\n  fetchApi(url, {\n    method: payload ? 'POST' : 'GET',\n    body: payload ? JSON.stringify(payload) : undefined,\n    headers: headers\n  }).then(function (response) {\n    var resourceNotExisting = response.headers && response.headers.get('x-cache') === 'Error from cloudfront';\n    if (!response.ok) return callback(response.statusText || 'Error', {\n      status: response.status,\n      resourceNotExisting: resourceNotExisting\n    });\n    response.text().then(function (data) {\n      callback(null, {\n        status: response.status,\n        data: data,\n        resourceNotExisting: resourceNotExisting\n      });\n    }).catch(callback);\n  }).catch(callback);\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n  try {\n    var x;\n\n    if (XmlHttpRequestApi) {\n      x = new XmlHttpRequestApi();\n    } else {\n      x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n    }\n\n    x.open(payload ? 'POST' : 'GET', url, 1);\n\n    if (!options.crossDomain) {\n      x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n    }\n\n    if (options.authorize && options.apiKey) {\n      x.setRequestHeader('Authorization', options.apiKey);\n    }\n\n    if (payload || options.setContentTypeJSON) {\n      x.setRequestHeader('Content-Type', 'application/json');\n    }\n\n    x.onreadystatechange = function () {\n      var resourceNotExisting = x.getResponseHeader('x-cache') === 'Error from cloudfront';\n      x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n        status: x.status,\n        data: x.responseText,\n        resourceNotExisting: resourceNotExisting\n      });\n    };\n\n    x.send(JSON.stringify(payload));\n  } catch (e) {\n    console && console.log(e);\n  }\n};\n\nvar request = function request(options, url, payload, callback) {\n  if (typeof payload === 'function') {\n    callback = payload;\n    payload = undefined;\n  }\n\n  callback = callback || function () {};\n\n  if (fetchApi) {\n    return requestWithFetch(options, url, payload, callback);\n  }\n\n  if (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object' || typeof ActiveXObject === 'function') {\n    return requestWithXmlHttpRequest(options, url, payload, callback);\n  }\n};\n\nexport default request;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { defaults, debounce, isMissingOption, interpolate, getPath, setPath, pushPath, defer } from './utils.js';\nimport request from './request.js';\n\nvar getDefaults = function getDefaults() {\n  return {\n    loadPath: 'https://api.locize.app/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n    privatePath: 'https://api.locize.app/private/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n    getLanguagesPath: 'https://api.locize.app/languages/{{projectId}}',\n    addPath: 'https://api.locize.app/missing/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n    updatePath: 'https://api.locize.app/update/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n    referenceLng: 'en',\n    crossDomain: true,\n    setContentTypeJSON: false,\n    version: 'latest',\n    private: false,\n    translatedPercentageThreshold: 0.9,\n    failLoadingOnEmptyJSON: false,\n    allowedAddOrUpdateHosts: ['localhost'],\n    onSaved: false,\n    reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n    checkForProjectTimeout: 3 * 1000,\n    storageExpiration: 60 * 60 * 1000,\n    writeDebounce: 5 * 1000\n  };\n};\n\nvar hasLocalStorageSupport;\n\ntry {\n  hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n  var testKey = 'notExistingLocizeProject';\n  window.localStorage.setItem(testKey, 'foo');\n  window.localStorage.removeItem(testKey);\n} catch (e) {\n  hasLocalStorageSupport = false;\n}\n\nfunction getStorage(storageExpiration) {\n  var setProjectNotExisting = function setProjectNotExisting() {};\n\n  var isProjectNotExisting = function isProjectNotExisting() {};\n\n  if (hasLocalStorageSupport) {\n    setProjectNotExisting = function setProjectNotExisting(projectId) {\n      window.localStorage.setItem(\"notExistingLocizeProject_\".concat(projectId), Date.now());\n    };\n\n    isProjectNotExisting = function isProjectNotExisting(projectId) {\n      var ret = window.localStorage.getItem(\"notExistingLocizeProject_\".concat(projectId));\n      if (!ret) return false;\n\n      if (Date.now() - ret > storageExpiration) {\n        window.localStorage.removeItem(\"notExistingLocizeProject_\".concat(projectId));\n        return false;\n      }\n\n      return true;\n    };\n  } else if (typeof document !== 'undefined') {\n    setProjectNotExisting = function setProjectNotExisting(projectId) {\n      var date = new Date();\n      date.setTime(date.getTime() + storageExpiration);\n      var expires = \"; expires=\".concat(date.toGMTString());\n      var name = \"notExistingLocizeProject_\".concat(projectId);\n\n      try {\n        document.cookie = \"\".concat(name, \"=\").concat(Date.now()).concat(expires, \";path=/\");\n      } catch (err) {}\n    };\n\n    isProjectNotExisting = function isProjectNotExisting(projectId) {\n      var name = \"notExistingLocizeProject_\".concat(projectId);\n      var nameEQ = \"\".concat(name, \"=\");\n\n      try {\n        var ca = document.cookie.split(';');\n\n        for (var i = 0; i < ca.length; i++) {\n          var c = ca[i];\n\n          while (c.charAt(0) === ' ') {\n            c = c.substring(1, c.length);\n          }\n\n          if (c.indexOf(nameEQ) === 0) return true;\n        }\n      } catch (err) {}\n\n      return false;\n    };\n  }\n\n  return {\n    setProjectNotExisting: setProjectNotExisting,\n    isProjectNotExisting: isProjectNotExisting\n  };\n}\n\nvar I18NextLocizeBackend = function () {\n  function I18NextLocizeBackend(services) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n    _classCallCheck(this, I18NextLocizeBackend);\n\n    this.services = services;\n    this.options = options;\n    this.allOptions = allOptions;\n    this.type = 'backend';\n\n    if (services && services.projectId) {\n      this.init(null, services, allOptions, options);\n    } else {\n      this.init(services, options, allOptions, callback);\n    }\n  }\n\n  _createClass(I18NextLocizeBackend, [{\n    key: \"init\",\n    value: function init(services) {\n      var _this = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var callback = arguments.length > 3 ? arguments[3] : undefined;\n      this.services = services;\n      this.options = defaults(options, this.options || {}, getDefaults());\n      this.allOptions = allOptions;\n      this.somethingLoaded = false;\n      this.isProjectNotExisting = false;\n      this.storage = getStorage(this.options.storageExpiration);\n\n      if (this.options.pull) {\n        console.warn('The pull API was removed use \"private: true\" option instead: https://docs.locize.com/integration/api#fetch-private-namespace-resources');\n      }\n\n      var hostname = typeof window !== 'undefined' && window.location && window.location.hostname;\n\n      if (hostname) {\n        this.isAddOrUpdateAllowed = typeof this.options.allowedAddOrUpdateHosts === 'function' ? this.options.allowedAddOrUpdateHosts(hostname) : this.options.allowedAddOrUpdateHosts.indexOf(hostname) > -1;\n\n        if (services && services.logger && (allOptions.saveMissing || allOptions.updateMissing)) {\n          if (!this.isAddOrUpdateAllowed) {\n            services.logger.warn(typeof this.options.allowedAddOrUpdateHosts === 'function' ? \"locize-backend: will not save or update missings because allowedAddOrUpdateHosts returned false for the host \\\"\".concat(hostname, \"\\\".\") : \"locize-backend: will not save or update missings because the host \\\"\".concat(hostname, \"\\\" was not in the list of allowedAddOrUpdateHosts: \").concat(this.options.allowedAddOrUpdateHosts.join(', '), \" (matches need to be exact).\"));\n          } else if (hostname !== 'localhost') {\n            services.logger.warn(\"locize-backend: you are using the save or update missings feature from this host \\\"\".concat(hostname, \"\\\".\\nMake sure you will not use it in production!\\nhttps://docs.locize.com/guides-tips-and-tricks/going-production\"));\n          }\n        }\n      } else {\n        this.isAddOrUpdateAllowed = true;\n      }\n\n      if (typeof callback === 'function') {\n        this.getOptions(function (err, opts, languages) {\n          if (err) return callback(err);\n          _this.options.referenceLng = options.referenceLng || opts.referenceLng || _this.options.referenceLng;\n          callback(null, opts, languages);\n        });\n      }\n\n      this.queuedWrites = {\n        pending: {}\n      };\n      this.debouncedProcess = debounce(this.process, this.options.writeDebounce);\n      if (this.interval) clearInterval(this.interval);\n\n      if (this.options.reloadInterval && this.options.projectId) {\n        this.interval = setInterval(function () {\n          return _this.reload();\n        }, this.options.reloadInterval);\n      }\n    }\n  }, {\n    key: \"reload\",\n    value: function reload() {\n      var _this2 = this;\n\n      var _ref = this.services || {\n        logger: console\n      },\n          backendConnector = _ref.backendConnector,\n          languageUtils = _ref.languageUtils,\n          logger = _ref.logger;\n\n      if (!backendConnector) return;\n      var currentLanguage = backendConnector.language;\n      if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n      var toLoad = [];\n\n      var append = function append(lng) {\n        var lngs = languageUtils.toResolveHierarchy(lng);\n        lngs.forEach(function (l) {\n          if (toLoad.indexOf(l) < 0) toLoad.push(l);\n        });\n      };\n\n      append(currentLanguage);\n      if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n        return append(l);\n      });\n      toLoad.forEach(function (lng) {\n        _this2.allOptions.ns.forEach(function (ns) {\n          backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n            if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n            if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n            backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n          });\n        });\n      });\n    }\n  }, {\n    key: \"getLanguages\",\n    value: function getLanguages(callback) {\n      var _this3 = this;\n\n      var deferred;\n\n      if (!callback) {\n        deferred = defer();\n\n        callback = function callback(err, ret) {\n          if (err) return deferred.reject(err);\n          deferred.resolve(ret);\n        };\n      }\n\n      var isMissing = isMissingOption(this.options, ['projectId']);\n      if (isMissing) return callback(new Error(isMissing));\n      var url = interpolate(this.options.getLanguagesPath, {\n        projectId: this.options.projectId\n      });\n\n      if (!this.isProjectNotExisting && this.storage.isProjectNotExisting(this.options.projectId)) {\n        this.isProjectNotExisting = true;\n      }\n\n      if (this.isProjectNotExisting) return callback(new Error(\"locize project \".concat(this.options.projectId, \" does not exist!\")));\n      this.getLanguagesCalls = this.getLanguagesCalls || [];\n      this.getLanguagesCalls.push(callback);\n      if (this.getLanguagesCalls.length > 1) return;\n      this.loadUrl({}, url, function (err, ret, info) {\n        if (!_this3.somethingLoaded && info && info.resourceNotExisting) {\n          _this3.isProjectNotExisting = true;\n\n          _this3.storage.setProjectNotExisting(_this3.options.projectId);\n\n          var e = new Error(\"locize project \".concat(_this3.options.projectId, \" does not exist!\"));\n          var _clbs = _this3.getLanguagesCalls;\n          _this3.getLanguagesCalls = [];\n          return _clbs.forEach(function (clb) {\n            return clb(e);\n          });\n        }\n\n        _this3.somethingLoaded = true;\n        var clbs = _this3.getLanguagesCalls;\n        _this3.getLanguagesCalls = [];\n        clbs.forEach(function (clb) {\n          return clb(err, ret);\n        });\n      });\n      return deferred;\n    }\n  }, {\n    key: \"getOptions\",\n    value: function getOptions(callback) {\n      var _this4 = this;\n\n      var deferred;\n\n      if (!callback) {\n        deferred = defer();\n\n        callback = function callback(err, ret) {\n          if (err) return deferred.reject(err);\n          deferred.resolve(ret);\n        };\n      }\n\n      this.getLanguages(function (err, data) {\n        if (err) return callback(err);\n        var keys = Object.keys(data);\n\n        if (!keys.length) {\n          return callback(new Error('was unable to load languages via API'));\n        }\n\n        var referenceLng = keys.reduce(function (mem, k) {\n          var item = data[k];\n          if (item.isReferenceLanguage) mem = k;\n          return mem;\n        }, '');\n        var lngs = keys.reduce(function (mem, k) {\n          var item = data[k];\n\n          if (item.translated[_this4.options.version] && item.translated[_this4.options.version] >= _this4.options.translatedPercentageThreshold) {\n            mem.push(k);\n          }\n\n          return mem;\n        }, []);\n        var hasRegion = keys.reduce(function (mem, k) {\n          if (k.indexOf('-') > -1) return true;\n          return mem;\n        }, false);\n        callback(null, {\n          fallbackLng: referenceLng,\n          referenceLng: referenceLng,\n          supportedLngs: lngs,\n          load: hasRegion ? 'all' : 'languageOnly'\n        }, data);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"checkIfProjectExists\",\n    value: function checkIfProjectExists(callback) {\n      var _this5 = this;\n\n      var _ref2 = this.services || {\n        logger: console\n      },\n          logger = _ref2.logger;\n\n      if (this.somethingLoaded) {\n        if (callback) callback(null);\n        return;\n      }\n\n      if (this.alreadyRequestedCheckIfProjectExists) {\n        setTimeout(function () {\n          return _this5.checkIfProjectExists(callback);\n        }, this.options.checkForProjectTimeout);\n        return;\n      }\n\n      this.alreadyRequestedCheckIfProjectExists = true;\n      this.getLanguages(function (err) {\n        if (err && err.message && err.message.indexOf('does not exist') > 0) {\n          if (logger) logger.error(err.message);\n        }\n\n        if (callback) callback(err);\n      });\n    }\n  }, {\n    key: \"read\",\n    value: function read(language, namespace, callback) {\n      var _this6 = this;\n\n      var _ref3 = this.services || {\n        logger: console\n      },\n          logger = _ref3.logger;\n\n      var url;\n      var options = {};\n\n      if (this.options.private) {\n        var isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey']);\n        if (isMissing) return callback(new Error(isMissing), false);\n        url = interpolate(this.options.privatePath, {\n          lng: language,\n          ns: namespace,\n          projectId: this.options.projectId,\n          version: this.options.version\n        });\n        options = {\n          authorize: true\n        };\n      } else {\n        var _isMissing = isMissingOption(this.options, ['projectId', 'version']);\n\n        if (_isMissing) return callback(new Error(_isMissing), false);\n        url = interpolate(this.options.loadPath, {\n          lng: language,\n          ns: namespace,\n          projectId: this.options.projectId,\n          version: this.options.version\n        });\n      }\n\n      if (!this.isProjectNotExisting && this.storage.isProjectNotExisting(this.options.projectId)) {\n        this.isProjectNotExisting = true;\n      }\n\n      if (this.isProjectNotExisting) {\n        var err = new Error(\"locize project \".concat(this.options.projectId, \" does not exist!\"));\n        if (logger) logger.error(err.message);\n        if (callback) callback(err);\n        return;\n      }\n\n      this.loadUrl(options, url, function (err, ret, info) {\n        if (!_this6.somethingLoaded) {\n          if (info && info.resourceNotExisting) {\n            setTimeout(function () {\n              return _this6.checkIfProjectExists();\n            }, _this6.options.checkForProjectTimeout);\n          } else {\n            _this6.somethingLoaded = true;\n          }\n        }\n\n        callback(err, ret);\n      });\n    }\n  }, {\n    key: \"loadUrl\",\n    value: function loadUrl(options, url, payload, callback) {\n      var _this7 = this;\n\n      options = defaults(options, this.options);\n\n      if (typeof payload === 'function') {\n        callback = payload;\n        payload = undefined;\n      }\n\n      callback = callback || function () {};\n\n      request(options, url, payload, function (err, res) {\n        var resourceNotExisting = res && res.resourceNotExisting;\n\n        if (res && (res.status === 408 || res.status === 400)) {\n          return callback('failed loading ' + url, true, {\n            resourceNotExisting: resourceNotExisting\n          });\n        }\n\n        if (res && (res.status >= 500 && res.status < 600 || !res.status)) {\n          return callback('failed loading ' + url, true, {\n            resourceNotExisting: resourceNotExisting\n          });\n        }\n\n        if (res && res.status >= 400 && res.status < 500) {\n          return callback('failed loading ' + url, false, {\n            resourceNotExisting: resourceNotExisting\n          });\n        }\n\n        if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) {\n          return callback('failed loading ' + url, true, {\n            resourceNotExisting: resourceNotExisting\n          });\n        }\n\n        if (err) return callback(err, false);\n        var ret, parseErr;\n\n        try {\n          ret = JSON.parse(res.data);\n        } catch (e) {\n          parseErr = 'failed parsing ' + url + ' to json';\n        }\n\n        if (parseErr) return callback(parseErr, false);\n\n        if (_this7.options.failLoadingOnEmptyJSON && !Object.keys(ret).length) {\n          return callback('loaded result empty for ' + url, false, {\n            resourceNotExisting: resourceNotExisting\n          });\n        }\n\n        callback(null, ret, {\n          resourceNotExisting: resourceNotExisting\n        });\n      });\n    }\n  }, {\n    key: \"create\",\n    value: function create(languages, namespace, key, fallbackValue, callback, options) {\n      var _this8 = this;\n\n      if (!callback) callback = function callback() {};\n      this.checkIfProjectExists(function (err) {\n        if (err) return callback(err);\n        var isMissing = isMissingOption(_this8.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n        if (isMissing) return callback(new Error(isMissing));\n\n        if (!_this8.isAddOrUpdateAllowed) {\n          return callback('host is not allowed to create key.');\n        }\n\n        if (typeof languages === 'string') languages = [languages];\n\n        if (languages.filter(function (l) {\n          return l === _this8.options.referenceLng;\n        }).length < 1) {\n          _this8.services && _this8.services.logger && _this8.services.logger.warn(\"locize-backend: will not save missings because the reference language \\\"\".concat(_this8.options.referenceLng, \"\\\" was not in the list of to save languages: \").concat(languages.join(', '), \" (open your site in the reference language to save missings).\"));\n        }\n\n        languages.forEach(function (lng) {\n          if (lng === _this8.options.referenceLng) {\n            _this8.queue.call(_this8, _this8.options.referenceLng, namespace, key, fallbackValue, callback, options);\n          }\n        });\n      });\n    }\n  }, {\n    key: \"update\",\n    value: function update(languages, namespace, key, fallbackValue, callback, options) {\n      var _this9 = this;\n\n      if (!callback) callback = function callback() {};\n      this.checkIfProjectExists(function (err) {\n        if (err) return callback(err);\n        var isMissing = isMissingOption(_this9.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n        if (isMissing) return callback(new Error(isMissing));\n\n        if (!_this9.isAddOrUpdateAllowed) {\n          return callback('host is not allowed to update key.');\n        }\n\n        if (!options) options = {};\n        if (typeof languages === 'string') languages = [languages];\n        options.isUpdate = true;\n        languages.forEach(function (lng) {\n          if (lng === _this9.options.referenceLng) {\n            _this9.queue.call(_this9, _this9.options.referenceLng, namespace, key, fallbackValue, callback, options);\n          }\n        });\n      });\n    }\n  }, {\n    key: \"writePage\",\n    value: function writePage(lng, namespace, missings, callback) {\n      var missingUrl = interpolate(this.options.addPath, {\n        lng: lng,\n        ns: namespace,\n        projectId: this.options.projectId,\n        version: this.options.version\n      });\n      var updatesUrl = interpolate(this.options.updatePath, {\n        lng: lng,\n        ns: namespace,\n        projectId: this.options.projectId,\n        version: this.options.version\n      });\n      var hasMissing = false;\n      var hasUpdates = false;\n      var payloadMissing = {};\n      var payloadUpdate = {};\n      missings.forEach(function (item) {\n        var value = item.options && item.options.tDescription ? {\n          value: item.fallbackValue || '',\n          context: {\n            text: item.options.tDescription\n          }\n        } : item.fallbackValue || '';\n\n        if (item.options && item.options.isUpdate) {\n          if (!hasUpdates) hasUpdates = true;\n          payloadUpdate[item.key] = value;\n        } else {\n          if (!hasMissing) hasMissing = true;\n          payloadMissing[item.key] = value;\n        }\n      });\n      var todo = 0;\n      if (hasMissing) todo++;\n      if (hasUpdates) todo++;\n\n      var doneOne = function doneOne(err) {\n        todo--;\n        if (!todo) callback(err);\n      };\n\n      if (!todo) doneOne();\n\n      if (hasMissing) {\n        request(defaults({\n          authorize: true\n        }, this.options), missingUrl, payloadMissing, doneOne);\n      }\n\n      if (hasUpdates) {\n        request(defaults({\n          authorize: true\n        }, this.options), updatesUrl, payloadUpdate, doneOne);\n      }\n    }\n  }, {\n    key: \"write\",\n    value: function write(lng, namespace) {\n      var _this10 = this;\n\n      var lock = getPath(this.queuedWrites, ['locks', lng, namespace]);\n      if (lock) return;\n      var missings = getPath(this.queuedWrites, [lng, namespace]);\n      setPath(this.queuedWrites, [lng, namespace], []);\n      var pageSize = 1000;\n      var clbs = missings.filter(function (m) {\n        return m.callback;\n      }).map(function (missing) {\n        return missing.callback;\n      });\n\n      if (missings.length) {\n        (function () {\n          setPath(_this10.queuedWrites, ['locks', lng, namespace], true);\n\n          var namespaceSaved = function namespaceSaved() {\n            setPath(_this10.queuedWrites, ['locks', lng, namespace], false);\n            clbs.forEach(function (clb) {\n              return clb();\n            });\n            if (_this10.options.onSaved) _this10.options.onSaved(lng, namespace);\n\n            _this10.debouncedProcess(lng, namespace);\n          };\n\n          var amountOfPages = missings.length / pageSize;\n          var pagesDone = 0;\n          var page = missings.splice(0, pageSize);\n\n          _this10.writePage(lng, namespace, page, function () {\n            pagesDone++;\n            if (pagesDone >= amountOfPages) namespaceSaved();\n          });\n\n          while (page.length === pageSize) {\n            page = missings.splice(0, pageSize);\n\n            if (page.length) {\n              _this10.writePage(lng, namespace, page, function () {\n                pagesDone++;\n                if (pagesDone >= amountOfPages) namespaceSaved();\n              });\n            }\n          }\n        })();\n      }\n    }\n  }, {\n    key: \"process\",\n    value: function process() {\n      var _this11 = this;\n\n      Object.keys(this.queuedWrites).forEach(function (lng) {\n        if (lng === 'locks') return;\n        Object.keys(_this11.queuedWrites[lng]).forEach(function (ns) {\n          var todo = _this11.queuedWrites[lng][ns];\n\n          if (todo.length) {\n            _this11.write(lng, ns);\n          }\n        });\n      });\n    }\n  }, {\n    key: \"queue\",\n    value: function queue(lng, namespace, key, fallbackValue, callback, options) {\n      pushPath(this.queuedWrites, [lng, namespace], {\n        key: key,\n        fallbackValue: fallbackValue || '',\n        callback: callback,\n        options: options\n      });\n      this.debouncedProcess();\n    }\n  }]);\n\n  return I18NextLocizeBackend;\n}();\n\nI18NextLocizeBackend.type = 'backend';\nexport default I18NextLocizeBackend;","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n  each.call(slice.call(arguments, 1), function (source) {\n    if (source) {\n      for (var prop in source) {\n        if (obj[prop] === undefined) obj[prop] = source[prop];\n      }\n    }\n  });\n  return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n  var opt = options || {};\n  opt.path = opt.path || '/';\n  var value = encodeURIComponent(val);\n  var str = name + '=' + value;\n\n  if (opt.maxAge > 0) {\n    var maxAge = opt.maxAge - 0;\n    if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n    str += '; Max-Age=' + Math.floor(maxAge);\n  }\n\n  if (opt.domain) {\n    if (!fieldContentRegExp.test(opt.domain)) {\n      throw new TypeError('option domain is invalid');\n    }\n\n    str += '; Domain=' + opt.domain;\n  }\n\n  if (opt.path) {\n    if (!fieldContentRegExp.test(opt.path)) {\n      throw new TypeError('option path is invalid');\n    }\n\n    str += '; Path=' + opt.path;\n  }\n\n  if (opt.expires) {\n    if (typeof opt.expires.toUTCString !== 'function') {\n      throw new TypeError('option expires is invalid');\n    }\n\n    str += '; Expires=' + opt.expires.toUTCString();\n  }\n\n  if (opt.httpOnly) str += '; HttpOnly';\n  if (opt.secure) str += '; Secure';\n\n  if (opt.sameSite) {\n    var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n    switch (sameSite) {\n      case true:\n        str += '; SameSite=Strict';\n        break;\n\n      case 'lax':\n        str += '; SameSite=Lax';\n        break;\n\n      case 'strict':\n        str += '; SameSite=Strict';\n        break;\n\n      case 'none':\n        str += '; SameSite=None';\n        break;\n\n      default:\n        throw new TypeError('option sameSite is invalid');\n    }\n  }\n\n  return str;\n};\n\nvar cookie = {\n  create: function create(name, value, minutes, domain) {\n    var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n      path: '/',\n      sameSite: 'strict'\n    };\n\n    if (minutes) {\n      cookieOptions.expires = new Date();\n      cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n    }\n\n    if (domain) cookieOptions.domain = domain;\n    document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n  },\n  read: function read(name) {\n    var nameEQ = name + '=';\n    var ca = document.cookie.split(';');\n\n    for (var i = 0; i < ca.length; i++) {\n      var c = ca[i];\n\n      while (c.charAt(0) === ' ') {\n        c = c.substring(1, c.length);\n      }\n\n      if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n    }\n\n    return null;\n  },\n  remove: function remove(name) {\n    this.create(name, '', -1);\n  }\n};\nvar cookie$1 = {\n  name: 'cookie',\n  lookup: function lookup(options) {\n    var found;\n\n    if (options.lookupCookie && typeof document !== 'undefined') {\n      var c = cookie.read(options.lookupCookie);\n      if (c) found = c;\n    }\n\n    return found;\n  },\n  cacheUserLanguage: function cacheUserLanguage(lng, options) {\n    if (options.lookupCookie && typeof document !== 'undefined') {\n      cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n    }\n  }\n};\n\nvar querystring = {\n  name: 'querystring',\n  lookup: function lookup(options) {\n    var found;\n\n    if (typeof window !== 'undefined') {\n      var query = window.location.search.substring(1);\n      var params = query.split('&');\n\n      for (var i = 0; i < params.length; i++) {\n        var pos = params[i].indexOf('=');\n\n        if (pos > 0) {\n          var key = params[i].substring(0, pos);\n\n          if (key === options.lookupQuerystring) {\n            found = params[i].substring(pos + 1);\n          }\n        }\n      }\n    }\n\n    return found;\n  }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n  if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n  try {\n    hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n    var testKey = 'i18next.translate.boo';\n    window.localStorage.setItem(testKey, 'foo');\n    window.localStorage.removeItem(testKey);\n  } catch (e) {\n    hasLocalStorageSupport = false;\n  }\n\n  return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n  name: 'localStorage',\n  lookup: function lookup(options) {\n    var found;\n\n    if (options.lookupLocalStorage && localStorageAvailable()) {\n      var lng = window.localStorage.getItem(options.lookupLocalStorage);\n      if (lng) found = lng;\n    }\n\n    return found;\n  },\n  cacheUserLanguage: function cacheUserLanguage(lng, options) {\n    if (options.lookupLocalStorage && localStorageAvailable()) {\n      window.localStorage.setItem(options.lookupLocalStorage, lng);\n    }\n  }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n  if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n  try {\n    hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n    var testKey = 'i18next.translate.boo';\n    window.sessionStorage.setItem(testKey, 'foo');\n    window.sessionStorage.removeItem(testKey);\n  } catch (e) {\n    hasSessionStorageSupport = false;\n  }\n\n  return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n  name: 'sessionStorage',\n  lookup: function lookup(options) {\n    var found;\n\n    if (options.lookupSessionStorage && sessionStorageAvailable()) {\n      var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n      if (lng) found = lng;\n    }\n\n    return found;\n  },\n  cacheUserLanguage: function cacheUserLanguage(lng, options) {\n    if (options.lookupSessionStorage && sessionStorageAvailable()) {\n      window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n    }\n  }\n};\n\nvar navigator$1 = {\n  name: 'navigator',\n  lookup: function lookup(options) {\n    var found = [];\n\n    if (typeof navigator !== 'undefined') {\n      if (navigator.languages) {\n        // chrome only; not an array, so can't use .push.apply instead of iterating\n        for (var i = 0; i < navigator.languages.length; i++) {\n          found.push(navigator.languages[i]);\n        }\n      }\n\n      if (navigator.userLanguage) {\n        found.push(navigator.userLanguage);\n      }\n\n      if (navigator.language) {\n        found.push(navigator.language);\n      }\n    }\n\n    return found.length > 0 ? found : undefined;\n  }\n};\n\nvar htmlTag = {\n  name: 'htmlTag',\n  lookup: function lookup(options) {\n    var found;\n    var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n    if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n      found = htmlTag.getAttribute('lang');\n    }\n\n    return found;\n  }\n};\n\nvar path = {\n  name: 'path',\n  lookup: function lookup(options) {\n    var found;\n\n    if (typeof window !== 'undefined') {\n      var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n      if (language instanceof Array) {\n        if (typeof options.lookupFromPathIndex === 'number') {\n          if (typeof language[options.lookupFromPathIndex] !== 'string') {\n            return undefined;\n          }\n\n          found = language[options.lookupFromPathIndex].replace('/', '');\n        } else {\n          found = language[0].replace('/', '');\n        }\n      }\n    }\n\n    return found;\n  }\n};\n\nvar subdomain = {\n  name: 'subdomain',\n  lookup: function lookup(options) {\n    var found;\n\n    if (typeof window !== 'undefined') {\n      var language = window.location.href.match(/(?:http[s]*\\:\\/\\/)*(.*?)\\.(?=[^\\/]*\\..{2,5})/gi);\n\n      if (language instanceof Array) {\n        if (typeof options.lookupFromSubdomainIndex === 'number') {\n          found = language[options.lookupFromSubdomainIndex].replace('http://', '').replace('https://', '').replace('.', '');\n        } else {\n          found = language[0].replace('http://', '').replace('https://', '').replace('.', '');\n        }\n      }\n    }\n\n    return found;\n  }\n};\n\nfunction getDefaults() {\n  return {\n    order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n    lookupQuerystring: 'lng',\n    lookupCookie: 'i18next',\n    lookupLocalStorage: 'i18nextLng',\n    lookupSessionStorage: 'i18nextLng',\n    // cache user language\n    caches: ['localStorage'],\n    excludeCacheFor: ['cimode'] //cookieMinutes: 10,\n    //cookieDomain: 'myDomain'\n\n  };\n}\n\nvar Browser = /*#__PURE__*/function () {\n  function Browser(services) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Browser);\n\n    this.type = 'languageDetector';\n    this.detectors = {};\n    this.init(services, options);\n  }\n\n  _createClass(Browser, [{\n    key: \"init\",\n    value: function init(services) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      this.services = services;\n      this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n      if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n      this.i18nOptions = i18nOptions;\n      this.addDetector(cookie$1);\n      this.addDetector(querystring);\n      this.addDetector(localStorage);\n      this.addDetector(sessionStorage);\n      this.addDetector(navigator$1);\n      this.addDetector(htmlTag);\n      this.addDetector(path);\n      this.addDetector(subdomain);\n    }\n  }, {\n    key: \"addDetector\",\n    value: function addDetector(detector) {\n      this.detectors[detector.name] = detector;\n    }\n  }, {\n    key: \"detect\",\n    value: function detect(detectionOrder) {\n      var _this = this;\n\n      if (!detectionOrder) detectionOrder = this.options.order;\n      var detected = [];\n      detectionOrder.forEach(function (detectorName) {\n        if (_this.detectors[detectorName]) {\n          var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n          if (lookup && typeof lookup === 'string') lookup = [lookup];\n          if (lookup) detected = detected.concat(lookup);\n        }\n      });\n      if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n      return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n    }\n  }, {\n    key: \"cacheUserLanguage\",\n    value: function cacheUserLanguage(lng, caches) {\n      var _this2 = this;\n\n      if (!caches) caches = this.options.caches;\n      if (!caches) return;\n      if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n      caches.forEach(function (cacheName) {\n        if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n      });\n    }\n  }]);\n\n  return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import i18n, { InitOptions } from 'i18next'\r\nimport { initReactI18next } from 'react-i18next'\r\n//import Backend from 'i18next-http-backend'\r\nimport Backend from 'i18next-locize-backend';\r\nimport LanguageDetector from 'i18next-browser-languagedetector'\r\nimport rootStore from './stores/RootStore'\r\n\r\nconst i18nextOptions: InitOptions = {\r\n  //debug: true,\r\n  load: \"all\",\r\n  supportedLngs: [\"en\", \"es\"],\r\n  interpolation: {\r\n    escapeValue: false, // not needed for react as it escapes by default\r\n  },\r\n  backend: {\r\n    //loadPath: `${process.env.PUBLIC_URL}/locales/{{lng}}/{{ns}}.json`\r\n    projectId: '41a9343c-8ae0-42c1-82b6-51ae1d044993',\r\n    version: 'latest',\r\n  },\r\n  detection: {\r\n    order: [\"storeDetector\", \"querystring\", \"navigator\"],\r\n    caches: [\"storeDetector\"]\r\n  }\r\n}\r\n\r\nconst lngDetector = new LanguageDetector();\r\n  lngDetector.addDetector({\r\n    name: \"storeDetector\",\r\n    cacheUserLanguage(lng) {\r\n      const language = lng?.split(\"-\")[0]\r\n      rootStore.authStore.setLanguage(language)\r\n    },\r\n    lookup() {\r\n      return rootStore.authStore.language\r\n    }\r\n  })\r\n\r\ni18n\r\n  // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\r\n  // learn more: https://github.com/i18next/i18next-http-backend\r\n  // want your translations to be loaded from a professional CDN? => https://github.com/locize/react-tutorial#step-2---use-the-locize-cdn\r\n  .use(Backend)\r\n  // detect user language\r\n  // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n  .use(lngDetector)\r\n  // pass the i18n instance to react-i18next.\r\n  .use(initReactI18next)\r\n  // init i18next\r\n  // for all options read: https://www.i18next.com/overview/configuration-options\r\n  .init(i18nextOptions)\r\n\r\nexport default i18n","import { Observable, BehaviorSubject, Subscriber } from \"rxjs\"\r\nimport { filter, first } from \"rxjs/operators\"\r\nimport ApiUrl from \"./ApiUrl\"\r\nimport BuildFetchRequest, { RequestOptions } from \"./BuildFetchRequest\"\r\nimport rootStore from \"../stores/RootStore\"\r\nimport VerificationResponse from \"./models/VerificationResponse\"\r\n\r\nenum HttpStatusCode {\r\n  UNAUTHORIZED = 401\r\n}\r\n\r\ninterface MetaData {\r\n  [key: string]: string | number\r\n}\r\nexport class APIError extends Error {\r\n  status: number\r\n  data: MetaData\r\n\r\n  constructor(message: string, status: number, data: MetaData) {\r\n    super(message);\r\n    this.name = \"APIError\"\r\n    this.status = status\r\n    this.data = data || {}\r\n  }\r\n}\r\n\r\nclass RequestLockService {\r\n  locked = false\r\n  subject = new BehaviorSubject<boolean | null>(null)\r\n\r\n  lock = () => {\r\n    this.locked = true\r\n    this.subject.next(null)\r\n  }\r\n\r\n  isLocked = () => this.locked\r\n\r\n  unlock = (successfull: boolean) => {\r\n    this.locked = false\r\n    this.subject.next(successfull)\r\n  }\r\n\r\n  waitSubject = (): Observable<boolean | null> => this.subject.pipe(\r\n    filter(value => value !== null),\r\n    first()\r\n  )\r\n}\r\n\r\nconst lockService = new RequestLockService()\r\n\r\nfunction fetchRequestToken(onError: () => void) {\r\n  return fetch(ApiUrl() + \"Authenticate/RefreshToken\", BuildFetchRequest({ method: 'get', withCredentials: true }))\r\n    .then(async (response: Response) => {\r\n      if (response.ok) {\r\n        const data = await response.text();\r\n        return data ? JSON.parse(data) : {};\r\n      }\r\n      throw new APIError(response.statusText, response.status, {})\r\n    })\r\n    .then((result: VerificationResponse) => {\r\n      if (rootStore.authStore.authToken) {\r\n        rootStore.authStore.setAuthToken(result.authToken)\r\n      }\r\n      lockService.unlock(true)\r\n    })\r\n    .catch(() => {\r\n      lockService.unlock(false)\r\n      onError()\r\n    })\r\n}\r\n\r\nfunction refetchInitialRequest<T>(observer: Subscriber<T>, url: string, body?: string, method?: string, options?: RequestOptions) {\r\n  return ObservableFromFetch<T>(url, body, method, { ...options, retry: true }).subscribe({\r\n    next: (result: T) => {\r\n      observer.next(result)\r\n      observer.complete()\r\n    },\r\n    error: (err) => observer.error(err)\r\n  })\r\n}\r\n\r\nexport function ObservableFromFetch<T>(url: string, body?: string, method?: string, options?: RequestOptions): Observable<T> {\r\n  return new Observable<T>((observer: Subscriber<T>) => {\r\n    const controller = options?.abortController ?? new AbortController()\r\n\r\n    const init = BuildFetchRequest({ body, method, withCredentials: options?.withCredentials, abortController: controller })\r\n\r\n    fetch(ApiUrl() + url, init)\r\n      .then((response: Response) => {\r\n        if (response.ok) {\r\n          return response.text()\r\n            .then(data => data ? JSON.parse(data) : {})\r\n        } else {\r\n          return response.text()\r\n            .then(data => data ? JSON.parse(data) : {})\r\n            .then(json => {\r\n              throw new APIError(json.message ?? response.statusText, response.status, json.data)\r\n            })\r\n        }\r\n      })\r\n      .then((result: T) => {\r\n        observer.next(result)\r\n        observer.complete()\r\n      })\r\n      .catch(err => {\r\n        if (err.status !== HttpStatusCode.UNAUTHORIZED) {\r\n          observer.error(err)\r\n          return\r\n        }\r\n\r\n        const logout = () => {\r\n          observer.error(err)\r\n          rootStore.authStore.logout()\r\n        }\r\n\r\n        if (rootStore.authStore.authToken && !options?.retry) {\r\n          if (!lockService.isLocked()) {\r\n            lockService.lock()\r\n            fetchRequestToken(logout).then(() => {\r\n              refetchInitialRequest(observer, url, body, method, { withCredentials: options?.withCredentials, abortController: controller })\r\n            })\r\n          }\r\n          else {\r\n            lockService.waitSubject().subscribe({\r\n              next: (successfull: boolean | null) => {\r\n                if (successfull) {\r\n                  refetchInitialRequest(observer, url, body, method, { withCredentials: options?.withCredentials, abortController: controller })\r\n                }\r\n              }\r\n            })\r\n          }\r\n        } else {\r\n          logout()\r\n        }\r\n      })\r\n\r\n    return () => {\r\n      controller.abort()\r\n    }\r\n  })\r\n}\r\n","import { makeAutoObservable } from \"mobx\"\r\nimport i18n from \"../i18n\"\r\nimport DonorInfo from \"../api/models/Donor\"\r\nimport Domain from \"../api/models/Domain\"\r\nimport { logout as logoutFetch } from \"../api/Authenticate\"\r\n\r\nexport default class AuthStore {\r\n  authToken: string\r\n  language: string\r\n  translationLoading: boolean = false\r\n  donorInfo?: DonorInfo\r\n  domain?: Domain\r\n  notificationProcessed: boolean = false\r\n\r\n  constructor() {\r\n    this.authToken = sessionStorage.getItem(\"authToken\") || \"\"\r\n    this.language = sessionStorage.getItem(\"language\") || \"\"\r\n    makeAutoObservable(this)\r\n  }\r\n\r\n  setAuthToken(authToken: string) {\r\n    this.authToken = authToken\r\n    sessionStorage.setItem(\"authToken\", authToken)\r\n  }\r\n\r\n  setLanguage(language: string) {\r\n    this.language = language\r\n    sessionStorage.setItem(\"language\", language)\r\n  }\r\n\r\n  changeLanguage(language: string) {\r\n    this.setTranslationLoading(true)\r\n    i18n.changeLanguage(language, () => this.setTranslationLoading(false))\r\n  }\r\n\r\n  setTranslationLoading(loading: boolean) {\r\n    this.translationLoading = loading\r\n  }\r\n\r\n  setDonorInfo(value: DonorInfo) {\r\n    this.donorInfo = value\r\n  }\r\n\r\n  setDomain(value: Domain) {\r\n    this.domain = value\r\n  }\r\n\r\n  setNotificationProcessed() {\r\n    this.notificationProcessed = true\r\n  }\r\n\r\n  logout() {\r\n    this.authToken = \"\"\r\n    sessionStorage.setItem(\"authToken\", \"\")\r\n    logoutFetch()\r\n  }\r\n}\r\n","import ApiUrl from \"./ApiUrl\"\r\nimport BuildFetchRequest from \"./BuildFetchRequest\"\r\nimport AuthenticateRequest from \"./models/AuthenticateRequest\"\r\nimport TermsOfUseRequest from \"./models/TermsOfUseRequest\"\r\nimport VerificationRequest from \"./models/VerificationRequest\"\r\nimport VerificationResponse from \"./models/VerificationResponse\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const AuthenticateLogin = (params: AuthenticateRequest) => ObservableFromFetch<boolean>(\"Authenticate/Login\", JSON.stringify(params))\r\nexport const AuthenticateVerify = (params: VerificationRequest) => ObservableFromFetch<VerificationResponse>(\"Authenticate/Verify\", JSON.stringify(params), 'post', { withCredentials: true })\r\nexport const authenticateTermsOfUse = (params: TermsOfUseRequest) => ObservableFromFetch<boolean>(\"Authenticate/TermsOfUse\", JSON.stringify(params))\r\nexport const logout = () => {\r\n  const init = BuildFetchRequest({ method: 'get', withCredentials: true })\r\n\r\n  fetch(`${ApiUrl()}Authenticate/Logout`, init).catch(() => { })\r\n}\r\n","import { makeAutoObservable } from \"mobx\"\r\nimport { Implementation } from \"../api/models/registration/Implementation\"\r\n\r\nexport default class RegistrationStore {\r\n  implementation?: Implementation\r\n\r\n  constructor() {\r\n    const storage = sessionStorage.getItem(\"registration\")\r\n    if (storage) {\r\n      Object.assign(this, JSON.parse(storage))\r\n    }\r\n    makeAutoObservable(this)\r\n  }\r\n\r\n  setInitial(implementation: Implementation | undefined) {\r\n    this.implementation = implementation\r\n\r\n    sessionStorage.setItem(\"registration\", JSON.stringify({ implementation }))\r\n  }\r\n}\r\n","import OrderableTest from \"./models/OrderableTest\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport interface PaymentIntentRequest {\r\n  items: OrderableTest[]\r\n  testEventId: number\r\n  paymentIntentId?: string\r\n}\r\n\r\nexport interface PaymentIntentResponse {\r\n  clientSecret: string\r\n  completed: boolean\r\n  paymentRequired: boolean\r\n  valid: boolean\r\n}\r\n\r\nexport const getPublishableKey = () => ObservableFromFetch<string>(\"PaymentIntent\")\r\nexport const createPaymentIntent = (request: PaymentIntentRequest) => ObservableFromFetch<PaymentIntentResponse>(\"PaymentIntent\", JSON.stringify(request))\r\nexport const confirmPaymentIntent = (request: PaymentIntentRequest) => ObservableFromFetch<void>(\"PaymentIntent/Order\", JSON.stringify(request))\r\n","import { makeAutoObservable } from \"mobx\"\r\nimport { APIError } from \"../api/ObservableFromFetch\"\r\nimport { getPublishableKey } from \"../api/PaymentIntent\"\r\n\r\nexport default class AuthStore {\r\n  loaded: boolean = false\r\n  loading: boolean = false\r\n  publishableKey: string = \"\"\r\n\r\n  constructor() {\r\n    makeAutoObservable(this)\r\n  }\r\n\r\n  load() {\r\n    if (this.loaded || this.loading) {\r\n      return\r\n    }\r\n    this.loading = true\r\n\r\n    getPublishableKey().subscribe({\r\n      next: (result: string) => this.setPublishableKey(result),\r\n      error: (e: APIError) => {}\r\n    })\r\n  }\r\n\r\n  setPublishableKey(value: string) {\r\n    this.publishableKey = value\r\n    this.loaded = true\r\n    this.loading = false\r\n  }\r\n\r\n}\r\n","import AuthStore from \"./AuthStore\"\r\nimport RegistrationStore from \"./RegistrationStore\"\r\nimport StripeStore from \"./StripeStore\"\r\n\r\nexport interface RootStore {\r\n   authStore: AuthStore\r\n   stripeStore: StripeStore\r\n   registrationStore: RegistrationStore\r\n}\r\n\r\nexport const createRootStore = (): RootStore => {\r\n  return {\r\n    authStore: new AuthStore(),\r\n    stripeStore: new StripeStore(),\r\n    registrationStore: new RegistrationStore()\r\n  }\r\n}\r\n\r\nexport default createRootStore()","import rootStore from '../stores/RootStore'\r\n\r\nexport interface RequestOptions {\r\n  body?: string\r\n  method?: string\r\n  withCredentials?: boolean\r\n  abortController?: AbortController\r\n  retry?: boolean\r\n}\r\n\r\nexport default function BuildFetchRequest(options: RequestOptions): RequestInit {\r\n  const authStore = rootStore.authStore\r\n  const token = authStore.authToken\r\n  const language = authStore.language || \"en\"\r\n\r\n  return {\r\n    method: options.method ? options.method : (options.body ? \"post\" : \"get\"),\r\n    credentials: options.withCredentials ? \"include\" : \"omit\",\r\n    headers: new Headers({\r\n      \"Accept\": \"application/json\",\r\n      \"Content-Type\": \"application/json\",\r\n      \"Authorization\": token ? `Bearer ${token}` : \"\",\r\n      \"Accept-Language\": language\r\n    }),\r\n    body: options?.body,\r\n    signal: options.abortController?.signal\r\n  }\r\n}\r\n","import { Observable } from '../Observable';\nimport { EmptyError } from '../util/EmptyError';\nimport { OperatorFunction, TruthyTypesOf } from '../types';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\n\nexport function first<T, D = T>(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>;\nexport function first<T>(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>;\nexport function first<T, D>(predicate: BooleanConstructor, defaultValue: D): OperatorFunction<T, TruthyTypesOf<T> | D>;\nexport function first<T, S extends T>(\n  predicate: (value: T, index: number, source: Observable<T>) => value is S,\n  defaultValue?: S\n): OperatorFunction<T, S>;\nexport function first<T, S extends T, D>(\n  predicate: (value: T, index: number, source: Observable<T>) => value is S,\n  defaultValue: D\n): OperatorFunction<T, S | D>;\nexport function first<T, D = T>(\n  predicate: (value: T, index: number, source: Observable<T>) => boolean,\n  defaultValue?: D\n): OperatorFunction<T, T | D>;\n\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * <span class=\"informal\">Emits only the first value. Or emits only the first\n * value that passes some test.</span>\n *\n * ![](first.png)\n *\n * If called with no arguments, `first` emits the first value of the source\n * Observable, then completes. If called with a `predicate` function, `first`\n * emits the first value of the source that matches the specified condition. Throws an error if\n * `defaultValue` was not provided and a matching element is not found.\n *\n * ## Examples\n *\n * Emit only the first click that happens on the DOM\n *\n * ```ts\n * import { fromEvent, first } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Emits the first click that happens on a DIV\n *\n * ```ts\n * import { fromEvent, first } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first(ev => (<HTMLElement>ev.target).tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link take}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * This is how `first()` is different from {@link take}(1) which completes instead.\n *\n * @param {function(value: T, index: number, source: Observable<T>): boolean} [predicate]\n * An optional function called with each item to test for condition matching.\n * @param {D} [defaultValue] The default value emitted in case no valid value\n * was found on the source.\n * @return A function that returns an Observable that emits the first item that\n * matches the condition.\n */\nexport function first<T, D>(\n  predicate?: ((value: T, index: number, source: Observable<T>) => boolean) | null,\n  defaultValue?: D\n): OperatorFunction<T, T | D> {\n  const hasDefaultValue = arguments.length >= 2;\n  return (source: Observable<T>) =>\n    source.pipe(\n      predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n      take(1),\n      hasDefaultValue ? defaultIfEmpty(defaultValue!) : throwIfEmpty(() => new EmptyError())\n    );\n}\n","import Domain from \"./models/Domain\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getDomainInfo = () => ObservableFromFetch<Domain>(`ClientDomain/GetDomainInfo?name=${window.location.hostname}`)\r\n","import React, { createContext, ReactElement, ReactNode } from \"react\"\r\nimport AuthStore from \"./AuthStore\"\r\nimport RegistrationStore from \"./RegistrationStore\"\r\nimport rootStore, { RootStore } from \"./RootStore\"\r\nimport StripeStore from \"./StripeStore\"\r\n\r\nexport const StoreContext = createContext<RootStore>(rootStore)\r\n\r\ninterface StoreProviderProps {\r\n  children: ReactNode\r\n}\r\n\r\nexport function StoreProvider({ children }: StoreProviderProps): ReactElement  {\r\n  return <StoreContext.Provider value={rootStore}>{children}</StoreContext.Provider>\r\n}\r\n\r\nexport function useAuthStore(): AuthStore {\r\n  return React.useContext(StoreContext).authStore\r\n}\r\n\r\nexport function useStripeStore(): StripeStore {\r\n  return React.useContext(StoreContext).stripeStore\r\n}\r\n\r\nexport function useRegistrationStore(): RegistrationStore {\r\n  return React.useContext(StoreContext).registrationStore\r\n}\r\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ThemeContext = /*#__PURE__*/React.createContext({\n  prefixes: {}\n});\nconst {\n  Consumer,\n  Provider\n} = ThemeContext;\n\nfunction ThemeProvider({\n  prefixes = {},\n  dir,\n  children\n}) {\n  const contextValue = useMemo(() => ({\n    prefixes: { ...prefixes\n    },\n    dir\n  }), [prefixes, dir]);\n  return /*#__PURE__*/_jsx(Provider, {\n    value: contextValue,\n    children: children\n  });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n  const {\n    prefixes\n  } = useContext(ThemeContext);\n  return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useIsRTL() {\n  const {\n    dir\n  } = useContext(ThemeContext);\n  return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n  if (typeof opts === 'string') opts = {\n    prefix: opts\n  };\n  const isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n  const {\n    prefix,\n    forwardRefAs = isClassy ? 'ref' : 'innerRef'\n  } = opts;\n  const Wrapped = /*#__PURE__*/React.forwardRef(({ ...props\n  }, ref) => {\n    props[forwardRefAs] = ref;\n    const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n    return /*#__PURE__*/_jsx(Component, { ...props,\n      bsPrefix: bsPrefix\n    });\n  });\n  Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n  return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  fluid: false\n};\nconst Container = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  fluid,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  className,\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'container');\n  const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    ...props,\n    className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n  });\n});\nContainer.displayName = 'Container';\nContainer.defaultProps = defaultProps;\nexport default Container;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEVICE_SIZES = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst Row = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n  const sizePrefix = `${decoratedBsPrefix}-cols`;\n  const classes = [];\n  DEVICE_SIZES.forEach(brkPoint => {\n    const propValue = props[brkPoint];\n    delete props[brkPoint];\n    let cols;\n\n    if (propValue != null && typeof propValue === 'object') {\n      ({\n        cols\n      } = propValue);\n    } else {\n      cols = propValue;\n    }\n\n    const infix = brkPoint !== 'xs' ? `-${brkPoint}` : '';\n    if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n  });\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    ...props,\n    className: classNames(className, decoratedBsPrefix, ...classes)\n  });\n});\nRow.displayName = 'Row';\nexport default Row;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEVICE_SIZES = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport function useCol({\n  as,\n  bsPrefix,\n  className,\n  ...props\n}) {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n  const spans = [];\n  const classes = [];\n  DEVICE_SIZES.forEach(brkPoint => {\n    const propValue = props[brkPoint];\n    delete props[brkPoint];\n    let span;\n    let offset;\n    let order;\n\n    if (typeof propValue === 'object' && propValue != null) {\n      ({\n        span,\n        offset,\n        order\n      } = propValue);\n    } else {\n      span = propValue;\n    }\n\n    const infix = brkPoint !== 'xs' ? `-${brkPoint}` : '';\n    if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n    if (order != null) classes.push(`order${infix}-${order}`);\n    if (offset != null) classes.push(`offset${infix}-${offset}`);\n  });\n  return [{ ...props,\n    className: classNames(className, ...spans, ...classes)\n  }, {\n    as,\n    bsPrefix,\n    spans\n  }];\n}\nconst Col = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n  const [{\n    className,\n    ...colProps\n  }, {\n    as: Component = 'div',\n    bsPrefix,\n    spans\n  }] = useCol(props);\n  return /*#__PURE__*/_jsx(Component, { ...colProps,\n    ref: ref,\n    className: classNames(className, !spans.length && bsPrefix)\n  });\n});\nCol.displayName = 'Col';\nexport default Col;","export enum AppRoute {\r\n  Landing = \"/\",\r\n  Login = \"/login\",\r\n  Results = \"/results\",\r\n  LifeAge = \"/life-age\",\r\n  OrderTesting = \"/order-testing\",\r\n  FAQ = \"/faq\",\r\n  Registration = \"/a\",\r\n  RegistrationAlt = \"/r\",\r\n  ClientOrder = \"/clientorder\"\r\n}\r\n","import * as React from \"react\";\r\nimport { Col, Container, Row } from \"react-bootstrap\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { AppRoute } from \"../../AppRoute\";\r\nimport { Link } from \"react-router-dom\"\r\n\r\nexport function Footer() {\r\n  const { t } = useTranslation()\r\n  const currentYear = new Date().getFullYear()\r\n\r\n  return (\r\n    <footer>\r\n      <Container>\r\n        <Row className=\"p-3\">\r\n          <Col sm={12} md={6} className=\"p-0\">\r\n            &copy; {currentYear} Clinical Reference Laboratory, Inc.\r\n          </Col>\r\n          <Col sm={12} md={6} className=\"p-0\">\r\n            <div className=\"float-md-end\">\r\n              <Link className=\"mx-1 me-3\" to={AppRoute.ClientOrder}>{t(\"footer.clientOrder\")}</Link>\r\n              <Link className=\"mx-1 me-3\" to={AppRoute.RegistrationAlt}>{t(\"footer.registration\")}</Link>\r\n              <Link className=\"mx-1 me-3\" to={AppRoute.Results}>{t(\"footer.results\")}</Link>\r\n              <a className=\"mx-1 me-3\" href={AppRoute.FAQ} target=\"_blank\">FAQ</a>\r\n              <a className=\"mx-1 me-3\" href=\"https://www.crlcorp.com/notice-of-privacy-practices/\" target=\"_blank\" rel=\"noopener noreferrer\">{t(\"footer.privacyPolicy\")}</a>\r\n              <a className=\"mx-1\" href=\"https://www.crlcorp.com/terms-of-use/\" target=\"_blank\" rel=\"noopener noreferrer\">{t(\"footer.termsOfUse\")}</a>\r\n            </div>\r\n          </Col>\r\n        </Row>\r\n      </Container>\r\n    </footer>\r\n  )\r\n}\r\n","import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n  if (eventKey != null) return String(eventKey);\n  return href || null;\n};\nexport default SelectableContext;","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n  return function (props, propName) {\n    if (props[propName] !== undefined) {\n      if (!props[handler]) {\n        return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n      }\n    }\n  };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n  var propTypes = {};\n  Object.keys(controlledValues).forEach(function (prop) {\n    // add default propTypes for folks that use runtime checks\n    propTypes[defaultKey(prop)] = noop;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var handler = controlledValues[prop];\n      !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n      propTypes[prop] = readOnlyPropType(handler, displayName);\n    }\n  });\n  return propTypes;\n}\nexport function isProp(props, prop) {\n  return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n  return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n  return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n  var wasPropRef = useRef(propValue !== undefined);\n\n  var _useState = useState(defaultValue),\n      stateValue = _useState[0],\n      setState = _useState[1];\n\n  var isProp = propValue !== undefined;\n  var wasProp = wasPropRef.current;\n  wasPropRef.current = isProp;\n  /**\n   * If a prop switches from controlled to Uncontrolled\n   * reset its value to the defaultValue\n   */\n\n  if (!isProp && wasProp && stateValue !== defaultValue) {\n    setState(defaultValue);\n  }\n\n  return [isProp ? propValue : stateValue, useCallback(function (value) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    if (handler) handler.apply(void 0, [value].concat(args));\n    setState(value);\n  }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n  return Object.keys(config).reduce(function (result, fieldName) {\n    var _extends2;\n\n    var _ref = result,\n        defaultValue = _ref[Utils.defaultKey(fieldName)],\n        propsValue = _ref[fieldName],\n        rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n    var handlerName = config[fieldName];\n\n    var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n        value = _useUncontrolledProp[0],\n        handler = _useUncontrolledProp[1];\n\n    return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n  }, props);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n  // Call this.constructor.gDSFP to support sub-classes.\n  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n  if (state !== null && state !== undefined) {\n    this.setState(state);\n  }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n  // Call this.constructor.gDSFP to support sub-classes.\n  // Use the setState() updater to ensure state isn't stale in certain edge cases.\n  function updater(prevState) {\n    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n    return state !== null && state !== undefined ? state : null;\n  }\n  // Binding \"this\" is important for shallow renderer support.\n  this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n  try {\n    var prevProps = this.props;\n    var prevState = this.state;\n    this.props = nextProps;\n    this.state = nextState;\n    this.__reactInternalSnapshotFlag = true;\n    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n      prevProps,\n      prevState\n    );\n  } finally {\n    this.props = prevProps;\n    this.state = prevState;\n  }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n  var prototype = Component.prototype;\n\n  if (!prototype || !prototype.isReactComponent) {\n    throw new Error('Can only polyfill class components');\n  }\n\n  if (\n    typeof Component.getDerivedStateFromProps !== 'function' &&\n    typeof prototype.getSnapshotBeforeUpdate !== 'function'\n  ) {\n    return Component;\n  }\n\n  // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n  // Error if any of these lifecycles are present,\n  // Because they would work differently between older and newer (16.3+) versions of React.\n  var foundWillMountName = null;\n  var foundWillReceivePropsName = null;\n  var foundWillUpdateName = null;\n  if (typeof prototype.componentWillMount === 'function') {\n    foundWillMountName = 'componentWillMount';\n  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n    foundWillMountName = 'UNSAFE_componentWillMount';\n  }\n  if (typeof prototype.componentWillReceiveProps === 'function') {\n    foundWillReceivePropsName = 'componentWillReceiveProps';\n  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n  }\n  if (typeof prototype.componentWillUpdate === 'function') {\n    foundWillUpdateName = 'componentWillUpdate';\n  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n    foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n  }\n  if (\n    foundWillMountName !== null ||\n    foundWillReceivePropsName !== null ||\n    foundWillUpdateName !== null\n  ) {\n    var componentName = Component.displayName || Component.name;\n    var newApiName =\n      typeof Component.getDerivedStateFromProps === 'function'\n        ? 'getDerivedStateFromProps()'\n        : 'getSnapshotBeforeUpdate()';\n\n    throw Error(\n      'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n        componentName +\n        ' uses ' +\n        newApiName +\n        ' but also contains the following legacy lifecycles:' +\n        (foundWillMountName !== null ? '\\n  ' + foundWillMountName : '') +\n        (foundWillReceivePropsName !== null\n          ? '\\n  ' + foundWillReceivePropsName\n          : '') +\n        (foundWillUpdateName !== null ? '\\n  ' + foundWillUpdateName : '') +\n        '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n        'https://fb.me/react-async-component-lifecycle-hooks'\n    );\n  }\n\n  // React <= 16.2 does not support static getDerivedStateFromProps.\n  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n  // Newer versions of React will ignore these lifecycles if gDSFP exists.\n  if (typeof Component.getDerivedStateFromProps === 'function') {\n    prototype.componentWillMount = componentWillMount;\n    prototype.componentWillReceiveProps = componentWillReceiveProps;\n  }\n\n  // React <= 16.2 does not support getSnapshotBeforeUpdate.\n  // As a workaround, use cWU to invoke the new lifecycle.\n  // Newer versions of React will ignore that lifecycle if gSBU exists.\n  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n    if (typeof prototype.componentDidUpdate !== 'function') {\n      throw new Error(\n        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n      );\n    }\n\n    prototype.componentWillUpdate = componentWillUpdate;\n\n    var componentDidUpdate = prototype.componentDidUpdate;\n\n    prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n      prevProps,\n      prevState,\n      maybeSnapshot\n    ) {\n      // 16.3+ will not execute our will-update method;\n      // It will pass a snapshot value to did-update though.\n      // Older versions will require our polyfilled will-update value.\n      // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n      // Because for <= 15.x versions this might be a \"prevContext\" object.\n      // We also can't just check \"__reactInternalSnapshot\",\n      // Because get-snapshot might return a falsy value.\n      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n      var snapshot = this.__reactInternalSnapshotFlag\n        ? this.__reactInternalSnapshot\n        : maybeSnapshot;\n\n      componentDidUpdate.call(this, prevProps, prevState, snapshot);\n    };\n  }\n\n  return Component;\n}\n\nexport { polyfill };\n","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n  return string.replace(rHyphen, function (_, chr) {\n    return chr.toUpperCase();\n  });\n}","import classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1);\n\n// TODO: emstricten & fix the typing here! `createWithBsPrefix<TElementType>...`\nexport default function createWithBsPrefix(prefix, {\n  displayName = pascalCase(prefix),\n  Component,\n  defaultProps\n} = {}) {\n  const BsComponent = /*#__PURE__*/React.forwardRef(({\n    className,\n    bsPrefix,\n    as: Tag = Component || 'div',\n    ...props\n  }, ref) => {\n    const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n    return /*#__PURE__*/_jsx(Tag, {\n      ref: ref,\n      className: classNames(className, resolvedPrefix),\n      ...props\n    });\n  });\n  BsComponent.defaultProps = defaultProps;\n  BsComponent.displayName = displayName;\n  return BsComponent;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarBrand = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  as,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-brand');\n  const Component = as || (props.href ? 'a' : 'span');\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ref: ref,\n    className: classNames(className, bsPrefix)\n  });\n});\nNavbarBrand.displayName = 'NavbarBrand';\nexport default NavbarBrand;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n  return node && node.ownerDocument || document;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n  return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n  var doc = ownerDocument(node);\n  return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n  return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n  return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n  var css = '';\n  var transforms = '';\n\n  if (typeof property === 'string') {\n    return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n  }\n\n  Object.keys(property).forEach(function (key) {\n    var value = property[key];\n\n    if (!value && value !== 0) {\n      node.style.removeProperty(hyphenate(key));\n    } else if (isTransform(key)) {\n      transforms += key + \"(\" + value + \") \";\n    } else {\n      css += hyphenate(key) + \": \" + value + \";\";\n    }\n  });\n\n  if (transforms) {\n    css += \"transform: \" + transforms + \";\";\n  }\n\n  node.style.cssText += \";\" + css;\n}\n\nexport default style;","export default {\n  disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  } // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n  ;\n\n  var _proto = Transition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      if (nextStatus === ENTERING) {\n        this.performEnter(mounting);\n      } else {\n        this.performExit();\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n\n    var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n        maybeNode = _ref2[0],\n        maybeAppearing = _ref2[1];\n\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || config.disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onEnter(maybeNode, maybeAppearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(maybeNode, maybeAppearing);\n\n      _this2.onTransitionEnd(enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(maybeNode, maybeAppearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit() {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts();\n    var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n    if (!exit || config.disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onExit(maybeNode);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(maybeNode);\n\n      _this3.onTransitionEnd(timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(maybeNode);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n    this.setNextCallback(handler);\n    var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n          maybeNode = _ref3[0],\n          maybeNextCallback = _ref3[1];\n\n      this.props.addEndListener(maybeNode, maybeNextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        _in = _this$props.in,\n        _mountOnEnter = _this$props.mountOnEnter,\n        _unmountOnExit = _this$props.unmountOnExit,\n        _appear = _this$props.appear,\n        _enter = _this$props.enter,\n        _exit = _this$props.exit,\n        _timeout = _this$props.timeout,\n        _addEndListener = _this$props.addEndListener,\n        _onEnter = _this$props.onEnter,\n        _onEntering = _this$props.onEntering,\n        _onEntered = _this$props.onEntered,\n        _onExit = _this$props.onExit,\n        _onExiting = _this$props.onExiting,\n        _onExited = _this$props.onExited,\n        _nodeRef = _this$props.nodeRef,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n    return (\n      /*#__PURE__*/\n      // allows for nested Transitions\n      React.createElement(TransitionGroupContext.Provider, {\n        value: null\n      }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n    );\n  };\n\n  return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A React reference to DOM element that need to transition:\n   * https://stackoverflow.com/a/51127130/4671932\n   *\n   *   - When `nodeRef` prop is used, `node` is not passed to callback functions\n   *      (e.g. `onEnter`) because user already has direct access to the node.\n   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n   *     `nodeRef` need to be provided to `Transition` with changed `key` prop\n   *     (see\n   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n   */\n  nodeRef: PropTypes.shape({\n    current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n      var value = propValue[key];\n      return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n    }\n  }),\n\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * By default the child component does not perform the enter transition when\n   * it first mounts, regardless of the value of `in`. If you want this\n   * behavior, set both `appear` and `in` to `true`.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. Timeouts are still used as a fallback if provided.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n  var options = {\n    get passive() {\n      return optionsSupported = true;\n    },\n\n    get once() {\n      // eslint-disable-next-line no-multi-assign\n      return onceSupported = optionsSupported = true;\n    }\n\n  };\n\n  if (canUseDOM) {\n    window.addEventListener('test', options, options);\n    window.removeEventListener('test', options, true);\n  }\n} catch (e) {\n  /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n  if (options && typeof options !== 'boolean' && !onceSupported) {\n    var once = options.once,\n        capture = options.capture;\n    var wrappedHandler = handler;\n\n    if (!onceSupported && once) {\n      wrappedHandler = handler.__once || function onceHandler(event) {\n        this.removeEventListener(eventName, onceHandler, capture);\n        handler.call(this, event);\n      };\n\n      handler.__once = wrappedHandler;\n    }\n\n    node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n  }\n\n  node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n  var capture = options && typeof options !== 'boolean' ? options.capture : options;\n  node.removeEventListener(eventName, handler, capture);\n\n  if (handler.__once) {\n    node.removeEventListener(eventName, handler.__once, capture);\n  }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n  addEventListener(node, eventName, handler, options);\n  return function () {\n    removeEventListener(node, eventName, handler, options);\n  };\n}\n\nexport default listen;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n  var str = css(node, 'transitionDuration') || '';\n  var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n  return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n  if (padding === void 0) {\n    padding = 5;\n  }\n\n  var called = false;\n  var handle = setTimeout(function () {\n    if (!called) triggerEvent(element, 'transitionend', true);\n  }, duration + padding);\n  var remove = listen(element, 'transitionend', function () {\n    called = true;\n  }, {\n    once: true\n  });\n  return function () {\n    clearTimeout(handle);\n    remove();\n  };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n  if (duration == null) duration = parseDuration(element) || 0;\n  var removeEmulate = emulateTransitionEnd(element, duration, padding);\n  var remove = listen(element, 'transitionend', handler);\n  return function () {\n    removeEmulate();\n    remove();\n  };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n  if (bubbles === void 0) {\n    bubbles = false;\n  }\n\n  if (cancelable === void 0) {\n    cancelable = true;\n  }\n\n  if (node) {\n    var event = document.createEvent('HTMLEvents');\n    event.initEvent(eventName, bubbles, cancelable);\n    node.dispatchEvent(event);\n  }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\n\nfunction parseDuration(node, property) {\n  const str = css(node, property) || '';\n  const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n  return parseFloat(str) * mult;\n}\n\nexport default function transitionEndListener(element, handler) {\n  const duration = parseDuration(element, 'transitionDuration');\n  const delay = parseDuration(element, 'transitionDelay');\n  const remove = transitionEnd(element, e => {\n    if (e.target === element) {\n      remove();\n      handler(e);\n    }\n  }, duration + delay);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction(...funcs) {\n  return funcs.filter(f => f != null).reduce((acc, f) => {\n    if (typeof f !== 'function') {\n      throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n    }\n\n    if (acc === null) return f;\n    return function chainedFunction(...args) {\n      // @ts-ignore\n      acc.apply(this, args); // @ts-ignore\n\n      f.apply(this, args);\n    };\n  }, null);\n}\n\nexport default createChainedFunction;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n  // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n  node.offsetHeight;\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n  return !ref || typeof ref === 'function' ? ref : function (value) {\n    ref.current = value;\n  };\n};\n\nexport function mergeRefs(refA, refB) {\n  var a = toFnRef(refA);\n  var b = toFnRef(refB);\n  return function (value) {\n    if (a) a(value);\n    if (b) b(value);\n  };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n *   const [element, attachRef] = useCallbackRef<HTMLButtonElement>();\n *   const mergedRef = useMergedRefs(ref, attachRef);\n *\n *   return <button ref={mergedRef} {...props}/>\n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\n\nfunction useMergedRefs(refA, refB) {\n  return useMemo(function () {\n    return mergeRefs(refA, refB);\n  }, [refA, refB]);\n}\n\nexport default useMergedRefs;","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n  if (componentOrElement && 'setState' in componentOrElement) {\n    return ReactDOM.findDOMNode(componentOrElement);\n  }\n\n  return componentOrElement != null ? componentOrElement : null;\n}","import React, { useCallback, useRef } from 'react';\nimport Transition from 'react-transition-group/Transition';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst TransitionWrapper = /*#__PURE__*/React.forwardRef(({\n  onEnter,\n  onEntering,\n  onEntered,\n  onExit,\n  onExiting,\n  onExited,\n  addEndListener,\n  children,\n  childRef,\n  ...props\n}, ref) => {\n  const nodeRef = useRef(null);\n  const mergedRef = useMergedRefs(nodeRef, childRef);\n\n  const attachRef = r => {\n    mergedRef(safeFindDOMNode(r));\n  };\n\n  const normalize = callback => param => {\n    if (callback && nodeRef.current) {\n      callback(nodeRef.current, param);\n    }\n  };\n  /* eslint-disable react-hooks/exhaustive-deps */\n\n\n  const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n  const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n  const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n  const handleExit = useCallback(normalize(onExit), [onExit]);\n  const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n  const handleExited = useCallback(normalize(onExited), [onExited]);\n  const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n  /* eslint-enable react-hooks/exhaustive-deps */\n\n  return /*#__PURE__*/_jsx(Transition, {\n    ref: ref,\n    ...props,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    addEndListener: handleAddEndListener,\n    nodeRef: nodeRef,\n    children: typeof children === 'function' ? (status, innerProps) => children(status, { ...innerProps,\n      ref: attachRef\n    }) : /*#__PURE__*/React.cloneElement(children, {\n      ref: attachRef\n    })\n  });\n});\nexport default TransitionWrapper;","import classNames from 'classnames';\nimport css from 'dom-helpers/css';\nimport React, { useMemo } from 'react';\nimport { ENTERED, ENTERING, EXITED, EXITING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport createChainedFunction from './createChainedFunction';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MARGINS = {\n  height: ['marginTop', 'marginBottom'],\n  width: ['marginLeft', 'marginRight']\n};\n\nfunction getDefaultDimensionValue(dimension, elem) {\n  const offset = `offset${dimension[0].toUpperCase()}${dimension.slice(1)}`;\n  const value = elem[offset];\n  const margins = MARGINS[dimension];\n  return value + // @ts-ignore\n  parseInt(css(elem, margins[0]), 10) + // @ts-ignore\n  parseInt(css(elem, margins[1]), 10);\n}\n\nconst collapseStyles = {\n  [EXITED]: 'collapse',\n  [EXITING]: 'collapsing',\n  [ENTERING]: 'collapsing',\n  [ENTERED]: 'collapse show'\n};\nconst defaultProps = {\n  in: false,\n  timeout: 300,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  getDimensionValue: getDefaultDimensionValue\n};\nconst Collapse = /*#__PURE__*/React.forwardRef(({\n  onEnter,\n  onEntering,\n  onEntered,\n  onExit,\n  onExiting,\n  className,\n  children,\n  dimension = 'height',\n  getDimensionValue = getDefaultDimensionValue,\n  ...props\n}, ref) => {\n  /* Compute dimension */\n  const computedDimension = typeof dimension === 'function' ? dimension() : dimension;\n  /* -- Expanding -- */\n\n  const handleEnter = useMemo(() => createChainedFunction(elem => {\n    elem.style[computedDimension] = '0';\n  }, onEnter), [computedDimension, onEnter]);\n  const handleEntering = useMemo(() => createChainedFunction(elem => {\n    const scroll = `scroll${computedDimension[0].toUpperCase()}${computedDimension.slice(1)}`;\n    elem.style[computedDimension] = `${elem[scroll]}px`;\n  }, onEntering), [computedDimension, onEntering]);\n  const handleEntered = useMemo(() => createChainedFunction(elem => {\n    elem.style[computedDimension] = null;\n  }, onEntered), [computedDimension, onEntered]);\n  /* -- Collapsing -- */\n\n  const handleExit = useMemo(() => createChainedFunction(elem => {\n    elem.style[computedDimension] = `${getDimensionValue(computedDimension, elem)}px`;\n    triggerBrowserReflow(elem);\n  }, onExit), [onExit, getDimensionValue, computedDimension]);\n  const handleExiting = useMemo(() => createChainedFunction(elem => {\n    elem.style[computedDimension] = null;\n  }, onExiting), [computedDimension, onExiting]);\n  return /*#__PURE__*/_jsx(TransitionWrapper, {\n    ref: ref,\n    addEndListener: transitionEndListener,\n    ...props,\n    \"aria-expanded\": props.role ? props.in : null,\n    onEnter: handleEnter,\n    onEntering: handleEntering,\n    onEntered: handleEntered,\n    onExit: handleExit,\n    onExiting: handleExiting,\n    childRef: children.ref,\n    children: (state, innerProps) => /*#__PURE__*/React.cloneElement(children, { ...innerProps,\n      className: classNames(className, children.props.className, collapseStyles[state], computedDimension === 'width' && 'collapse-horizontal')\n    })\n  });\n}); // @ts-ignore\n\n// @ts-ignore\nCollapse.defaultProps = defaultProps;\nexport default Collapse;","import * as React from 'react'; // TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;","import * as React from 'react';\nimport { useContext } from 'react';\nimport Collapse from './Collapse';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarCollapse = /*#__PURE__*/React.forwardRef(({\n  children,\n  bsPrefix,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-collapse');\n  const context = useContext(NavbarContext);\n  return /*#__PURE__*/_jsx(Collapse, {\n    in: !!(context && context.expanded),\n    ...props,\n    children: /*#__PURE__*/_jsx(\"div\", {\n      ref: ref,\n      className: bsPrefix,\n      children: children\n    })\n  });\n});\nNavbarCollapse.displayName = 'NavbarCollapse';\nexport default NavbarCollapse;","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n  var ref = useRef(value);\n  useEffect(function () {\n    ref.current = value;\n  }, [value]);\n  return ref;\n}\n\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n  var ref = useCommittedRef(fn);\n  return useCallback(function () {\n    return ref.current && ref.current.apply(ref, arguments);\n  }, [ref]);\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  label: 'Toggle navigation'\n};\nconst NavbarToggle = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  children,\n  label,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'button',\n  onClick,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-toggler');\n  const {\n    onToggle,\n    expanded\n  } = useContext(NavbarContext) || {};\n  const handleClick = useEventCallback(e => {\n    if (onClick) onClick(e);\n    if (onToggle) onToggle();\n  });\n\n  if (Component === 'button') {\n    props.type = 'button';\n  }\n\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ref: ref,\n    onClick: handleClick,\n    \"aria-label\": label,\n    className: classNames(className, bsPrefix, !expanded && 'collapsed'),\n    children: children || /*#__PURE__*/_jsx(\"span\", {\n      className: `${bsPrefix}-icon`\n    })\n  });\n});\nNavbarToggle.displayName = 'NavbarToggle';\nNavbarToggle.defaultProps = defaultProps;\nexport default NavbarToggle;","import ownerDocument from './ownerDocument';\n/**\n * Returns the actively focused element safely.\n *\n * @param doc the document to check\n */\n\nexport default function activeElement(doc) {\n  if (doc === void 0) {\n    doc = ownerDocument();\n  }\n\n  // Support: IE 9 only\n  // IE9 throws an \"Unspecified error\" accessing document.activeElement from an <iframe>\n  try {\n    var active = doc.activeElement; // IE11 returns a seemingly empty object in some cases when accessing\n    // document.activeElement from an <iframe>\n\n    if (!active || !active.nodeName) return null;\n    return active;\n  } catch (e) {\n    /* ie throws if no active element */\n    return doc.body;\n  }\n}","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n  // HTML DOM and SVG DOM may have different support levels,\n  // so we need to check on context instead of a document root element.\n  if (context.contains) return context.contains(node);\n  if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import { useRef, useEffect } from 'react';\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n *   fetchdata().then((newData) => {\n *      if (isMounted()) {\n *        setData(newData);\n *      }\n *   })\n * })\n * ```\n */\n\nexport default function useMounted() {\n  var mounted = useRef(true);\n  var isMounted = useRef(function () {\n    return mounted.current;\n  });\n  useEffect(function () {\n    return function () {\n      mounted.current = false;\n    };\n  }, []);\n  return isMounted.current;\n}","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\n\nexport default function useWillUnmount(fn) {\n  var onUnmount = useUpdatedRef(fn);\n  useEffect(function () {\n    return function () {\n      return onUnmount.current();\n    };\n  }, []);\n}","import { useRef } from 'react';\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\n\nexport default function useUpdatedRef(value) {\n  var valueRef = useRef(value);\n  valueRef.current = value;\n  return valueRef;\n}","import { useEffect, useRef } from 'react';\n/**\n * Store the last of some value. Tracked via a `Ref` only updating it\n * after the component renders.\n *\n * Helpful if you need to compare a prop value to it's previous value during render.\n *\n * ```ts\n * function Component(props) {\n *   const lastProps = usePrevious(props)\n *\n *   if (lastProps.foo !== props.foo)\n *     resetValueFromProps(props.foo)\n * }\n * ```\n *\n * @param value the value to track\n */\n\nexport default function usePrevious(value) {\n  var ref = useRef(null);\n  useEffect(function () {\n    ref.current = value;\n  });\n  return ref.current;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export const ATTRIBUTE_PREFIX = `data-rr-ui-`;\nexport const PROPERTY_PREFIX = `rrUi`;\nexport function dataAttr(property) {\n  return `${ATTRIBUTE_PREFIX}${property}`;\n}\nexport function dataProp(property) {\n  return `${PROPERTY_PREFIX}${property}`;\n}","import css from 'dom-helpers/css';\nimport { dataAttr } from './DataKey';\nimport getBodyScrollbarWidth from './getScrollbarWidth';\nexport const OPEN_DATA_ATTRIBUTE = dataAttr('modal-open');\n/**\n * Manages a stack of Modals as well as ensuring\n * body scrolling is is disabled and padding accounted for\n */\n\nclass ModalManager {\n  constructor({\n    ownerDocument,\n    handleContainerOverflow = true,\n    isRTL = false\n  } = {}) {\n    this.handleContainerOverflow = handleContainerOverflow;\n    this.isRTL = isRTL;\n    this.modals = [];\n    this.ownerDocument = ownerDocument;\n  }\n\n  getScrollbarWidth() {\n    return getBodyScrollbarWidth(this.ownerDocument);\n  }\n\n  getElement() {\n    return (this.ownerDocument || document).body;\n  }\n\n  setModalAttributes(_modal) {// For overriding\n  }\n\n  removeModalAttributes(_modal) {// For overriding\n  }\n\n  setContainerStyle(containerState) {\n    const style = {\n      overflow: 'hidden'\n    }; // we are only interested in the actual `style` here\n    // because we will override it\n\n    const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n    const container = this.getElement();\n    containerState.style = {\n      overflow: container.style.overflow,\n      [paddingProp]: container.style[paddingProp]\n    };\n\n    if (containerState.scrollBarWidth) {\n      // use computed style, here to get the real padding\n      // to add our scrollbar width\n      style[paddingProp] = `${parseInt(css(container, paddingProp) || '0', 10) + containerState.scrollBarWidth}px`;\n    }\n\n    container.setAttribute(OPEN_DATA_ATTRIBUTE, '');\n    css(container, style);\n  }\n\n  reset() {\n    [...this.modals].forEach(m => this.remove(m));\n  }\n\n  removeContainerStyle(containerState) {\n    const container = this.getElement();\n    container.removeAttribute(OPEN_DATA_ATTRIBUTE);\n    Object.assign(container.style, containerState.style);\n  }\n\n  add(modal) {\n    let modalIdx = this.modals.indexOf(modal);\n\n    if (modalIdx !== -1) {\n      return modalIdx;\n    }\n\n    modalIdx = this.modals.length;\n    this.modals.push(modal);\n    this.setModalAttributes(modal);\n\n    if (modalIdx !== 0) {\n      return modalIdx;\n    }\n\n    this.state = {\n      scrollBarWidth: this.getScrollbarWidth(),\n      style: {}\n    };\n\n    if (this.handleContainerOverflow) {\n      this.setContainerStyle(this.state);\n    }\n\n    return modalIdx;\n  }\n\n  remove(modal) {\n    const modalIdx = this.modals.indexOf(modal);\n\n    if (modalIdx === -1) {\n      return;\n    }\n\n    this.modals.splice(modalIdx, 1); // if that was the last modal in a container,\n    // clean up the container\n\n    if (!this.modals.length && this.handleContainerOverflow) {\n      this.removeContainerStyle(this.state);\n    }\n\n    this.removeModalAttributes(modal);\n  }\n\n  isTopModal(modal) {\n    return !!this.modals.length && this.modals[this.modals.length - 1] === modal;\n  }\n\n}\n\nexport default ModalManager;","/**\n * Get the width of the vertical window scrollbar if it's visible\n */\nexport default function getBodyScrollbarWidth(ownerDocument = document) {\n  const window = ownerDocument.defaultView;\n  return Math.abs(window.innerWidth - ownerDocument.documentElement.clientWidth);\n}","import { createContext, useContext } from 'react';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nconst Context = /*#__PURE__*/createContext(canUseDOM ? window : undefined);\nexport const WindowProvider = Context.Provider;\n/**\n * The document \"window\" placed in React context. Helpful for determining\n * SSR context, or when rendering into an iframe.\n *\n * @returns the current window\n */\n\nexport default function useWindow() {\n  return useContext(Context);\n}","import ownerDocument from 'dom-helpers/ownerDocument';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport { useState, useEffect } from 'react';\nimport useWindow from './useWindow';\nexport const resolveContainerRef = (ref, document) => {\n  var _ref;\n\n  if (!canUseDOM) return null;\n  if (ref == null) return (document || ownerDocument()).body;\n  if (typeof ref === 'function') ref = ref();\n  if (ref && 'current' in ref) ref = ref.current;\n  if ((_ref = ref) != null && _ref.nodeType) return ref || null;\n  return null;\n};\nexport default function useWaitForDOMRef(ref, onResolved) {\n  const window = useWindow();\n  const [resolvedRef, setRef] = useState(() => resolveContainerRef(ref, window == null ? void 0 : window.document));\n\n  if (!resolvedRef) {\n    const earlyRef = resolveContainerRef(ref);\n    if (earlyRef) setRef(earlyRef);\n  }\n\n  useEffect(() => {\n    if (onResolved && resolvedRef) {\n      onResolved(resolvedRef);\n    }\n  }, [onResolved, resolvedRef]);\n  useEffect(() => {\n    const nextRef = resolveContainerRef(ref);\n\n    if (nextRef !== resolvedRef) {\n      setRef(nextRef);\n    }\n  }, [ref, resolvedRef]);\n  return resolvedRef;\n}","const _excluded = [\"show\", \"role\", \"className\", \"style\", \"children\", \"backdrop\", \"keyboard\", \"onBackdropClick\", \"onEscapeKeyDown\", \"transition\", \"backdropTransition\", \"autoFocus\", \"enforceFocus\", \"restoreFocus\", \"restoreFocusOptions\", \"renderDialog\", \"renderBackdrop\", \"manager\", \"container\", \"onShow\", \"onHide\", \"onExit\", \"onExited\", \"onExiting\", \"onEnter\", \"onEntering\", \"onEntered\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint-disable @typescript-eslint/no-use-before-define, react/prop-types */\nimport activeElement from 'dom-helpers/activeElement';\nimport contains from 'dom-helpers/contains';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport listen from 'dom-helpers/listen';\nimport { useState, useRef, useCallback, useImperativeHandle, forwardRef, useEffect } from 'react';\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport useMounted from '@restart/hooks/useMounted';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport ModalManager from './ModalManager';\nimport useWaitForDOMRef from './useWaitForDOMRef';\nimport useWindow from './useWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nlet manager;\n\nfunction getManager(window) {\n  if (!manager) manager = new ModalManager({\n    ownerDocument: window == null ? void 0 : window.document\n  });\n  return manager;\n}\n\nfunction useModalManager(provided) {\n  const window = useWindow();\n  const modalManager = provided || getManager(window);\n  const modal = useRef({\n    dialog: null,\n    backdrop: null\n  });\n  return Object.assign(modal.current, {\n    add: () => modalManager.add(modal.current),\n    remove: () => modalManager.remove(modal.current),\n    isTopModal: () => modalManager.isTopModal(modal.current),\n    setDialogRef: useCallback(ref => {\n      modal.current.dialog = ref;\n    }, []),\n    setBackdropRef: useCallback(ref => {\n      modal.current.backdrop = ref;\n    }, [])\n  });\n}\n\nconst Modal = /*#__PURE__*/forwardRef((_ref, ref) => {\n  let {\n    show = false,\n    role = 'dialog',\n    className,\n    style,\n    children,\n    backdrop = true,\n    keyboard = true,\n    onBackdropClick,\n    onEscapeKeyDown,\n    transition,\n    backdropTransition,\n    autoFocus = true,\n    enforceFocus = true,\n    restoreFocus = true,\n    restoreFocusOptions,\n    renderDialog,\n    renderBackdrop = props => /*#__PURE__*/_jsx(\"div\", Object.assign({}, props)),\n    manager: providedManager,\n    container: containerRef,\n    onShow,\n    onHide = () => {},\n    onExit,\n    onExited,\n    onExiting,\n    onEnter,\n    onEntering,\n    onEntered\n  } = _ref,\n      rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const container = useWaitForDOMRef(containerRef);\n  const modal = useModalManager(providedManager);\n  const isMounted = useMounted();\n  const prevShow = usePrevious(show);\n  const [exited, setExited] = useState(!show);\n  const lastFocusRef = useRef(null);\n  useImperativeHandle(ref, () => modal, [modal]);\n\n  if (canUseDOM && !prevShow && show) {\n    lastFocusRef.current = activeElement();\n  }\n\n  if (!transition && !show && !exited) {\n    setExited(true);\n  } else if (show && exited) {\n    setExited(false);\n  }\n\n  const handleShow = useEventCallback(() => {\n    modal.add();\n    removeKeydownListenerRef.current = listen(document, 'keydown', handleDocumentKeyDown);\n    removeFocusListenerRef.current = listen(document, 'focus', // the timeout is necessary b/c this will run before the new modal is mounted\n    // and so steals focus from it\n    () => setTimeout(handleEnforceFocus), true);\n\n    if (onShow) {\n      onShow();\n    } // autofocus after onShow to not trigger a focus event for previous\n    // modals before this one is shown.\n\n\n    if (autoFocus) {\n      const currentActiveElement = activeElement(document);\n\n      if (modal.dialog && currentActiveElement && !contains(modal.dialog, currentActiveElement)) {\n        lastFocusRef.current = currentActiveElement;\n        modal.dialog.focus();\n      }\n    }\n  });\n  const handleHide = useEventCallback(() => {\n    modal.remove();\n    removeKeydownListenerRef.current == null ? void 0 : removeKeydownListenerRef.current();\n    removeFocusListenerRef.current == null ? void 0 : removeFocusListenerRef.current();\n\n    if (restoreFocus) {\n      var _lastFocusRef$current;\n\n      // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)\n      (_lastFocusRef$current = lastFocusRef.current) == null ? void 0 : _lastFocusRef$current.focus == null ? void 0 : _lastFocusRef$current.focus(restoreFocusOptions);\n      lastFocusRef.current = null;\n    }\n  }); // TODO: try and combine these effects: https://github.com/react-bootstrap/react-overlays/pull/794#discussion_r409954120\n  // Show logic when:\n  //  - show is `true` _and_ `container` has resolved\n\n  useEffect(() => {\n    if (!show || !container) return;\n    handleShow();\n  }, [show, container,\n  /* should never change: */\n  handleShow]); // Hide cleanup logic when:\n  //  - `exited` switches to true\n  //  - component unmounts;\n\n  useEffect(() => {\n    if (!exited) return;\n    handleHide();\n  }, [exited, handleHide]);\n  useWillUnmount(() => {\n    handleHide();\n  }); // --------------------------------\n\n  const handleEnforceFocus = useEventCallback(() => {\n    if (!enforceFocus || !isMounted() || !modal.isTopModal()) {\n      return;\n    }\n\n    const currentActiveElement = activeElement();\n\n    if (modal.dialog && currentActiveElement && !contains(modal.dialog, currentActiveElement)) {\n      modal.dialog.focus();\n    }\n  });\n  const handleBackdropClick = useEventCallback(e => {\n    if (e.target !== e.currentTarget) {\n      return;\n    }\n\n    onBackdropClick == null ? void 0 : onBackdropClick(e);\n\n    if (backdrop === true) {\n      onHide();\n    }\n  });\n  const handleDocumentKeyDown = useEventCallback(e => {\n    if (keyboard && e.keyCode === 27 && modal.isTopModal()) {\n      onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(e);\n\n      if (!e.defaultPrevented) {\n        onHide();\n      }\n    }\n  });\n  const removeFocusListenerRef = useRef();\n  const removeKeydownListenerRef = useRef();\n\n  const handleHidden = (...args) => {\n    setExited(true);\n    onExited == null ? void 0 : onExited(...args);\n  };\n\n  const Transition = transition;\n\n  if (!container || !(show || Transition && !exited)) {\n    return null;\n  }\n\n  const dialogProps = Object.assign({\n    role,\n    ref: modal.setDialogRef,\n    // apparently only works on the dialog role element\n    'aria-modal': role === 'dialog' ? true : undefined\n  }, rest, {\n    style,\n    className,\n    tabIndex: -1\n  });\n  let dialog = renderDialog ? renderDialog(dialogProps) : /*#__PURE__*/_jsx(\"div\", Object.assign({}, dialogProps, {\n    children: /*#__PURE__*/React.cloneElement(children, {\n      role: 'document'\n    })\n  }));\n\n  if (Transition) {\n    dialog = /*#__PURE__*/_jsx(Transition, {\n      appear: true,\n      unmountOnExit: true,\n      in: !!show,\n      onExit: onExit,\n      onExiting: onExiting,\n      onExited: handleHidden,\n      onEnter: onEnter,\n      onEntering: onEntering,\n      onEntered: onEntered,\n      children: dialog\n    });\n  }\n\n  let backdropElement = null;\n\n  if (backdrop) {\n    const BackdropTransition = backdropTransition;\n    backdropElement = renderBackdrop({\n      ref: modal.setBackdropRef,\n      onClick: handleBackdropClick\n    });\n\n    if (BackdropTransition) {\n      backdropElement = /*#__PURE__*/_jsx(BackdropTransition, {\n        appear: true,\n        in: !!show,\n        children: backdropElement\n      });\n    }\n  }\n\n  return /*#__PURE__*/_jsx(_Fragment, {\n    children: /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/_jsxs(_Fragment, {\n      children: [backdropElement, dialog]\n    }), container)\n  });\n});\nModal.displayName = 'Modal';\nexport default Object.assign(Modal, {\n  Manager: ModalManager\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { ENTERED, ENTERING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  in: false,\n  timeout: 300,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false\n};\nconst fadeStyles = {\n  [ENTERING]: 'show',\n  [ENTERED]: 'show'\n};\nconst Fade = /*#__PURE__*/React.forwardRef(({\n  className,\n  children,\n  transitionClasses = {},\n  ...props\n}, ref) => {\n  const handleEnter = useCallback((node, isAppearing) => {\n    triggerBrowserReflow(node);\n    props.onEnter == null ? void 0 : props.onEnter(node, isAppearing);\n  }, [props]);\n  return /*#__PURE__*/_jsx(TransitionWrapper, {\n    ref: ref,\n    addEndListener: transitionEndListener,\n    ...props,\n    onEnter: handleEnter,\n    childRef: children.ref,\n    children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, { ...innerProps,\n      className: classNames('fade', className, children.props.className, fadeStyles[status], transitionClasses[status])\n    })\n  });\n});\nFade.defaultProps = defaultProps;\nFade.displayName = 'Fade';\nexport default Fade;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('offcanvas-body');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ENTERED, ENTERING, EXITING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport TransitionWrapper from './TransitionWrapper';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false\n};\nconst transitionStyles = {\n  [ENTERING]: 'show',\n  [ENTERED]: 'show'\n};\nconst OffcanvasToggling = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  children,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas');\n  return /*#__PURE__*/_jsx(TransitionWrapper, {\n    ref: ref,\n    addEndListener: transitionEndListener,\n    ...props,\n    childRef: children.ref,\n    children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, { ...innerProps,\n      className: classNames(className, children.props.className, (status === ENTERING || status === EXITING) && `${bsPrefix}-toggling`, transitionStyles[status])\n    })\n  });\n});\nOffcanvasToggling.defaultProps = defaultProps;\nOffcanvasToggling.displayName = 'OffcanvasToggling';\nexport default OffcanvasToggling;","import * as React from 'react';\nconst ModalContext = /*#__PURE__*/React.createContext({\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  onHide() {}\n\n});\nexport default ModalContext;","import PropTypes from 'prop-types';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n  'aria-label': PropTypes.string,\n  onClick: PropTypes.func,\n\n  /**\n   * Render different color variant for the button.\n   *\n   * Omitting this will render the default dark color.\n   */\n  variant: PropTypes.oneOf(['white'])\n};\nconst defaultProps = {\n  'aria-label': 'Close'\n};\nconst CloseButton = /*#__PURE__*/React.forwardRef(({\n  className,\n  variant,\n  ...props\n}, ref) => /*#__PURE__*/_jsx(\"button\", {\n  ref: ref,\n  type: \"button\",\n  className: classNames('btn-close', variant && `btn-close-${variant}`, className),\n  ...props\n}));\nCloseButton.displayName = 'CloseButton';\nCloseButton.propTypes = propTypes;\nCloseButton.defaultProps = defaultProps;\nexport default CloseButton;","import * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport CloseButton from './CloseButton';\nimport ModalContext from './ModalContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst defaultProps = {\n  closeLabel: 'Close',\n  closeButton: false\n};\nconst AbstractModalHeader = /*#__PURE__*/React.forwardRef(({\n  closeLabel,\n  closeVariant,\n  closeButton,\n  onHide,\n  children,\n  ...props\n}, ref) => {\n  const context = useContext(ModalContext);\n  const handleClick = useEventCallback(() => {\n    context == null ? void 0 : context.onHide();\n    onHide == null ? void 0 : onHide();\n  });\n  return /*#__PURE__*/_jsxs(\"div\", {\n    ref: ref,\n    ...props,\n    children: [children, closeButton && /*#__PURE__*/_jsx(CloseButton, {\n      \"aria-label\": closeLabel,\n      variant: closeVariant,\n      onClick: handleClick\n    })]\n  });\n});\nAbstractModalHeader.defaultProps = defaultProps;\nexport default AbstractModalHeader;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  closeLabel: 'Close',\n  closeButton: false\n};\nconst OffcanvasHeader = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas-header');\n  return /*#__PURE__*/_jsx(AbstractModalHeader, {\n    ref: ref,\n    ...props,\n    className: classNames(className, bsPrefix)\n  });\n});\nOffcanvasHeader.displayName = 'OffcanvasHeader';\nOffcanvasHeader.defaultProps = defaultProps;\nexport default OffcanvasHeader;","import * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default (className => /*#__PURE__*/React.forwardRef((p, ref) => /*#__PURE__*/_jsx(\"div\", { ...p,\n  ref: ref,\n  className: classNames(p.className, className)\n})));","import createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nconst DivStyledAsH5 = divWithClassName('h5');\nexport default createWithBsPrefix('offcanvas-title', {\n  Component: DivStyledAsH5\n});","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n  while (!Object.prototype.hasOwnProperty.call(object, property)) {\n    object = getPrototypeOf(object);\n    if (object === null) break;\n  }\n\n  return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n  if (typeof Reflect !== \"undefined\" && Reflect.get) {\n    _get = Reflect.get;\n  } else {\n    _get = function _get(target, property, receiver) {\n      var base = superPropBase(target, property);\n      if (!base) return;\n      var desc = Object.getOwnPropertyDescriptor(base, property);\n\n      if (desc.get) {\n        return desc.get.call(arguments.length < 3 ? target : receiver);\n      }\n\n      return desc.value;\n    };\n  }\n\n  return _get.apply(this, arguments);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);\n  return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n  return toArray(element.querySelectorAll(selector));\n}","function replaceClassName(origClass, classToRemove) {\n  return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else if (typeof element.className === 'string') {\n    element.className = replaceClassName(element.className, className);\n  } else {\n    element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n  }\n}","import addClass from 'dom-helpers/addClass';\nimport css from 'dom-helpers/css';\nimport qsa from 'dom-helpers/querySelectorAll';\nimport removeClass from 'dom-helpers/removeClass';\nimport ModalManager from '@restart/ui/ModalManager';\nconst Selector = {\n  FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n  STICKY_CONTENT: '.sticky-top',\n  NAVBAR_TOGGLER: '.navbar-toggler'\n};\n\nclass BootstrapModalManager extends ModalManager {\n  adjustAndStore(prop, element, adjust) {\n    const actual = element.style[prop]; // TODO: DOMStringMap and CSSStyleDeclaration aren't strictly compatible\n    // @ts-ignore\n\n    element.dataset[prop] = actual;\n    css(element, {\n      [prop]: `${parseFloat(css(element, prop)) + adjust}px`\n    });\n  }\n\n  restore(prop, element) {\n    const value = element.dataset[prop];\n\n    if (value !== undefined) {\n      delete element.dataset[prop];\n      css(element, {\n        [prop]: value\n      });\n    }\n  }\n\n  setContainerStyle(containerState) {\n    super.setContainerStyle(containerState);\n    const container = this.getElement();\n    addClass(container, 'modal-open');\n    if (!containerState.scrollBarWidth) return;\n    const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n    const marginProp = this.isRTL ? 'marginLeft' : 'marginRight';\n    qsa(container, Selector.FIXED_CONTENT).forEach(el => this.adjustAndStore(paddingProp, el, containerState.scrollBarWidth));\n    qsa(container, Selector.STICKY_CONTENT).forEach(el => this.adjustAndStore(marginProp, el, -containerState.scrollBarWidth));\n    qsa(container, Selector.NAVBAR_TOGGLER).forEach(el => this.adjustAndStore(marginProp, el, containerState.scrollBarWidth));\n  }\n\n  removeContainerStyle(containerState) {\n    super.removeContainerStyle(containerState);\n    const container = this.getElement();\n    removeClass(container, 'modal-open');\n    const paddingProp = this.isRTL ? 'paddingLeft' : 'paddingRight';\n    const marginProp = this.isRTL ? 'marginLeft' : 'marginRight';\n    qsa(container, Selector.FIXED_CONTENT).forEach(el => this.restore(paddingProp, el));\n    qsa(container, Selector.STICKY_CONTENT).forEach(el => this.restore(marginProp, el));\n    qsa(container, Selector.NAVBAR_TOGGLER).forEach(el => this.restore(marginProp, el));\n  }\n\n}\n\nlet sharedManager;\nexport function getSharedManager(options) {\n  if (!sharedManager) sharedManager = new BootstrapModalManager(options);\n  return sharedManager;\n}\nexport default BootstrapModalManager;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n  if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","import classNames from 'classnames';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport * as React from 'react';\nimport { useCallback, useContext, useMemo, useRef } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport Fade from './Fade';\nimport OffcanvasBody from './OffcanvasBody';\nimport OffcanvasToggling from './OffcanvasToggling';\nimport ModalContext from './ModalContext';\nimport NavbarContext from './NavbarContext';\nimport OffcanvasHeader from './OffcanvasHeader';\nimport OffcanvasTitle from './OffcanvasTitle';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport BootstrapModalManager, { getSharedManager } from './BootstrapModalManager';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  show: false,\n  backdrop: true,\n  keyboard: true,\n  scroll: false,\n  autoFocus: true,\n  enforceFocus: true,\n  restoreFocus: true,\n  placement: 'start'\n};\n\nfunction DialogTransition(props) {\n  return /*#__PURE__*/_jsx(OffcanvasToggling, { ...props\n  });\n}\n\nfunction BackdropTransition(props) {\n  return /*#__PURE__*/_jsx(Fade, { ...props\n  });\n}\n\nconst Offcanvas = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  children,\n  'aria-labelledby': ariaLabelledby,\n  placement,\n\n  /* BaseModal props */\n  show,\n  backdrop,\n  keyboard,\n  scroll,\n  onEscapeKeyDown,\n  onShow,\n  onHide,\n  container,\n  autoFocus,\n  enforceFocus,\n  restoreFocus,\n  restoreFocusOptions,\n  onEntered,\n  onExit,\n  onExiting,\n  onEnter,\n  onEntering,\n  onExited,\n  backdropClassName,\n  manager: propsManager,\n  ...props\n}, ref) => {\n  const modalManager = useRef();\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'offcanvas');\n  const {\n    onToggle\n  } = useContext(NavbarContext) || {};\n  const handleHide = useEventCallback(() => {\n    onToggle == null ? void 0 : onToggle();\n    onHide == null ? void 0 : onHide();\n  });\n  const modalContext = useMemo(() => ({\n    onHide: handleHide\n  }), [handleHide]);\n\n  function getModalManager() {\n    if (propsManager) return propsManager;\n\n    if (scroll) {\n      // Have to use a different modal manager since the shared\n      // one handles overflow.\n      if (!modalManager.current) modalManager.current = new BootstrapModalManager({\n        handleContainerOverflow: false\n      });\n      return modalManager.current;\n    }\n\n    return getSharedManager();\n  }\n\n  const handleEnter = (node, ...args) => {\n    if (node) node.style.visibility = 'visible';\n    onEnter == null ? void 0 : onEnter(node, ...args);\n  };\n\n  const handleExited = (node, ...args) => {\n    if (node) node.style.visibility = '';\n    onExited == null ? void 0 : onExited(...args);\n  };\n\n  const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", { ...backdropProps,\n    className: classNames(`${bsPrefix}-backdrop`, backdropClassName)\n  }), [backdropClassName, bsPrefix]);\n\n  const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n    role: \"dialog\",\n    ...dialogProps,\n    ...props,\n    className: classNames(className, bsPrefix, `${bsPrefix}-${placement}`),\n    \"aria-labelledby\": ariaLabelledby,\n    children: children\n  });\n\n  return /*#__PURE__*/_jsx(ModalContext.Provider, {\n    value: modalContext,\n    children: /*#__PURE__*/_jsx(BaseModal, {\n      show: show,\n      ref: ref,\n      backdrop: backdrop,\n      container: container,\n      keyboard: keyboard,\n      autoFocus: autoFocus,\n      enforceFocus: enforceFocus && !scroll,\n      restoreFocus: restoreFocus,\n      restoreFocusOptions: restoreFocusOptions,\n      onEscapeKeyDown: onEscapeKeyDown,\n      onShow: onShow,\n      onHide: handleHide,\n      onEnter: handleEnter,\n      onEntering: onEntering,\n      onEntered: onEntered,\n      onExit: onExit,\n      onExiting: onExiting,\n      onExited: handleExited,\n      manager: getModalManager(),\n      transition: DialogTransition,\n      backdropTransition: BackdropTransition,\n      renderBackdrop: renderBackdrop,\n      renderDialog: renderDialog\n    })\n  });\n});\nOffcanvas.displayName = 'Offcanvas';\nOffcanvas.defaultProps = defaultProps;\nexport default Object.assign(Offcanvas, {\n  Body: OffcanvasBody,\n  Header: OffcanvasHeader,\n  Title: OffcanvasTitle\n});","import * as React from 'react';\nimport { useContext } from 'react';\nimport Offcanvas from './Offcanvas';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarOffcanvas = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const context = useContext(NavbarContext);\n  return /*#__PURE__*/_jsx(Offcanvas, {\n    ref: ref,\n    show: !!(context != null && context.expanded),\n    ...props\n  });\n});\nNavbarOffcanvas.displayName = 'NavbarOffcanvas';\nexport default NavbarOffcanvas;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport SelectableContext from '@restart/ui/SelectableContext';\nimport { useUncontrolled } from 'uncontrollable';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport NavbarBrand from './NavbarBrand';\nimport NavbarCollapse from './NavbarCollapse';\nimport NavbarToggle from './NavbarToggle';\nimport NavbarOffcanvas from './NavbarOffcanvas';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarText = createWithBsPrefix('navbar-text', {\n  Component: 'span'\n});\nconst defaultProps = {\n  expand: true,\n  variant: 'light',\n  collapseOnSelect: false\n};\nconst Navbar = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n    bsPrefix: initialBsPrefix,\n    expand,\n    variant,\n    bg,\n    fixed,\n    sticky,\n    className,\n    // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n    as: Component = 'nav',\n    expanded,\n    onToggle,\n    onSelect,\n    collapseOnSelect,\n    ...controlledProps\n  } = useUncontrolled(props, {\n    expanded: 'onToggle'\n  });\n  const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'navbar');\n  const handleCollapse = useCallback((...args) => {\n    onSelect == null ? void 0 : onSelect(...args);\n\n    if (collapseOnSelect && expanded) {\n      onToggle == null ? void 0 : onToggle(false);\n    }\n  }, [onSelect, collapseOnSelect, expanded, onToggle]); // will result in some false positives but that seems better\n  // than false negatives. strict `undefined` check allows explicit\n  // \"nulling\" of the role if the user really doesn't want one\n\n  if (controlledProps.role === undefined && Component !== 'nav') {\n    controlledProps.role = 'navigation';\n  }\n\n  let expandClass = `${bsPrefix}-expand`;\n  if (typeof expand === 'string') expandClass = `${expandClass}-${expand}`;\n  const navbarContext = useMemo(() => ({\n    onToggle: () => onToggle == null ? void 0 : onToggle(!expanded),\n    bsPrefix,\n    expanded: !!expanded\n  }), [bsPrefix, expanded, onToggle]);\n  return /*#__PURE__*/_jsx(NavbarContext.Provider, {\n    value: navbarContext,\n    children: /*#__PURE__*/_jsx(SelectableContext.Provider, {\n      value: handleCollapse,\n      children: /*#__PURE__*/_jsx(Component, {\n        ref: ref,\n        ...controlledProps,\n        className: classNames(className, bsPrefix, expand && expandClass, variant && `${bsPrefix}-${variant}`, bg && `bg-${bg}`, sticky && `sticky-${sticky}`, fixed && `fixed-${fixed}`)\n      })\n    })\n  });\n});\nNavbar.defaultProps = defaultProps;\nNavbar.displayName = 'Navbar';\nexport default Object.assign(Navbar, {\n  Brand: NavbarBrand,\n  Collapse: NavbarCollapse,\n  Offcanvas: NavbarOffcanvas,\n  Text: NavbarText,\n  Toggle: NavbarToggle\n});","import { useReducer } from 'react';\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n *  forceUpdate()\n * }, [forceUpdate])\n *\n * return <button type=\"button\" onClick={updateOnClick}>Hi there</button>\n * ```\n */\n\nexport default function useForceUpdate() {\n  // The toggling state value is designed to defeat React optimizations for skipping\n  // updates when they are stricting equal to the last state value\n  var _useReducer = useReducer(function (state) {\n    return !state;\n  }, false),\n      dispatch = _useReducer[1];\n\n  return dispatch;\n}","import * as React from 'react';\nconst NavContext = /*#__PURE__*/React.createContext(null);\nNavContext.displayName = 'NavContext';\nexport default NavContext;","import * as React from 'react';\nconst TabContext = /*#__PURE__*/React.createContext(null);\nexport default TabContext;","const _excluded = [\"as\", \"disabled\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n  return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n  tagName,\n  disabled,\n  href,\n  target,\n  rel,\n  onClick,\n  tabIndex = 0,\n  type\n}) {\n  if (!tagName) {\n    if (href != null || target != null || rel != null) {\n      tagName = 'a';\n    } else {\n      tagName = 'button';\n    }\n  }\n\n  const meta = {\n    tagName\n  };\n\n  if (tagName === 'button') {\n    return [{\n      type: type || 'button',\n      disabled\n    }, meta];\n  }\n\n  const handleClick = event => {\n    if (disabled || tagName === 'a' && isTrivialHref(href)) {\n      event.preventDefault();\n    }\n\n    if (disabled) {\n      event.stopPropagation();\n      return;\n    }\n\n    onClick == null ? void 0 : onClick(event);\n  };\n\n  const handleKeyDown = event => {\n    if (event.key === ' ') {\n      event.preventDefault();\n      handleClick(event);\n    }\n  };\n\n  if (tagName === 'a') {\n    // Ensure there's a href so Enter can trigger anchor button.\n    href || (href = '#');\n\n    if (disabled) {\n      href = undefined;\n    }\n  }\n\n  return [{\n    role: 'button',\n    // explicitly undefined so that it overrides the props disabled in a spread\n    // e.g. <Tag {...props} {...hookProps} />\n    disabled: undefined,\n    tabIndex: disabled ? undefined : tabIndex,\n    href,\n    target: tagName === 'a' ? target : undefined,\n    'aria-disabled': !disabled ? undefined : disabled,\n    rel: tagName === 'a' ? rel : undefined,\n    onClick: handleClick,\n    onKeyDown: handleKeyDown\n  }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n    as: asProp,\n    disabled\n  } = _ref,\n      props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const [buttonProps, {\n    tagName: Component\n  }] = useButtonProps(Object.assign({\n    tagName: asProp,\n    disabled\n  }, props));\n  return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n    ref: ref\n  }));\n});\nButton.displayName = 'Button';\nexport default Button;","const _excluded = [\"as\", \"active\", \"eventKey\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useNavItem({\n  key,\n  onClick,\n  active,\n  id,\n  role,\n  disabled\n}) {\n  const parentOnSelect = useContext(SelectableContext);\n  const navContext = useContext(NavContext);\n  let isActive = active;\n  const props = {\n    role\n  };\n\n  if (navContext) {\n    if (!role && navContext.role === 'tablist') props.role = 'tab';\n    const contextControllerId = navContext.getControllerId(key != null ? key : null);\n    const contextControlledId = navContext.getControlledId(key != null ? key : null); // @ts-ignore\n\n    props[dataAttr('event-key')] = key;\n    props.id = contextControllerId || id;\n    props['aria-controls'] = contextControlledId;\n    isActive = active == null && key != null ? navContext.activeKey === key : active;\n  }\n\n  if (props.role === 'tab') {\n    if (disabled) {\n      props.tabIndex = -1;\n      props['aria-disabled'] = true;\n    }\n\n    if (isActive) {\n      props['aria-selected'] = isActive;\n    } else {\n      props.tabIndex = -1;\n    }\n  }\n\n  props.onClick = useEventCallback(e => {\n    if (disabled) return;\n    onClick == null ? void 0 : onClick(e);\n\n    if (key == null) {\n      return;\n    }\n\n    if (parentOnSelect && !e.isPropagationStopped()) {\n      parentOnSelect(key, e);\n    }\n  });\n  return [props, {\n    isActive\n  }];\n}\nconst NavItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n    as: Component = Button,\n    active,\n    eventKey\n  } = _ref,\n      options = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const [props, meta] = useNavItem(Object.assign({\n    key: makeEventKey(eventKey, options.href),\n    active\n  }, options)); // @ts-ignore\n\n  props[dataAttr('active')] = meta.isActive;\n  return /*#__PURE__*/_jsx(Component, Object.assign({}, options, props, {\n    ref: ref\n  }));\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","const _excluded = [\"as\", \"onSelect\", \"activeKey\", \"role\", \"onKeyDown\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport qsa from 'dom-helpers/querySelectorAll';\nimport * as React from 'react';\nimport { useContext, useEffect, useRef } from 'react';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport TabContext from './TabContext';\nimport { dataAttr, dataProp } from './DataKey';\nimport NavItem from './NavItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nconst EVENT_KEY_ATTR = dataAttr('event-key');\nconst Nav = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n    // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n    as: Component = 'div',\n    onSelect,\n    activeKey,\n    role,\n    onKeyDown\n  } = _ref,\n      props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  // A ref and forceUpdate for refocus, b/c we only want to trigger when needed\n  // and don't want to reset the set in the effect\n  const forceUpdate = useForceUpdate();\n  const needsRefocusRef = useRef(false);\n  const parentOnSelect = useContext(SelectableContext);\n  const tabContext = useContext(TabContext);\n  let getControlledId, getControllerId;\n\n  if (tabContext) {\n    role = role || 'tablist';\n    activeKey = tabContext.activeKey; // TODO: do we need to duplicate these?\n\n    getControlledId = tabContext.getControlledId;\n    getControllerId = tabContext.getControllerId;\n  }\n\n  const listNode = useRef(null);\n\n  const getNextActiveTab = offset => {\n    const currentListNode = listNode.current;\n    if (!currentListNode) return null;\n    const items = qsa(currentListNode, `[${EVENT_KEY_ATTR}]:not([aria-disabled=true])`);\n    const activeChild = currentListNode.querySelector('[aria-selected=true]');\n    if (!activeChild) return null;\n    const index = items.indexOf(activeChild);\n    if (index === -1) return null;\n    let nextIndex = index + offset;\n    if (nextIndex >= items.length) nextIndex = 0;\n    if (nextIndex < 0) nextIndex = items.length - 1;\n    return items[nextIndex];\n  };\n\n  const handleSelect = (key, event) => {\n    if (key == null) return;\n    onSelect == null ? void 0 : onSelect(key, event);\n    parentOnSelect == null ? void 0 : parentOnSelect(key, event);\n  };\n\n  const handleKeyDown = event => {\n    onKeyDown == null ? void 0 : onKeyDown(event);\n\n    if (!tabContext) {\n      return;\n    }\n\n    let nextActiveChild;\n\n    switch (event.key) {\n      case 'ArrowLeft':\n      case 'ArrowUp':\n        nextActiveChild = getNextActiveTab(-1);\n        break;\n\n      case 'ArrowRight':\n      case 'ArrowDown':\n        nextActiveChild = getNextActiveTab(1);\n        break;\n\n      default:\n        return;\n    }\n\n    if (!nextActiveChild) return;\n    event.preventDefault();\n    handleSelect(nextActiveChild.dataset[dataProp('EventKey')] || null, event);\n    needsRefocusRef.current = true;\n    forceUpdate();\n  };\n\n  useEffect(() => {\n    if (listNode.current && needsRefocusRef.current) {\n      const activeChild = listNode.current.querySelector(`[${EVENT_KEY_ATTR}][aria-selected=true]`);\n      activeChild == null ? void 0 : activeChild.focus();\n    }\n\n    needsRefocusRef.current = false;\n  });\n  const mergedRef = useMergedRefs(ref, listNode);\n  return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n    value: handleSelect,\n    children: /*#__PURE__*/_jsx(NavContext.Provider, {\n      value: {\n        role,\n        // used by NavLink to determine it's role\n        activeKey: makeEventKey(activeKey),\n        getControlledId: getControlledId || noop,\n        getControllerId: getControllerId || noop\n      },\n      children: /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n        onKeyDown: handleKeyDown,\n        ref: mergedRef,\n        role: role\n      }))\n    })\n  });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n  Item: NavItem\n});","import * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'CardHeaderContext';\nexport default context;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('nav-item');","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef<HTMLDivElement>()\n *\n * useEffect(() => {\n *   if (!element) return\n *\n *   const calendar = new FullCalendar.Calendar(element)\n *\n *   return () => {\n *     calendar.destroy()\n *   }\n * }, [element])\n *\n * return <div ref={attachRef} />\n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n  return useState(null);\n}","import { useEffect, useLayoutEffect } from 'react';\nvar isReactNative = typeof global !== 'undefined' && // @ts-ignore\nglobal.navigator && // @ts-ignore\nglobal.navigator.product === 'ReactNative';\nvar isDOM = typeof document !== 'undefined';\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\n\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nvar targetMap = new WeakMap();\nvar resizeObserver;\n\nfunction getResizeObserver() {\n  // eslint-disable-next-line no-return-assign\n  return resizeObserver = resizeObserver || new window.ResizeObserver(function (entries) {\n    entries.forEach(function (entry) {\n      var handler = targetMap.get(entry.target);\n      if (handler) handler(entry.contentRect);\n    });\n  });\n}\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n *  <div ref={attachRef}>\n *    {JSON.stringify(rect)}\n *  </div>\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\n\n\nexport default function useResizeObserver(element) {\n  var _useState = useState(null),\n      rect = _useState[0],\n      setRect = _useState[1];\n\n  useEffect(function () {\n    if (!element) return;\n    getResizeObserver().observe(element);\n    setRect(element.getBoundingClientRect());\n    targetMap.set(element, function (rect) {\n      setRect(rect);\n    });\n    return function () {\n      targetMap.delete(element);\n    };\n  }, [element]);\n  return rect;\n}","const _excluded = [\"onKeyDown\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n  return !href || href.trim() === '#';\n}\n\n/**\n * An generic `<a>` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n    onKeyDown\n  } = _ref,\n      props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const [buttonProps] = useButtonProps(Object.assign({\n    tagName: 'a'\n  }, props));\n  const handleKeyDown = useEventCallback(e => {\n    buttonProps.onKeyDown(e);\n    onKeyDown == null ? void 0 : onKeyDown(e);\n  });\n\n  if (isTrivialHref(props.href) && !props.role || props.role === 'button') {\n    return /*#__PURE__*/_jsx(\"a\", Object.assign({\n      ref: ref\n    }, props, buttonProps, {\n      onKeyDown: handleKeyDown\n    }));\n  }\n\n  return /*#__PURE__*/_jsx(\"a\", Object.assign({\n    ref: ref\n  }, props, {\n    onKeyDown: onKeyDown\n  }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;","import classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { useNavItem } from '@restart/ui/NavItem';\nimport { makeEventKey } from '@restart/ui/SelectableContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  disabled: false\n};\nconst NavLink = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  as: Component = Anchor,\n  active,\n  eventKey,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-link');\n  const [navItemProps, meta] = useNavItem({\n    key: makeEventKey(eventKey, props.href),\n    active,\n    ...props\n  });\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ...navItemProps,\n    ref: ref,\n    className: classNames(className, bsPrefix, props.disabled && 'disabled', meta.isActive && 'active')\n  });\n});\nNavLink.displayName = 'NavLink';\nNavLink.defaultProps = defaultProps;\nexport default NavLink;","import classNames from 'classnames';\nimport all from 'prop-types-extra/lib/all';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseNav from '@restart/ui/Nav';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport CardHeaderContext from './CardHeaderContext';\nimport NavItem from './NavItem';\nimport NavLink from './NavLink';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  justify: false,\n  fill: false\n};\nconst Nav = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n  const {\n    as = 'div',\n    bsPrefix: initialBsPrefix,\n    variant,\n    fill,\n    justify,\n    navbar,\n    navbarScroll,\n    className,\n    activeKey,\n    ...props\n  } = useUncontrolled(uncontrolledProps, {\n    activeKey: 'onSelect'\n  });\n  const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');\n  let navbarBsPrefix;\n  let cardHeaderBsPrefix;\n  let isNavbar = false;\n  const navbarContext = useContext(NavbarContext);\n  const cardHeaderContext = useContext(CardHeaderContext);\n\n  if (navbarContext) {\n    navbarBsPrefix = navbarContext.bsPrefix;\n    isNavbar = navbar == null ? true : navbar;\n  } else if (cardHeaderContext) {\n    ({\n      cardHeaderBsPrefix\n    } = cardHeaderContext);\n  }\n\n  return /*#__PURE__*/_jsx(BaseNav, {\n    as: as,\n    ref: ref,\n    activeKey: activeKey,\n    className: classNames(className, {\n      [bsPrefix]: !isNavbar,\n      [`${navbarBsPrefix}-nav`]: isNavbar,\n      [`${navbarBsPrefix}-nav-scroll`]: isNavbar && navbarScroll,\n      [`${cardHeaderBsPrefix}-${variant}`]: !!cardHeaderBsPrefix,\n      [`${bsPrefix}-${variant}`]: !!variant,\n      [`${bsPrefix}-fill`]: fill,\n      [`${bsPrefix}-justified`]: justify\n    }),\n    ...props\n  });\n});\nNav.displayName = 'Nav';\nNav.defaultProps = defaultProps;\nexport default Object.assign(Nav, {\n  Item: NavItem,\n  Link: NavLink\n});","import * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext(null);\nexport default DropdownContext;","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n  var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n  if (!it) {\n    if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n\n      var F = function F() {};\n\n      return {\n        s: F,\n        n: function n() {\n          if (i >= o.length) return {\n            done: true\n          };\n          return {\n            done: false,\n            value: o[i++]\n          };\n        },\n        e: function e(_e) {\n          throw _e;\n        },\n        f: F\n      };\n    }\n\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var normalCompletion = true,\n      didErr = false,\n      err;\n  return {\n    s: function s() {\n      it = it.call(o);\n    },\n    n: function n() {\n      var step = it.next();\n      normalCompletion = step.done;\n      return step;\n    },\n    e: function e(_e2) {\n      didErr = true;\n      err = _e2;\n    },\n    f: function f() {\n      try {\n        if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n      } finally {\n        if (didErr) throw err;\n      }\n    }\n  };\n}","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import { useCallback } from 'react';\nimport useMounted from './useMounted';\n\nfunction useSafeState(state) {\n  var isMounted = useMounted();\n  return [state[0], useCallback(function (nextState) {\n    if (!isMounted()) return;\n    return state[1](nextState);\n  }, [isMounted, state[1]])];\n}\n\nexport default useSafeState;","import arrow from '@popperjs/core/lib/modifiers/arrow';\nimport computeStyles from '@popperjs/core/lib/modifiers/computeStyles';\nimport eventListeners from '@popperjs/core/lib/modifiers/eventListeners';\nimport flip from '@popperjs/core/lib/modifiers/flip';\nimport hide from '@popperjs/core/lib/modifiers/hide';\nimport offset from '@popperjs/core/lib/modifiers/offset';\nimport popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';\nimport preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';\nimport { placements } from '@popperjs/core/lib/enums';\nimport { popperGenerator } from '@popperjs/core/lib/popper-base'; // For the common JS build we will turn this file into a bundle with no imports.\n// This is b/c the Popper lib is all esm files, and would break in a common js only environment\n\nexport const createPopper = popperGenerator({\n  defaultModifiers: [hide, popperOffsets, computeStyles, eventListeners, offset, flip, preventOverflow, arrow]\n});\nexport { placements };","const _excluded = [\"enabled\", \"placement\", \"strategy\", \"modifiers\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { dequal } from 'dequal';\nimport useSafeState from '@restart/hooks/useSafeState';\nimport { createPopper } from './popper';\nconst disabledApplyStylesModifier = {\n  name: 'applyStyles',\n  enabled: false,\n  phase: 'afterWrite',\n  fn: () => undefined\n}; // until docjs supports type exports...\n\nconst ariaDescribedByModifier = {\n  name: 'ariaDescribedBy',\n  enabled: true,\n  phase: 'afterWrite',\n  effect: ({\n    state\n  }) => () => {\n    const {\n      reference,\n      popper\n    } = state.elements;\n\n    if ('removeAttribute' in reference) {\n      const ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(id => id.trim() !== popper.id);\n      if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));\n    }\n  },\n  fn: ({\n    state\n  }) => {\n    var _popper$getAttribute;\n\n    const {\n      popper,\n      reference\n    } = state.elements;\n    const role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();\n\n    if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {\n      const ids = reference.getAttribute('aria-describedby');\n\n      if (ids && ids.split(',').indexOf(popper.id) !== -1) {\n        return;\n      }\n\n      reference.setAttribute('aria-describedby', ids ? `${ids},${popper.id}` : popper.id);\n    }\n  }\n};\nconst EMPTY_MODIFIERS = [];\n/**\n * Position an element relative some reference element using Popper.js\n *\n * @param referenceElement\n * @param popperElement\n * @param {object}      options\n * @param {object=}     options.modifiers Popper.js modifiers\n * @param {boolean=}    options.enabled toggle the popper functionality on/off\n * @param {string=}     options.placement The popper element placement relative to the reference element\n * @param {string=}     options.strategy the positioning strategy\n * @param {function=}   options.onCreate called when the popper is created\n * @param {function=}   options.onUpdate called when the popper is updated\n *\n * @returns {UsePopperState} The popper state\n */\n\nfunction usePopper(referenceElement, popperElement, _ref = {}) {\n  let {\n    enabled = true,\n    placement = 'bottom',\n    strategy = 'absolute',\n    modifiers = EMPTY_MODIFIERS\n  } = _ref,\n      config = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const prevModifiers = useRef(modifiers);\n  const popperInstanceRef = useRef();\n  const update = useCallback(() => {\n    var _popperInstanceRef$cu;\n\n    (_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();\n  }, []);\n  const forceUpdate = useCallback(() => {\n    var _popperInstanceRef$cu2;\n\n    (_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();\n  }, []);\n  const [popperState, setState] = useSafeState(useState({\n    placement,\n    update,\n    forceUpdate,\n    attributes: {},\n    styles: {\n      popper: {},\n      arrow: {}\n    }\n  }));\n  const updateModifier = useMemo(() => ({\n    name: 'updateStateModifier',\n    enabled: true,\n    phase: 'write',\n    requires: ['computeStyles'],\n    fn: ({\n      state\n    }) => {\n      const styles = {};\n      const attributes = {};\n      Object.keys(state.elements).forEach(element => {\n        styles[element] = state.styles[element];\n        attributes[element] = state.attributes[element];\n      });\n      setState({\n        state,\n        styles,\n        attributes,\n        update,\n        forceUpdate,\n        placement: state.placement\n      });\n    }\n  }), [update, forceUpdate, setState]);\n  const nextModifiers = useMemo(() => {\n    if (!dequal(prevModifiers.current, modifiers)) {\n      prevModifiers.current = modifiers;\n    }\n\n    return prevModifiers.current;\n  }, [modifiers]);\n  useEffect(() => {\n    if (!popperInstanceRef.current || !enabled) return;\n    popperInstanceRef.current.setOptions({\n      placement,\n      strategy,\n      modifiers: [...nextModifiers, updateModifier, disabledApplyStylesModifier]\n    });\n  }, [strategy, placement, updateModifier, enabled, nextModifiers]);\n  useEffect(() => {\n    if (!enabled || referenceElement == null || popperElement == null) {\n      return undefined;\n    }\n\n    popperInstanceRef.current = createPopper(referenceElement, popperElement, Object.assign({}, config, {\n      placement,\n      strategy,\n      modifiers: [...nextModifiers, ariaDescribedByModifier, updateModifier]\n    }));\n    return () => {\n      if (popperInstanceRef.current != null) {\n        popperInstanceRef.current.destroy();\n        popperInstanceRef.current = undefined;\n        setState(s => Object.assign({}, s, {\n          attributes: {},\n          styles: {\n            popper: {}\n          }\n        }));\n      }\n    }; // This is only run once to _create_ the popper\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [enabled, referenceElement, popperElement]);\n  return popperState;\n}\n\nexport default usePopper;","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\n\nconst noop = () => {};\n\nfunction isLeftClickEvent(event) {\n  return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const getRefTarget = ref => ref && ('current' in ref ? ref.current : ref);\n\n/**\n * The `useClickOutside` hook registers your callback on the document that fires\n * when a pointer event is registered outside of the provided ref or element.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref  The element boundary\n * @param {function} onClickOutside\n * @param {object=}  options\n * @param {boolean=} options.disabled\n * @param {string=}  options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useClickOutside(ref, onClickOutside = noop, {\n  disabled,\n  clickTrigger = 'click'\n} = {}) {\n  const preventMouseClickOutsideRef = useRef(false);\n  const handleMouseCapture = useCallback(e => {\n    const currentTarget = getRefTarget(ref);\n    warning(!!currentTarget, 'ClickOutside captured a close event but does not have a ref to compare it to. ' + 'useClickOutside(), should be passed a ref that resolves to a DOM node');\n    preventMouseClickOutsideRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target);\n  }, [ref]);\n  const handleMouse = useEventCallback(e => {\n    if (!preventMouseClickOutsideRef.current) {\n      onClickOutside(e);\n    }\n  });\n  useEffect(() => {\n    if (disabled || ref == null) return undefined;\n    const doc = ownerDocument(getRefTarget(ref)); // Store the current event to avoid triggering handlers immediately\n    // https://github.com/facebook/react/issues/20074\n\n    let currentEvent = (doc.defaultView || window).event; // Use capture for this listener so it fires before React's listener, to\n    // avoid false positives in the contains() check below if the target DOM\n    // element is removed in the React mouse callback.\n\n    const removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n    const removeMouseListener = listen(doc, clickTrigger, e => {\n      // skip if this event is the same as the one running when we added the handlers\n      if (e === currentEvent) {\n        currentEvent = undefined;\n        return;\n      }\n\n      handleMouse(e);\n    });\n    let mobileSafariHackListeners = [];\n\n    if ('ontouchstart' in doc.documentElement) {\n      mobileSafariHackListeners = [].slice.call(doc.body.children).map(el => listen(el, 'mousemove', noop));\n    }\n\n    return () => {\n      removeMouseCaptureListener();\n      removeMouseListener();\n      mobileSafariHackListeners.forEach(remove => remove());\n    };\n  }, [ref, disabled, clickTrigger, handleMouseCapture, handleMouse]);\n}\n\nexport default useClickOutside;","export function toModifierMap(modifiers) {\n  const result = {};\n\n  if (!Array.isArray(modifiers)) {\n    return modifiers || result;\n  } // eslint-disable-next-line no-unused-expressions\n\n\n  modifiers == null ? void 0 : modifiers.forEach(m => {\n    result[m.name] = m;\n  });\n  return result;\n}\nexport function toModifierArray(map = {}) {\n  if (Array.isArray(map)) return map;\n  return Object.keys(map).map(k => {\n    map[k].name = k;\n    return map[k];\n  });\n}\nexport default function mergeOptionsWithPopperConfig({\n  enabled,\n  enableEvents,\n  placement,\n  flip,\n  offset,\n  fixed,\n  containerPadding,\n  arrowElement,\n  popperConfig = {}\n}) {\n  var _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;\n\n  const modifiers = toModifierMap(popperConfig.modifiers);\n  return Object.assign({}, popperConfig, {\n    placement,\n    enabled,\n    strategy: fixed ? 'fixed' : popperConfig.strategy,\n    modifiers: toModifierArray(Object.assign({}, modifiers, {\n      eventListeners: {\n        enabled: enableEvents\n      },\n      preventOverflow: Object.assign({}, modifiers.preventOverflow, {\n        options: containerPadding ? Object.assign({\n          padding: containerPadding\n        }, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options\n      }),\n      offset: {\n        options: Object.assign({\n          offset\n        }, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)\n      },\n      arrow: Object.assign({}, modifiers.arrow, {\n        enabled: !!arrowElement,\n        options: Object.assign({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {\n          element: arrowElement\n        })\n      }),\n      flip: Object.assign({\n        enabled: !!flip\n      }, modifiers.flip)\n    }))\n  });\n}","const _excluded = [\"children\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { useContext, useRef } from 'react';\nimport * as React from 'react';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport DropdownContext from './DropdownContext';\nimport usePopper from './usePopper';\nimport useClickOutside from './useClickOutside';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst noop = () => {};\n/**\n * @memberOf Dropdown\n * @param {object}  options\n * @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection\n * @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle\n * @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`\n * @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.\n * @param {string}  options.rootCloseEvent The pointer event to listen for when determining \"clicks outside\" the menu for triggering a close.\n * @param {object}  options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.\n */\n\n\nexport function useDropdownMenu(options = {}) {\n  const context = useContext(DropdownContext);\n  const [arrowElement, attachArrowRef] = useCallbackRef();\n  const hasShownRef = useRef(false);\n  const {\n    flip,\n    offset,\n    rootCloseEvent,\n    fixed = false,\n    placement: placementOverride,\n    popperConfig = {},\n    enableEventListeners = true,\n    usePopper: shouldUsePopper = !!context\n  } = options;\n  const show = (context == null ? void 0 : context.show) == null ? !!options.show : context.show;\n\n  if (show && !hasShownRef.current) {\n    hasShownRef.current = true;\n  }\n\n  const handleClose = e => {\n    context == null ? void 0 : context.toggle(false, e);\n  };\n\n  const {\n    placement,\n    setMenu,\n    menuElement,\n    toggleElement\n  } = context || {};\n  const popper = usePopper(toggleElement, menuElement, mergeOptionsWithPopperConfig({\n    placement: placementOverride || placement || 'bottom-start',\n    enabled: shouldUsePopper,\n    enableEvents: enableEventListeners == null ? show : enableEventListeners,\n    offset,\n    flip,\n    fixed,\n    arrowElement,\n    popperConfig\n  }));\n  const menuProps = Object.assign({\n    ref: setMenu || noop,\n    'aria-labelledby': toggleElement == null ? void 0 : toggleElement.id\n  }, popper.attributes.popper, {\n    style: popper.styles.popper\n  });\n  const metadata = {\n    show,\n    placement,\n    hasShown: hasShownRef.current,\n    toggle: context == null ? void 0 : context.toggle,\n    popper: shouldUsePopper ? popper : null,\n    arrowProps: shouldUsePopper ? Object.assign({\n      ref: attachArrowRef\n    }, popper.attributes.arrow, {\n      style: popper.styles.arrow\n    }) : {}\n  };\n  useClickOutside(menuElement, handleClose, {\n    clickTrigger: rootCloseEvent,\n    disabled: !show\n  });\n  return [menuProps, metadata];\n}\nconst defaultProps = {\n  usePopper: true\n};\n\n/**\n * Also exported as `<Dropdown.Menu>` from `Dropdown`.\n *\n * @displayName DropdownMenu\n * @memberOf Dropdown\n */\nfunction DropdownMenu(_ref) {\n  let {\n    children\n  } = _ref,\n      options = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const [props, meta] = useDropdownMenu(options);\n  return /*#__PURE__*/_jsx(_Fragment, {\n    children: children(props, meta)\n  });\n}\n\nDropdownMenu.displayName = 'DropdownMenu';\nDropdownMenu.defaultProps = defaultProps;\n/** @component */\n\nexport default DropdownMenu;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {ReactNode, useContext, useLayoutEffect, useMemo, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n  prefix: string,\n  current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n  prefix: String(Math.round(Math.random() * 10000000000)),\n  current: 0\n};\n\nconst SSRContext = React.createContext<SSRContextValue>(defaultContext);\n\ninterface SSRProviderProps {\n  /** Your application here. */\n  children: ReactNode\n}\n\n/**\n * When using SSR with React Aria, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n  let cur = useContext(SSRContext);\n  let value: SSRContextValue = useMemo(() => ({\n    // If this is the first SSRProvider, start with an empty string prefix, otherwise\n    // append and increment the counter.\n    prefix: cur === defaultContext ? '' : `${cur.prefix}-${++cur.current}`,\n    current: 0\n  }), [cur]);\n\n  return (\n    <SSRContext.Provider value={value}>\n      {props.children}\n    </SSRContext.Provider>\n  );\n}\n\nlet canUseDOM = Boolean(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n);\n\n/** @private */\nexport function useSSRSafeId(defaultId?: string): string {\n  let ctx = useContext(SSRContext);\n\n  // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n  // provide a warning to hint to the developer to add one.\n  if (ctx === defaultContext && !canUseDOM) {\n    console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n  }\n\n  return useMemo(() => defaultId || `react-aria${ctx.prefix}-${++ctx.current}`, [defaultId]);\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n  let cur = useContext(SSRContext);\n  let isInSSRContext = cur !== defaultContext;\n  let [isSSR, setIsSSR] = useState(isInSSRContext);\n\n  // If on the client, and the component was initially server rendered,\n  // then schedule a layout effect to update the component after hydration.\n  if (typeof window !== 'undefined' && isInSSRContext) {\n    // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    useLayoutEffect(() => {\n      setIsSSR(false);\n    }, []);\n  }\n\n  return isSSR;\n}\n","import { useContext, useCallback } from 'react';\nimport * as React from 'react';\nimport { useSSRSafeId } from './ssr';\nimport DropdownContext from './DropdownContext';\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const isRoleMenu = el => {\n  var _el$getAttribute;\n\n  return ((_el$getAttribute = el.getAttribute('role')) == null ? void 0 : _el$getAttribute.toLowerCase()) === 'menu';\n};\n\nconst noop = () => {};\n/**\n * Wires up Dropdown toggle functionality, returning a set a props to attach\n * to the element that functions as the dropdown toggle (generally a button).\n *\n * @memberOf Dropdown\n */\n\n\nexport function useDropdownToggle() {\n  const id = useSSRSafeId();\n  const {\n    show = false,\n    toggle = noop,\n    setToggle,\n    menuElement\n  } = useContext(DropdownContext) || {};\n  const handleClick = useCallback(e => {\n    toggle(!show, e);\n  }, [show, toggle]);\n  const props = {\n    id,\n    ref: setToggle || noop,\n    onClick: handleClick,\n    'aria-expanded': !!show\n  }; // This is maybe better down in an effect, but\n  // the component is going to update anyway when the menu element\n  // is set so might return new props.\n\n  if (menuElement && isRoleMenu(menuElement)) {\n    props['aria-haspopup'] = true;\n  }\n\n  return [props, {\n    show,\n    toggle\n  }];\n}\n\n/**\n * Also exported as `<Dropdown.Toggle>` from `Dropdown`.\n *\n * @displayName DropdownToggle\n * @memberOf Dropdown\n */\nfunction DropdownToggle({\n  children\n}) {\n  const [props, meta] = useDropdownToggle();\n  return /*#__PURE__*/_jsx(_Fragment, {\n    children: children(props, meta)\n  });\n}\n\nDropdownToggle.displayName = 'DropdownToggle';\n/** @component */\n\nexport default DropdownToggle;","const _excluded = [\"eventKey\", \"disabled\", \"onClick\", \"active\", \"as\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport NavContext from './NavContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n * Create a dropdown item. Returns a set of props for the dropdown item component\n * including an `onClick` handler that prevents selection when the item is disabled\n */\nexport function useDropdownItem({\n  key,\n  href,\n  active,\n  disabled,\n  onClick\n}) {\n  const onSelectCtx = useContext(SelectableContext);\n  const navContext = useContext(NavContext);\n  const {\n    activeKey\n  } = navContext || {};\n  const eventKey = makeEventKey(key, href);\n  const isActive = active == null && key != null ? makeEventKey(activeKey) === eventKey : active;\n  const handleClick = useEventCallback(event => {\n    if (disabled) return;\n    onClick == null ? void 0 : onClick(event);\n\n    if (onSelectCtx && !event.isPropagationStopped()) {\n      onSelectCtx(eventKey, event);\n    }\n  });\n  return [{\n    onClick: handleClick,\n    'aria-disabled': disabled || undefined,\n    'aria-selected': isActive,\n    [dataAttr('dropdown-item')]: ''\n  }, {\n    isActive\n  }];\n}\nconst DropdownItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n    eventKey,\n    disabled,\n    onClick,\n    active,\n    as: Component = Button\n  } = _ref,\n      props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  const [dropdownItemProps] = useDropdownItem({\n    key: eventKey,\n    href: props.href,\n    disabled,\n    onClick,\n    active\n  });\n  return /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n    ref: ref\n  }, dropdownItemProps));\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","import qsa from 'dom-helpers/querySelectorAll';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport { useCallback, useRef, useEffect, useMemo, useContext } from 'react';\nimport * as React from 'react';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useEventListener from '@restart/hooks/useEventListener';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownMenu from './DropdownMenu';\nimport DropdownToggle, { isRoleMenu } from './DropdownToggle';\nimport DropdownItem from './DropdownItem';\nimport SelectableContext from './SelectableContext';\nimport { dataAttr } from './DataKey';\nimport useWindow from './useWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction useRefWithUpdate() {\n  const forceUpdate = useForceUpdate();\n  const ref = useRef(null);\n  const attachRef = useCallback(element => {\n    ref.current = element; // ensure that a menu set triggers an update for consumers\n\n    forceUpdate();\n  }, [forceUpdate]);\n  return [ref, attachRef];\n}\n/**\n * @displayName Dropdown\n * @public\n */\n\n\nfunction Dropdown({\n  defaultShow,\n  show: rawShow,\n  onSelect,\n  onToggle: rawOnToggle,\n  itemSelector = `* [${dataAttr('dropdown-item')}]`,\n  focusFirstItemOnShow,\n  placement = 'bottom-start',\n  children\n}) {\n  const window = useWindow();\n  const [show, onToggle] = useUncontrolledProp(rawShow, defaultShow, rawOnToggle); // We use normal refs instead of useCallbackRef in order to populate the\n  // the value as quickly as possible, otherwise the effect to focus the element\n  // may run before the state value is set\n\n  const [menuRef, setMenu] = useRefWithUpdate();\n  const menuElement = menuRef.current;\n  const [toggleRef, setToggle] = useRefWithUpdate();\n  const toggleElement = toggleRef.current;\n  const lastShow = usePrevious(show);\n  const lastSourceEvent = useRef(null);\n  const focusInDropdown = useRef(false);\n  const onSelectCtx = useContext(SelectableContext);\n  const toggle = useCallback((nextShow, event, source = event == null ? void 0 : event.type) => {\n    onToggle(nextShow, {\n      originalEvent: event,\n      source\n    });\n  }, [onToggle]);\n  const handleSelect = useEventCallback((key, event) => {\n    onSelect == null ? void 0 : onSelect(key, event);\n    toggle(false, event, 'select');\n\n    if (!event.isPropagationStopped()) {\n      onSelectCtx == null ? void 0 : onSelectCtx(key, event);\n    }\n  });\n  const context = useMemo(() => ({\n    toggle,\n    placement,\n    show,\n    menuElement,\n    toggleElement,\n    setMenu,\n    setToggle\n  }), [toggle, placement, show, menuElement, toggleElement, setMenu, setToggle]);\n\n  if (menuElement && lastShow && !show) {\n    focusInDropdown.current = menuElement.contains(menuElement.ownerDocument.activeElement);\n  }\n\n  const focusToggle = useEventCallback(() => {\n    if (toggleElement && toggleElement.focus) {\n      toggleElement.focus();\n    }\n  });\n  const maybeFocusFirst = useEventCallback(() => {\n    const type = lastSourceEvent.current;\n    let focusType = focusFirstItemOnShow;\n\n    if (focusType == null) {\n      focusType = menuRef.current && isRoleMenu(menuRef.current) ? 'keyboard' : false;\n    }\n\n    if (focusType === false || focusType === 'keyboard' && !/^key.+$/.test(type)) {\n      return;\n    }\n\n    const first = qsa(menuRef.current, itemSelector)[0];\n    if (first && first.focus) first.focus();\n  });\n  useEffect(() => {\n    if (show) maybeFocusFirst();else if (focusInDropdown.current) {\n      focusInDropdown.current = false;\n      focusToggle();\n    } // only `show` should be changing\n  }, [show, focusInDropdown, focusToggle, maybeFocusFirst]);\n  useEffect(() => {\n    lastSourceEvent.current = null;\n  });\n\n  const getNextFocusedChild = (current, offset) => {\n    if (!menuRef.current) return null;\n    const items = qsa(menuRef.current, itemSelector);\n    let index = items.indexOf(current) + offset;\n    index = Math.max(0, Math.min(index, items.length));\n    return items[index];\n  };\n\n  useEventListener(useCallback(() => window.document, [window]), 'keydown', event => {\n    var _menuRef$current, _toggleRef$current;\n\n    const {\n      key\n    } = event;\n    const target = event.target;\n    const fromMenu = (_menuRef$current = menuRef.current) == null ? void 0 : _menuRef$current.contains(target);\n    const fromToggle = (_toggleRef$current = toggleRef.current) == null ? void 0 : _toggleRef$current.contains(target); // Second only to https://github.com/twbs/bootstrap/blob/8cfbf6933b8a0146ac3fbc369f19e520bd1ebdac/js/src/dropdown.js#L400\n    // in inscrutability\n\n    const isInput = /input|textarea/i.test(target.tagName);\n\n    if (isInput && (key === ' ' || key !== 'Escape' && fromMenu || key === 'Escape' && target.type === 'search')) {\n      return;\n    }\n\n    if (!fromMenu && !fromToggle) {\n      return;\n    }\n\n    if (key === 'Tab' && (!menuRef.current || !show)) {\n      return;\n    }\n\n    lastSourceEvent.current = event.type;\n    const meta = {\n      originalEvent: event,\n      source: event.type\n    };\n\n    switch (key) {\n      case 'ArrowUp':\n        {\n          const next = getNextFocusedChild(target, -1);\n          if (next && next.focus) next.focus();\n          event.preventDefault();\n          return;\n        }\n\n      case 'ArrowDown':\n        event.preventDefault();\n\n        if (!show) {\n          onToggle(true, meta);\n        } else {\n          const next = getNextFocusedChild(target, 1);\n          if (next && next.focus) next.focus();\n        }\n\n        return;\n\n      case 'Tab':\n        // on keydown the target is the element being tabbed FROM, we need that\n        // to know if this event is relevant to this dropdown (e.g. in this menu).\n        // On `keyup` the target is the element being tagged TO which we use to check\n        // if focus has left the menu\n        addEventListener(target.ownerDocument, 'keyup', e => {\n          var _menuRef$current2;\n\n          if (e.key === 'Tab' && !e.target || !((_menuRef$current2 = menuRef.current) != null && _menuRef$current2.contains(e.target))) {\n            onToggle(false, meta);\n          }\n        }, {\n          once: true\n        });\n        break;\n\n      case 'Escape':\n        if (key === 'Escape') {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n\n        onToggle(false, meta);\n        break;\n\n      default:\n    }\n  });\n  return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n    value: handleSelect,\n    children: /*#__PURE__*/_jsx(DropdownContext.Provider, {\n      value: context,\n      children: children\n    })\n  });\n}\n\nDropdown.displayName = 'Dropdown';\nDropdown.Menu = DropdownMenu;\nDropdown.Toggle = DropdownToggle;\nDropdown.Item = DropdownItem;\nexport default Dropdown;","import { useEffect } from 'react';\nimport useEventCallback from './useEventCallback';\n\n/**\n * Attaches an event handler outside directly to specified DOM element\n * bypassing the react synthetic event system.\n *\n * @param element The target to listen for events on\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useEventListener(eventTarget, event, listener, capture) {\n  if (capture === void 0) {\n    capture = false;\n  }\n\n  var handler = useEventCallback(listener);\n  useEffect(function () {\n    var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;\n    target.addEventListener(event, handler, capture);\n    return function () {\n      return target.removeEventListener(event, handler, capture);\n    };\n  }, [eventTarget]);\n}","import * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext({});\nDropdownContext.displayName = 'DropdownContext';\nexport default DropdownContext;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useDropdownItem } from '@restart/ui/DropdownItem';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownItem = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  eventKey,\n  disabled = false,\n  onClick,\n  active,\n  as: Component = Anchor,\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-item');\n  const [dropdownItemProps, meta] = useDropdownItem({\n    key: eventKey,\n    href: props.href,\n    disabled,\n    onClick,\n    active\n  });\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ...dropdownItemProps,\n    ref: ref,\n    className: classNames(className, prefix, meta.isActive && 'active', disabled && 'disabled')\n  });\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","import * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'InputGroupContext';\nexport default context;","import invariant from 'invariant';\nimport { useCallback } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nexport default function useWrappedRefWithWarning(ref, componentName) {\n  // @ts-ignore\n  if (!(process.env.NODE_ENV !== \"production\")) return ref; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n  const warningRef = useCallback(refValue => {\n    !(refValue == null || !refValue.isReactComponent) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${componentName} injected a ref to a provided \\`as\\` component that resolved to a component instance instead of a DOM element. ` + 'Use `React.forwardRef` to provide the injected ref to the class component as a prop in order to pass it directly to a DOM element') : invariant(false) : void 0;\n  }, [componentName]); // eslint-disable-next-line react-hooks/rules-of-hooks\n\n  return useMergedRefs(warningRef, ref);\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useDropdownMenu } from '@restart/ui/DropdownMenu';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport warning from 'warning';\nimport DropdownContext from './DropdownContext';\nimport InputGroupContext from './InputGroupContext';\nimport NavbarContext from './NavbarContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  flip: true\n};\nexport function getDropdownMenuPlacement(alignEnd, dropDirection, isRTL) {\n  const topStart = isRTL ? 'top-end' : 'top-start';\n  const topEnd = isRTL ? 'top-start' : 'top-end';\n  const bottomStart = isRTL ? 'bottom-end' : 'bottom-start';\n  const bottomEnd = isRTL ? 'bottom-start' : 'bottom-end';\n  const leftStart = isRTL ? 'right-start' : 'left-start';\n  const leftEnd = isRTL ? 'right-end' : 'left-end';\n  const rightStart = isRTL ? 'left-start' : 'right-start';\n  const rightEnd = isRTL ? 'left-end' : 'right-end';\n  let placement = alignEnd ? bottomEnd : bottomStart;\n  if (dropDirection === 'up') placement = alignEnd ? topEnd : topStart;else if (dropDirection === 'end') placement = alignEnd ? rightEnd : rightStart;else if (dropDirection === 'start') placement = alignEnd ? leftEnd : leftStart;\n  return placement;\n}\nconst DropdownMenu = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  align,\n  rootCloseEvent,\n  flip,\n  show: showProps,\n  renderOnMount,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  popperConfig,\n  variant,\n  ...props\n}, ref) => {\n  let alignEnd = false;\n  const isNavbar = useContext(NavbarContext);\n  const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-menu');\n  const {\n    align: contextAlign,\n    drop,\n    isRTL\n  } = useContext(DropdownContext);\n  align = align || contextAlign;\n  const isInputGroup = useContext(InputGroupContext);\n  const alignClasses = [];\n\n  if (align) {\n    if (typeof align === 'object') {\n      const keys = Object.keys(align);\n      process.env.NODE_ENV !== \"production\" ? warning(keys.length === 1, 'There should only be 1 breakpoint when passing an object to `align`') : void 0;\n\n      if (keys.length) {\n        const brkPoint = keys[0];\n        const direction = align[brkPoint]; // .dropdown-menu-end is required for responsively aligning\n        // left in addition to align left classes.\n\n        alignEnd = direction === 'start';\n        alignClasses.push(`${prefix}-${brkPoint}-${direction}`);\n      }\n    } else if (align === 'end') {\n      alignEnd = true;\n    }\n  }\n\n  const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n  const [menuProps, {\n    hasShown,\n    popper,\n    show,\n    toggle\n  }] = useDropdownMenu({\n    flip,\n    rootCloseEvent,\n    show: showProps,\n    usePopper: !isNavbar && alignClasses.length === 0,\n    offset: [0, 2],\n    popperConfig,\n    placement\n  });\n  menuProps.ref = useMergedRefs(useWrappedRefWithWarning(ref, 'DropdownMenu'), menuProps.ref);\n  useIsomorphicEffect(() => {\n    // Popper's initial position for the menu is incorrect when\n    // renderOnMount=true. Need to call update() to correct it.\n    if (show) popper == null ? void 0 : popper.update();\n  }, [show]);\n  if (!hasShown && !renderOnMount && !isInputGroup) return null; // For custom components provide additional, non-DOM, props;\n\n  if (typeof Component !== 'string') {\n    menuProps.show = show;\n\n    menuProps.close = () => toggle == null ? void 0 : toggle(false);\n\n    menuProps.align = align;\n  }\n\n  let style = props.style;\n\n  if (popper != null && popper.placement) {\n    // we don't need the default popper style,\n    // menus are display: none when not shown.\n    style = { ...props.style,\n      ...menuProps.style\n    };\n    props['x-placement'] = popper.placement;\n  }\n\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ...menuProps,\n    style: style // Bootstrap css requires this data attrib to style responsive menus.\n    ,\n    ...((alignClasses.length || isNavbar) && {\n      'data-bs-popper': 'static'\n    }),\n    className: classNames(className, prefix, show && 'show', alignEnd && `${prefix}-end`, variant && `${prefix}-${variant}`, ...alignClasses)\n  });\n});\nDropdownMenu.displayName = 'DropdownMenu';\nDropdownMenu.defaultProps = defaultProps;\nexport default DropdownMenu;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  variant: 'primary',\n  active: false,\n  disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n  as,\n  bsPrefix,\n  variant,\n  size,\n  active,\n  className,\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n  const [buttonProps, {\n    tagName\n  }] = useButtonProps({\n    tagName: as,\n    ...props\n  });\n  const Component = tagName;\n  return /*#__PURE__*/_jsx(Component, { ...buttonProps,\n    ...props,\n    ref: ref,\n    className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n  });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useDropdownToggle } from '@restart/ui/DropdownToggle';\nimport DropdownContext from '@restart/ui/DropdownContext';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport Button from './Button';\nimport InputGroupContext from './InputGroupContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownToggle = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  split,\n  className,\n  childBsPrefix,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = Button,\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-toggle');\n  const dropdownContext = useContext(DropdownContext);\n  const isInputGroup = useContext(InputGroupContext);\n\n  if (childBsPrefix !== undefined) {\n    props.bsPrefix = childBsPrefix;\n  }\n\n  const [toggleProps] = useDropdownToggle();\n  toggleProps.ref = useMergedRefs(toggleProps.ref, useWrappedRefWithWarning(ref, 'DropdownToggle')); // This intentionally forwards size and variant (if set) to the\n  // underlying component, to allow it to render size and style variants.\n\n  return /*#__PURE__*/_jsx(Component, {\n    className: classNames(className, prefix, split && `${prefix}-split`, !!isInputGroup && (dropdownContext == null ? void 0 : dropdownContext.show) && 'show'),\n    ...toggleProps,\n    ...props\n  });\n});\nDropdownToggle.displayName = 'DropdownToggle';\nexport default DropdownToggle;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport BaseDropdown from '@restart/ui/Dropdown';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownItem from './DropdownItem';\nimport DropdownMenu, { getDropdownMenuPlacement } from './DropdownMenu';\nimport DropdownToggle from './DropdownToggle';\nimport InputGroupContext from './InputGroupContext';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownHeader = createWithBsPrefix('dropdown-header', {\n  defaultProps: {\n    role: 'heading'\n  }\n});\nconst DropdownDivider = createWithBsPrefix('dropdown-divider', {\n  Component: 'hr',\n  defaultProps: {\n    role: 'separator'\n  }\n});\nconst DropdownItemText = createWithBsPrefix('dropdown-item-text', {\n  Component: 'span'\n});\nconst defaultProps = {\n  navbar: false,\n  align: 'start',\n  autoClose: true\n};\nconst Dropdown = /*#__PURE__*/React.forwardRef((pProps, ref) => {\n  const {\n    bsPrefix,\n    drop,\n    show,\n    className,\n    align,\n    onSelect,\n    onToggle,\n    focusFirstItemOnShow,\n    // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n    as: Component = 'div',\n    navbar: _4,\n    autoClose,\n    ...props\n  } = useUncontrolled(pProps, {\n    show: 'onToggle'\n  });\n  const isInputGroup = useContext(InputGroupContext);\n  const prefix = useBootstrapPrefix(bsPrefix, 'dropdown');\n  const isRTL = useIsRTL();\n\n  const isClosingPermitted = source => {\n    // autoClose=false only permits close on button click\n    if (autoClose === false) return source === 'click'; // autoClose=inside doesn't permit close on rootClose\n\n    if (autoClose === 'inside') return source !== 'rootClose'; // autoClose=outside doesn't permit close on select\n\n    if (autoClose === 'outside') return source !== 'select';\n    return true;\n  };\n\n  const handleToggle = useEventCallback((nextShow, meta) => {\n    if (meta.originalEvent.currentTarget === document && (meta.source !== 'keydown' || meta.originalEvent.key === 'Escape')) meta.source = 'rootClose';\n    if (isClosingPermitted(meta.source)) onToggle == null ? void 0 : onToggle(nextShow, meta);\n  });\n  const alignEnd = align === 'end';\n  const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n  const contextValue = useMemo(() => ({\n    align,\n    drop,\n    isRTL\n  }), [align, drop, isRTL]);\n  return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n    value: contextValue,\n    children: /*#__PURE__*/_jsx(BaseDropdown, {\n      placement: placement,\n      show: show,\n      onSelect: onSelect,\n      onToggle: handleToggle,\n      focusFirstItemOnShow: focusFirstItemOnShow,\n      itemSelector: `.${prefix}-item:not(.disabled):not(:disabled)`,\n      children: isInputGroup ? props.children : /*#__PURE__*/_jsx(Component, { ...props,\n        ref: ref,\n        className: classNames(className, show && 'show', (!drop || drop === 'down') && prefix, drop === 'up' && 'dropup', drop === 'end' && 'dropend', drop === 'start' && 'dropstart')\n      })\n    })\n  });\n});\nDropdown.displayName = 'Dropdown';\nDropdown.defaultProps = defaultProps;\nexport default Object.assign(Dropdown, {\n  Toggle: DropdownToggle,\n  Menu: DropdownMenu,\n  Item: DropdownItem,\n  ItemText: DropdownItemText,\n  Divider: DropdownDivider,\n  Header: DropdownHeader\n});","import * as React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Navbar, Container, Nav, Dropdown } from \"react-bootstrap\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { AppRoute } from \"../../AppRoute\";\r\nimport rootStore from \"../../stores/RootStore\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\";\r\nimport { useLocation } from 'react-router-dom'\r\n\r\ninterface NavMenuProps {\r\n  nav?: boolean\r\n}\r\n\r\nexport function NavMenu(props: NavMenuProps) {\r\n  const { t } = useTranslation()\r\n  const authStore = useAuthStore()\r\n  const location = useLocation();\r\n  const { pathname } = location;\r\n\r\n  const useLifeAgeCalculator = authStore.domain?.useLifeAgeCalculator ?? false\r\n  const allowKitRegistration = authStore.domain?.allowKitRegistration ?? false\r\n  const allowOrderTesting = authStore.domain?.allowOrderTesting ?? false\r\n\r\n  const handleLogout = () => {\r\n    rootStore.authStore.logout()\r\n    return true\r\n  }\r\n\r\n  return (\r\n    <Navbar collapseOnSelect expand=\"lg\" bg=\"dark\" variant=\"dark\">\r\n      <Container className=\"justify-content-end\">\r\n        {props.nav && <>\r\n          <Navbar.Toggle aria-controls=\"responsive-navbar-nav\" />\r\n          <Navbar.Collapse role=\"\" id=\"responsive-navbar-nav\" className=\"justify-content-end\">\r\n            <Nav>\r\n              {allowKitRegistration && <Nav.Link as={Link} className=\"text-end\" active={pathname === AppRoute.Registration} to={AppRoute.Registration}>{t(\"menu.registration\")}</Nav.Link>}\r\n              <Nav.Link as={Link} className=\"text-end\" active={pathname === AppRoute.Results} to={AppRoute.Results}>{t(\"menu.results\")}</Nav.Link>\r\n              {useLifeAgeCalculator && <Nav.Link as={Link} className=\"text-end\" active={pathname === AppRoute.LifeAge} to={AppRoute.LifeAge}>{t(\"menu.lifeAge\")}</Nav.Link>}\r\n              {allowOrderTesting && <Nav.Link as={Link} className=\"text-end\" active={pathname === AppRoute.OrderTesting} to={AppRoute.OrderTesting}>{t(\"menu.orderTesting\")}</Nav.Link>}\r\n\r\n              <Dropdown as={Nav.Item} align=\"end\">\r\n                <Dropdown.Toggle as={Nav.Link} className=\"text-end\">{t(\"login.language\")}</Dropdown.Toggle>\r\n                <Dropdown.Menu variant=\"dark\">\r\n                  <Dropdown.Item className=\"text-end\" onClick={() => authStore.changeLanguage(\"en\")}>{t(\"menu.language.en\")}</Dropdown.Item>\r\n                  <Dropdown.Item className=\"text-end\" onClick={() => authStore.changeLanguage(\"es\")}>{t(\"menu.language.es\")}</Dropdown.Item>\r\n                </Dropdown.Menu>\r\n              </Dropdown>\r\n\r\n              <Nav.Link as={Link} className=\"text-end\" to={AppRoute.Login} onClick={handleLogout}>{t(\"menu.logout\")}</Nav.Link>\r\n            </Nav>\r\n          </Navbar.Collapse>\r\n        </>}\r\n      </Container>\r\n    </Navbar>\r\n  )\r\n}\r\n","import * as React from \"react\";\r\nimport { NavMenu } from \"../Layout/NavMenu\";\r\nimport Logo from \"../../assets/images/logo.png\"\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Col, Container, Row } from \"react-bootstrap\";\r\nimport { AppRoute } from \"../../AppRoute\";\r\nimport { useRegistrationStore } from \"../../stores/StoreProvider\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ninterface HeaderProps {\r\n  banner?: string\r\n  logo?: string\r\n  nav?: boolean\r\n  showLinks?: boolean\r\n}\r\n\r\nexport function Header(props: HeaderProps/*React.PropsWithChildren<HeaderProps>*/) {\r\n  const { t } = useTranslation()\r\n  const registrationStore = useRegistrationStore()\r\n  const implementation = registrationStore.implementation\r\n\r\n  return (\r\n    <header>\r\n      <div className=\"brand-header\" style={ props?.banner ? { backgroundImage: `url(\"${props?.banner}\")` } : {}}>\r\n        <Container>\r\n          <Row>\r\n            <Col lg={3} md={4} className=\"logo col-auto me-auto\"><img src={props.logo || Logo} alt={t(\"title\")} className=\"logo\" /></Col>\r\n            {props.showLinks && <Col md={8} className=\"logo col-auto p-0\">\r\n              <Row className=\"justify-content-center m-0 pt-2\">\r\n              <Link to={AppRoute.Results} className=\"px-1 col-auto text-primary text-center text-decoration-none\" title={t([`header.home_${implementation}`, \"header.home\"]).trim()}>\r\n                <img src={implementation ? `/images/Icon/home_${implementation}.png` : \"/images/Icon/home.png\"} alt={t(\"header.home\")} className=\"menu-item my-2 my-md-0 my-lg-2\" />\r\n                <span className=\"d-none d-md-block d-lg-inline\">{t([`header.home_${implementation}`, \"header.home\"]).trim()}</span>\r\n              </Link>              \r\n              <Link to={AppRoute.Results} className=\"px-1 col-auto text-primary text-center text-decoration-none\" title={t(\"header.results\")}>\r\n                <img src=\"/images/Icon/results.png\" alt={t(\"header.results\")} className=\"menu-item my-2 my-md-0 my-lg-2\" />\r\n                <span className=\"d-none d-md-block d-lg-inline\">{t(\"header.results\")}</span>\r\n              </Link>\r\n              </Row>\r\n            </Col>}\r\n          </Row>\r\n        </Container>\r\n      </div>\r\n      {<NavMenu {...props} />}\r\n      {/* {props.children} */}\r\n    </header>\r\n  )\r\n}\r\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Spinner = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  variant,\n  animation,\n  size,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  className,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n  const bsSpinnerPrefix = `${bsPrefix}-${animation}`;\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    ...props,\n    className: classNames(className, bsSpinnerPrefix, size && `${bsSpinnerPrefix}-${size}`, variant && `text-${variant}`)\n  });\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n  if (!size && size !== 0 || recalc) {\n    if (canUseDOM) {\n      var scrollDiv = document.createElement('div');\n      scrollDiv.style.position = 'absolute';\n      scrollDiv.style.top = '-9999px';\n      scrollDiv.style.width = '50px';\n      scrollDiv.style.height = '50px';\n      scrollDiv.style.overflow = 'scroll';\n      document.body.appendChild(scrollDiv);\n      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n    }\n  }\n\n  return size;\n}","import * as React from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\n\r\nexport default function LoadingOverlay() {\r\n  return (<div className=\"loading-overlay\"><Spinner animation=\"border\" variant=\"light\" /></div>)\r\n}\r\n","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('modal-body');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  contentClassName,\n  centered,\n  size,\n  fullscreen,\n  children,\n  scrollable,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n  const dialogClass = `${bsPrefix}-dialog`;\n  const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n  return /*#__PURE__*/_jsx(\"div\", { ...props,\n    ref: ref,\n    className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n    children: /*#__PURE__*/_jsx(\"div\", {\n      className: classNames(`${bsPrefix}-content`, contentClassName),\n      children: children\n    })\n  });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('modal-footer');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  closeLabel: 'Close',\n  closeButton: false\n};\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n  return /*#__PURE__*/_jsx(AbstractModalHeader, {\n    ref: ref,\n    ...props,\n    className: classNames(className, bsPrefix)\n  });\n});\nModalHeader.displayName = 'ModalHeader';\nModalHeader.defaultProps = defaultProps;\nexport default ModalHeader;","import createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nconst DivStyledAsH4 = divWithClassName('h4');\nexport default createWithBsPrefix('modal-title', {\n  Component: DivStyledAsH4\n});","import classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  show: false,\n  backdrop: true,\n  keyboard: true,\n  autoFocus: true,\n  enforceFocus: true,\n  restoreFocus: true,\n  animation: true,\n  dialogAs: ModalDialog\n};\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nfunction DialogTransition(props) {\n  return /*#__PURE__*/_jsx(Fade, { ...props,\n    timeout: null\n  });\n}\n\nfunction BackdropTransition(props) {\n  return /*#__PURE__*/_jsx(Fade, { ...props,\n    timeout: null\n  });\n}\n/* eslint-enable no-use-before-define */\n\n\nconst Modal = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  style,\n  dialogClassName,\n  contentClassName,\n  children,\n  dialogAs: Dialog,\n  'aria-labelledby': ariaLabelledby,\n\n  /* BaseModal props */\n  show,\n  animation,\n  backdrop,\n  keyboard,\n  onEscapeKeyDown,\n  onShow,\n  onHide,\n  container,\n  autoFocus,\n  enforceFocus,\n  restoreFocus,\n  restoreFocusOptions,\n  onEntered,\n  onExit,\n  onExiting,\n  onEnter,\n  onEntering,\n  onExited,\n  backdropClassName,\n  manager: propsManager,\n  ...props\n}, ref) => {\n  const [modalStyle, setStyle] = useState({});\n  const [animateStaticModal, setAnimateStaticModal] = useState(false);\n  const waitingForMouseUpRef = useRef(false);\n  const ignoreBackdropClickRef = useRef(false);\n  const removeStaticModalAnimationRef = useRef(null);\n  const [modal, setModalRef] = useCallbackRef();\n  const mergedRef = useMergedRefs(ref, setModalRef);\n  const handleHide = useEventCallback(onHide);\n  const isRTL = useIsRTL();\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n  const modalContext = useMemo(() => ({\n    onHide: handleHide\n  }), [handleHide]);\n\n  function getModalManager() {\n    if (propsManager) return propsManager;\n    return getSharedManager({\n      isRTL\n    });\n  }\n\n  function updateDialogStyle(node) {\n    if (!canUseDOM) return;\n    const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n    const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n    setStyle({\n      paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n      paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n    });\n  }\n\n  const handleWindowResize = useEventCallback(() => {\n    if (modal) {\n      updateDialogStyle(modal.dialog);\n    }\n  });\n  useWillUnmount(() => {\n    removeEventListener(window, 'resize', handleWindowResize);\n    removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n  }); // We prevent the modal from closing during a drag by detecting where the\n  // the click originates from. If it starts in the modal and then ends outside\n  // don't close.\n\n  const handleDialogMouseDown = () => {\n    waitingForMouseUpRef.current = true;\n  };\n\n  const handleMouseUp = e => {\n    if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n      ignoreBackdropClickRef.current = true;\n    }\n\n    waitingForMouseUpRef.current = false;\n  };\n\n  const handleStaticModalAnimation = () => {\n    setAnimateStaticModal(true);\n    removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n      setAnimateStaticModal(false);\n    });\n  };\n\n  const handleStaticBackdropClick = e => {\n    if (e.target !== e.currentTarget) {\n      return;\n    }\n\n    handleStaticModalAnimation();\n  };\n\n  const handleClick = e => {\n    if (backdrop === 'static') {\n      handleStaticBackdropClick(e);\n      return;\n    }\n\n    if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n      ignoreBackdropClickRef.current = false;\n      return;\n    }\n\n    onHide == null ? void 0 : onHide();\n  };\n\n  const handleEscapeKeyDown = e => {\n    if (!keyboard && backdrop === 'static') {\n      // Call preventDefault to stop modal from closing in restart ui,\n      // then play our animation.\n      e.preventDefault();\n      handleStaticModalAnimation();\n    } else if (keyboard && onEscapeKeyDown) {\n      onEscapeKeyDown(e);\n    }\n  };\n\n  const handleEnter = (node, isAppearing) => {\n    if (node) {\n      node.style.display = 'block';\n      updateDialogStyle(node);\n    }\n\n    onEnter == null ? void 0 : onEnter(node, isAppearing);\n  };\n\n  const handleExit = node => {\n    removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n    onExit == null ? void 0 : onExit(node);\n  };\n\n  const handleEntering = (node, isAppearing) => {\n    onEntering == null ? void 0 : onEntering(node, isAppearing); // FIXME: This should work even when animation is disabled.\n\n    addEventListener(window, 'resize', handleWindowResize);\n  };\n\n  const handleExited = node => {\n    if (node) node.style.display = ''; // RHL removes it sometimes\n\n    onExited == null ? void 0 : onExited(node); // FIXME: This should work even when animation is disabled.\n\n    removeEventListener(window, 'resize', handleWindowResize);\n  };\n\n  const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", { ...backdropProps,\n    className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n  }), [animation, backdropClassName, bsPrefix]);\n  const baseModalStyle = { ...style,\n    ...modalStyle\n  }; // Sets `display` always block when `animation` is false\n\n  if (!animation) {\n    baseModalStyle.display = 'block';\n  }\n\n  const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n    role: \"dialog\",\n    ...dialogProps,\n    style: baseModalStyle,\n    className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`),\n    onClick: backdrop ? handleClick : undefined,\n    onMouseUp: handleMouseUp,\n    \"aria-labelledby\": ariaLabelledby,\n    children: /*#__PURE__*/_jsx(Dialog, { ...props,\n      onMouseDown: handleDialogMouseDown,\n      className: dialogClassName,\n      contentClassName: contentClassName,\n      children: children\n    })\n  });\n\n  return /*#__PURE__*/_jsx(ModalContext.Provider, {\n    value: modalContext,\n    children: /*#__PURE__*/_jsx(BaseModal, {\n      show: show,\n      ref: mergedRef,\n      backdrop: backdrop,\n      container: container,\n      keyboard: true // Always set true - see handleEscapeKeyDown\n      ,\n      autoFocus: autoFocus,\n      enforceFocus: enforceFocus,\n      restoreFocus: restoreFocus,\n      restoreFocusOptions: restoreFocusOptions,\n      onEscapeKeyDown: handleEscapeKeyDown,\n      onShow: onShow,\n      onHide: onHide,\n      onEnter: handleEnter,\n      onEntering: handleEntering,\n      onEntered: onEntered,\n      onExit: handleExit,\n      onExiting: onExiting,\n      onExited: handleExited,\n      manager: getModalManager(),\n      transition: animation ? DialogTransition : undefined,\n      backdropTransition: animation ? BackdropTransition : undefined,\n      renderBackdrop: renderBackdrop,\n      renderDialog: renderDialog\n    })\n  });\n});\nModal.displayName = 'Modal';\nModal.defaultProps = defaultProps;\nexport default Object.assign(Modal, {\n  Body: ModalBody,\n  Header: ModalHeader,\n  Title: ModalTitle,\n  Footer: ModalFooter,\n  Dialog: ModalDialog,\n  TRANSITION_DURATION: 300,\n  BACKDROP_TRANSITION_DURATION: 150\n});","var ut=Object.create,Te=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var mt=Object.getOwnPropertyNames;var dt=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty;var ft=t=>Te(t,\"__esModule\",{value:!0});var ht=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var vt=(t,e,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of mt(e))!pt.call(t,r)&&r!==\"default\"&&Te(t,r,{get:()=>e[r],enumerable:!(n=ct(e,r))||n.enumerable});return t},Tt=t=>vt(ft(Te(t!=null?ut(dt(t)):{},\"default\",t&&t.__esModule&&\"default\"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var Fe=ht((oe,_e)=>{(function(t,e){typeof oe==\"object\"&&typeof _e!=\"undefined\"?e(oe):typeof define==\"function\"&&define.amd?define([\"exports\"],e):(t=typeof globalThis!=\"undefined\"?globalThis:t||self,e(t.fastUniqueNumbers={}))})(oe,function(t){\"use strict\";var e=function(p){return function(h){var o=p(h);return h.add(o),o}},n=function(p){return function(h,o){return p.set(h,o),o}},r=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,a=536870912,u=a*2,b=function(p,h){return function(o){var x=h.get(o),M=x===void 0?o.size:x<u?x+1:0;if(!o.has(M))return p(o,M);if(o.size<a){for(;o.has(M);)M=Math.floor(Math.random()*u);return p(o,M)}if(o.size>r)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;o.has(M);)M=Math.floor(Math.random()*r);return p(o,M)}},W=new WeakMap,Z=n(W),m=b(Z,W),c=e(m);t.addUniqueNumber=c,t.generateUniqueNumber=m,Object.defineProperty(t,\"__esModule\",{value:!0})})});import It,{forwardRef as Et}from\"react\";function bt(t){return Et(function(n,r){let a={...n};!a.onPrompt&&t.prototype.onPrompt&&(a.onPrompt=()=>{t.prototype.onPrompt()}),!a.onIdle&&t.prototype.onIdle&&(a.onIdle=()=>{t.prototype.onIdle()}),!a.onActive&&t.prototype.onActive&&(a.onActive=b=>{t.prototype.onActive(b)}),!a.onAction&&t.prototype.onAction&&(a.onAction=b=>{t.prototype.onAction(b)});let u=$(a);return typeof r==\"function\"?r(u):r&&(r.current=u),It.createElement(t,{...n,...u})})}import{useEffect as U,useRef as f,useCallback as I}from\"react\";var K=Tt(Fe());var Ue=t=>t.method!==void 0&&t.method===\"call\";var We=t=>t.error===null&&typeof t.id==\"number\";var Be=t=>{let e=new Map([[0,()=>{}]]),n=new Map([[0,()=>{}]]),r=new Map,a=new Worker(t);return a.addEventListener(\"message\",({data:m})=>{if(Ue(m)){let{params:{timerId:c,timerType:d}}=m;if(d===\"interval\"){let p=e.get(c);if(typeof p==\"number\"){let h=r.get(p);if(h===void 0||h.timerId!==c||h.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof p!=\"undefined\")p();else throw new Error(\"The timer is in an undefined state.\")}else if(d===\"timeout\"){let p=n.get(c);if(typeof p==\"number\"){let h=r.get(p);if(h===void 0||h.timerId!==c||h.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof p!=\"undefined\")p(),n.delete(c);else throw new Error(\"The timer is in an undefined state.\")}}else if(We(m)){let{id:c}=m,d=r.get(c);if(d===void 0)throw new Error(\"The timer is in an undefined state.\");let{timerId:p,timerType:h}=d;r.delete(c),h===\"interval\"?e.delete(p):n.delete(p)}else{let{error:{message:c}}=m;throw new Error(c)}}),{clearInterval:m=>{let c=(0,K.generateUniqueNumber)(r);r.set(c,{timerId:m,timerType:\"interval\"}),e.set(m,c),a.postMessage({id:c,method:\"clear\",params:{timerId:m,timerType:\"interval\"}})},clearTimeout:m=>{let c=(0,K.generateUniqueNumber)(r);r.set(c,{timerId:m,timerType:\"timeout\"}),n.set(m,c),a.postMessage({id:c,method:\"clear\",params:{timerId:m,timerType:\"timeout\"}})},setInterval:(m,c)=>{let d=(0,K.generateUniqueNumber)(e);return e.set(d,()=>{m(),typeof e.get(d)==\"function\"&&a.postMessage({id:null,method:\"set\",params:{delay:c,now:performance.now(),timerId:d,timerType:\"interval\"}})}),a.postMessage({id:null,method:\"set\",params:{delay:c,now:performance.now(),timerId:d,timerType:\"interval\"}}),d},setTimeout:(m,c)=>{let d=(0,K.generateUniqueNumber)(n);return n.set(d,m),a.postMessage({id:null,method:\"set\",params:{delay:c,now:performance.now(),timerId:d,timerType:\"timeout\"}}),d}}};var Q=null,Ve=(t,e)=>()=>{if(Q!==null)return Q;let n=new Blob([e],{type:\"application/javascript; charset=utf-8\"}),r=URL.createObjectURL(n);return Q=t(r),Q.setTimeout(()=>URL.revokeObjectURL(r),0),Q};var He=`(()=>{\"use strict\";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:\"call\",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener(\"message\",(i=>{let{data:s}=i;try{if(\"clear\"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if(\"interval\"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id \"'.concat(t,'\".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if(\"timeout\"!==i)throw new Error('The given type \"'.concat(i,'\" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id \"'.concat(e,'\".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if(\"set\"!==s.method)throw new Error('The given method \"'.concat(s.method,'\" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if(\"interval\"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,\"interval\"))})(i,a,n);else{if(\"timeout\"!==d)throw new Error('The given type \"'.concat(d,'\" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,\"timeout\"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`;var ie=Ve(Be,He),Ge=t=>ie().clearInterval(t),qe=t=>ie().clearTimeout(t),je=(t,e)=>ie().setInterval(t,e),Ye=(t,e)=>ie().setTimeout(t,e);var w=(typeof window==\"undefined\"?\"undefined\":typeof window)==\"object\";var T={setTimeout:w?setTimeout.bind(window):setTimeout,clearTimeout:w?clearTimeout.bind(window):clearTimeout,setInterval:w?setInterval.bind(window):setInterval,clearInterval:w?clearInterval.bind(window):clearInterval},gt={setTimeout:Ye,clearTimeout:qe,setInterval:je,clearInterval:Ge};function wt(){T.setTimeout=setTimeout,T.clearTimeout=clearTimeout,T.setInterval=setInterval,T.clearInterval=clearInterval}function Je(t){T.setTimeout=t.setTimeout,T.clearTimeout=t.clearTimeout,T.setInterval=t.setInterval,T.clearInterval=t.clearInterval}var j={},ze=class{constructor(e){this.closed=!1;this.mc=new MessageChannel;this.name=e,j[e]=j[e]||[],j[e].push(this),this.mc.port1.start(),this.mc.port2.start(),this.onStorage=this.onStorage.bind(this),window.addEventListener(\"storage\",this.onStorage)}onStorage(e){if(e.storageArea!==window.localStorage||e.key.substring(0,this.name.length)!==this.name||e.newValue===null)return;let n=JSON.parse(e.newValue);this.mc.port2.postMessage(n)}postMessage(e){if(this.closed)throw new Error(\"InvalidStateError\");let n=JSON.stringify(e),r=`${this.name}:${String(Date.now())}${String(Math.random())}`;window.localStorage.setItem(r,n),T.setTimeout(()=>{window.localStorage.removeItem(r)},500),j[this.name].forEach(a=>{a!==this&&a.mc.port2.postMessage(JSON.parse(n))})}close(){if(this.closed)return;this.closed=!0,this.mc.port1.close(),this.mc.port2.close(),window.removeEventListener(\"storage\",this.onStorage);let e=j[this.name].indexOf(this);j[this.name].splice(e,1)}get onmessage(){return this.mc.port1.onmessage}set onmessage(e){this.mc.port1.onmessage=e}get onmessageerror(){return this.mc.port1.onmessageerror}set onmessageerror(e){this.mc.port1.onmessageerror=e}addEventListener(e,n){return this.mc.port1.addEventListener(e,n)}removeEventListener(e,n){return this.mc.port1.removeEventListener(e,n)}dispatchEvent(e){return this.mc.port1.dispatchEvent(e)}},Xe=typeof window==\"undefined\"?void 0:typeof window.BroadcastChannel==\"function\"?window.BroadcastChannel:ze;function $e(t=0){return new Promise(e=>T.setTimeout(e,t))}function se(){return Math.random().toString(36).substring(2)}var l;(function(o){o[o.APPLY=0]=\"APPLY\",o[o.TELL=1]=\"TELL\",o[o.CLOSE=2]=\"CLOSE\",o[o.REGISTER=3]=\"REGISTER\",o[o.DEREGISTER=4]=\"DEREGISTER\",o[o.IDLE=5]=\"IDLE\",o[o.ACTIVE=6]=\"ACTIVE\",o[o.PROMPT=7]=\"PROMPT\",o[o.START=8]=\"START\",o[o.RESET=9]=\"RESET\",o[o.ACTIVATE=10]=\"ACTIVATE\",o[o.PAUSE=11]=\"PAUSE\",o[o.RESUME=12]=\"RESUME\",o[o.MESSAGE=13]=\"MESSAGE\"})(l||(l={}));var Ie=class{constructor(e,n){this.token=se();this.isLeader=!1;this.isDead=!1;this.isApplying=!1;this.reApply=!1;this.intervals=[];this.listeners=[];this.channel=e,this.options=n,this.apply=this.apply.bind(this),this.awaitLeadership=this.awaitLeadership.bind(this),this.sendAction=this.sendAction.bind(this)}async apply(){if(this.isLeader||this.isDead)return!1;if(this.isApplying)return this.reApply=!0,!1;this.isApplying=!0;let e=!1,n=r=>{let{token:a,action:u}=r.data;a!==this.token&&(u===l.APPLY&&a>this.token&&(e=!0),u===l.TELL&&(e=!0))};this.channel.addEventListener(\"message\",n);try{return this.sendAction(l.APPLY),await $e(this.options.responseTime),this.channel.removeEventListener(\"message\",n),this.isApplying=!1,e?this.reApply?this.apply():!1:(this.assumeLead(),!0)}catch{return!1}}awaitLeadership(){if(this.isLeader)return Promise.resolve();let e=!1,n=null;return new Promise(r=>{let a=()=>{if(e)return;e=!0,T.clearInterval(n);let b=this.intervals.indexOf(n);this.intervals.splice(b,1),this.channel.removeEventListener(\"message\",u),r()};n=T.setInterval(()=>{this.apply().then(()=>{this.isLeader&&a()})},this.options.fallbackInterval),this.intervals.push(n);let u=b=>{let{action:W}=b.data;W===l.CLOSE&&this.apply().then(()=>{this.isLeader&&a()})};this.channel.addEventListener(\"message\",u)})}sendAction(e){this.channel.postMessage({action:e,token:this.token})}assumeLead(){this.isLeader=!0;let e=n=>{let{action:r}=n.data;r===l.APPLY&&this.sendAction(l.TELL)};return this.channel.addEventListener(\"message\",e),this.listeners.push(e),this.sendAction(l.TELL)}waitForLeadership(){return this.deferred?this.deferred:(this.deferred=this.awaitLeadership(),this.deferred)}close(){this.isDead||(this.isDead=!0,this.isLeader=!1,this.sendAction(l.CLOSE),this.listeners.forEach(e=>this.channel.removeEventListener(\"message\",e)),this.intervals.forEach(e=>T.clearInterval(e)))}};var k;(function(r){r[r.PROMPTED=0]=\"PROMPTED\",r[r.ACTIVE=1]=\"ACTIVE\",r[r.IDLE=2]=\"IDLE\"})(k||(k={}));var Ee=class{constructor(e){this.token=se();this.registry=new Map;this.allIdle=!1;let{channelName:n}=e;if(this.options=e,this.channel=new Xe(n),this.registry.set(this.token,1),e.leaderElection){let r={fallbackInterval:2e3,responseTime:100};this.elector=new Ie(this.channel,r),this.elector.waitForLeadership()}this.channel.addEventListener(\"message\",r=>{let{action:a,token:u,data:b}=r.data;switch(a){case l.REGISTER:this.registry.set(u,2);break;case l.DEREGISTER:this.registry.delete(u);break;case l.IDLE:this.idle(u);break;case l.ACTIVE:this.active(u);break;case l.PROMPT:this.prompt(u);break;case l.START:this.start(u);break;case l.RESET:this.reset(u);break;case l.ACTIVATE:this.activate(u);break;case l.PAUSE:this.pause(u);break;case l.RESUME:this.resume(u);break;case l.MESSAGE:this.options.onMessage(b);break}}),this.send(l.REGISTER)}get isLeader(){if(!this.elector)throw new Error('\\u274C Leader election is not enabled. To Enable it set the \"leaderElection\" property to true.');return this.elector.isLeader}prompt(e=this.token){this.registry.set(e,0);let n=[...this.registry.values()].every(r=>r===0);e===this.token&&this.send(l.PROMPT),n&&this.options.onPrompt()}idle(e=this.token){this.registry.set(e,2);let n=[...this.registry.values()].every(r=>r===2);e===this.token&&this.send(l.IDLE),!this.allIdle&&n&&(this.allIdle=!0,this.options.onIdle())}active(e=this.token){this.allIdle=!1,this.registry.set(e,1);let n=[...this.registry.values()].some(r=>r===1);e===this.token&&this.send(l.ACTIVE),n&&this.options.onActive()}start(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(l.START):this.options.start(!0)}reset(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(l.RESET):this.options.reset(!0)}activate(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(l.ACTIVATE):this.options.activate(!0)}pause(e=this.token){e===this.token?this.send(l.PAUSE):this.options.pause(!0)}resume(e=this.token){e===this.token?this.send(l.RESUME):this.options.resume(!0)}message(e){try{this.channel.postMessage({action:l.MESSAGE,token:this.token,data:e})}catch{}}send(e){try{this.channel.postMessage({action:e,token:this.token})}catch{}}close(){this.options.leaderElection&&this.elector.close(),this.send(l.DEREGISTER),this.channel.close()}};var Ke=w?document:null,be=[\"mousemove\",\"keydown\",\"wheel\",\"DOMMouseScroll\",\"mousewheel\",\"mousedown\",\"touchstart\",\"touchmove\",\"MSPointerDown\",\"MSPointerMove\",\"visibilitychange\"];import{useRef as yt,useEffect as Lt}from\"react\";function F(t){let e=yt(t);return Lt(()=>{e.current=t},[t]),e}function Qe(t,e){let n;function r(...a){n&&clearTimeout(n),n=setTimeout(()=>{t(...a),n=null},e)}return r.cancel=function(){clearTimeout(n)},r}function ae(t,e){let n=0;return function(...r){let a=new Date().getTime();if(!(a-n<e))return n=a,t(...r)}}var E=()=>w?performance.now():Date.now();function $({timeout:t=1e3*60*20,promptTimeout:e=0,element:n=Ke,events:r=be,timers:a=void 0,immediateEvents:u=[],onPrompt:b=()=>{},onIdle:W=()=>{},onActive:Z=()=>{},onAction:m=()=>{},onMessage:c=()=>{},debounce:d=0,throttle:p=0,eventsThrottle:h=200,startOnMount:o=!0,startManually:x=!1,stopOnIdle:M=!1,crossTab:G=!1,name:ge=\"idle-timer\",syncTimers:Y=0,leaderElection:we=!1}={}){let J=f(E()),ye=f(Date.now()),ee=f(E()),D=f(null),N=f(null),z=f(0),v=f(!0),A=f(!1),B=f(!0),X=f(!1),g=f(!1),y=f(0),R=f(0),O=f(null),s=f(null),C=F(t),te=F(e),Ze=F(M),Le=f(u),ue=f(n),ce=f([...new Set([...r,...u]).values()]),ke=F(W),me=F(Z),xe=F(b),re=F(c),L=f();U(()=>{L.current&&L.current.cancel&&L.current.cancel(),d>0?L.current=Qe(m,d):p>0?L.current=ae(m,p):L.current=m},[m,p,d]);let Me=f();U(()=>{G&&Y&&(Me.current=ae(()=>{s.current.active()},Y))},[G,Y]);let P=()=>{O.current!==null&&(T.clearTimeout(O.current),O.current=null)},V=(i,S=!0)=>{P(),O.current=T.setTimeout(pe,i||C.current),S&&(N.current=E())},Pe=i=>{y.current=0,R.current=E(),g.current=!0,V(te.current,!1),xe.current(i)},Se=()=>{P(),v.current=!0,D.current=E(),Ze.current?H():g.current&&(R.current=0,g.current=!1),ke.current()},de=i=>{P(),g.current=!1,R.current=0,v.current=!1,z.current+=E()-D.current,_(),V(),me.current(i)},pe=i=>{if(!v.current){if(L.current.cancel&&L.current.cancel(),te.current>0&&!g.current){s.current?s.current.prompt():Pe(i);return}s.current?s.current.idle():Se();return}s.current?s.current.active():de(i)},Ae=i=>{if(L.current(i),g.current)return;if(P(),!v.current&&Le.current.includes(i.type)){pe(i);return}let S=E()-N.current;if(v.current&&!M||!v.current&&S>C.current){pe(i);return}A.current=!1,y.current=0,R.current=0,V(),G&&Y&&Me.current()},ne=f();U(()=>{let i=X.current;i&&H(),h>0?ne.current=ae(Ae,h):ne.current=Ae,i&&_()},[h,G,Y]);let _=()=>{!w||X.current||(ce.current.forEach(i=>{ue.current.addEventListener(i,ne.current,{capture:!0,passive:!0})}),X.current=!0)},H=(i=!1)=>{!w||(X.current||i)&&(ce.current.forEach(S=>{ue.current.removeEventListener(S,ne.current,{capture:!0})}),X.current=!1)},q=I(i=>{P(),_(),v.current=!1,g.current=!1,A.current=!1,y.current=0,R.current=0,s.current&&!i&&s.current.start(),V()},[O,v,C,s]),fe=I(i=>{P(),_(),v.current=!1,g.current=!1,A.current=!1,y.current=0,R.current=0,ee.current=E(),s.current&&!i&&s.current.reset(),x||V()},[O,v,C,x,s]),Re=I(i=>{P(),_(),(v.current||g.current)&&de(),v.current=!1,g.current=!1,A.current=!1,y.current=0,R.current=0,ee.current=E(),s.current&&!i&&s.current.activate(),V()},[O,v,C,s]),he=I((i=!1)=>A.current?!1:(y.current=Oe(),A.current=!0,H(),P(),s.current&&!i&&s.current.pause(),!0),[O,s]),ve=I((i=!1)=>A.current?(A.current=!1,g.current||_(),v.current||V(y.current),R.current&&(R.current=E()),s.current&&!i&&s.current.resume(),!0):!1,[O,C,y,s]),et=I((i,S)=>{s.current?(S&&re.current(i),s.current.message(i)):S&&re.current(i)},[c]),tt=I(()=>v.current,[v]),rt=I(()=>g.current,[g]),nt=I(()=>{if(!s.current)throw new Error('\\u274C Cross Tab feature is not enabled. To enable it set the \"crossTab\" property to true.');return s.current.isLeader},[s]),ot=I(()=>{if(!s.current)throw new Error('\\u274C Cross Tab feature is not enabled. To enable it set the \"crossTab\" property to true.');return s.current.token},[s]),Oe=I(()=>{if(A.current)return y.current;let i=y.current?y.current:te.current+C.current,S=N.current?E()-N.current:0,Ne=Math.ceil(i-S);return Ne<0?0:Math.abs(Ne)},[C,te,g,y,N]),it=I(()=>Math.round(E()-ee.current),[ee]),Ce=I(()=>Math.round(E()-J.current),[J]),st=I(()=>D.current?new Date(ye.current-J.current+D.current):null,[D]),at=I(()=>N.current?new Date(ye.current-J.current+N.current):null,[N]),De=I(()=>v.current?Math.round(E()-D.current+z.current):Math.round(z.current),[D,z]),lt=I(()=>{let i=Math.round(Ce()-De());return i>=0?i:0},[J,D,z]);return U(()=>{if(d>0&&p>0)throw new Error(\"\\u274C onAction can either be throttled or debounced, not both.\");a&&Je(a);let i=()=>{s.current&&s.current.close(),L.current.cancel&&L.current.cancel(),P(),H(!0)};return w&&window.addEventListener(\"beforeunload\",i),()=>{w&&window.removeEventListener(\"beforeunload\",i),s.current&&s.current.close(),L.current.cancel&&L.current.cancel(),P(),H(!0)}},[]),U(()=>{s.current&&s.current.close(),G?s.current=new Ee({channelName:ge,leaderElection:we,onPrompt:()=>{Pe()},onIdle:()=>{Se()},onActive:()=>{de()},onMessage:re.current,start:q,reset:fe,activate:Re,pause:he,resume:ve}):s.current=null},[G,ge,we,xe,ke,me,re,q,fe,he,ve]),U(()=>{P(),H(!0),B.current||(A.current=!0,v.current=!0,y.current=0),!x&&(o?q():_())},[x,o,B]),U(()=>{if(!B.current){let i=[...new Set([...r,...u]).values()];if(H(),ce.current=i,ue.current=n,Le.current=u,x)return;o?q():_()}},[n,JSON.stringify(r),JSON.stringify(u),B,x,o]),U(()=>{if(B.current)B.current=!1;else{if(C.current=t,x)return;v.current&&(me.current(),s.current&&s.current.active()),q()}},[t,s,x,B,v]),{message:et,start:q,reset:fe,activate:Re,pause:he,resume:ve,isIdle:tt,isPrompted:rt,isLeader:nt,getTabId:ot,getRemainingTime:Oe,getElapsedTime:it,getTotalElapsedTime:Ce,getLastIdleTime:st,getLastActiveTime:at,getTotalIdleTime:De,getTotalActiveTime:lt}}import kt,{createContext as xt,useContext as Mt}from\"react\";var le=xt(null);function Pt(t){let e=$(t);return kt.createElement(le.Provider,{value:e},t.children)}var St=le.Consumer;function At(){return Mt(le)}export{be as DEFAULT_EVENTS,St as IdleTimerConsumer,le as IdleTimerContext,Pt as IdleTimerProvider,wt as createMocks,$ as useIdleTimer,At as useIdleTimerContext,bt as withIdleTimer,gt as workerTimers};\n","export default function FormatMilliseconds(value: number)\r\n{\r\n  let seconds = Math.floor(value / 1000)\r\n  const minutes = Math.floor(seconds / 60)\r\n  seconds = seconds % 60\r\n\r\n  return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\r\n}\r\n","import React, { useCallback, useEffect, useRef, useState } from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { useIdleTimer } from 'react-idle-timer'\r\nimport FormatMilliseconds from \"../formatters/FormatMilliseconds\"\r\nimport { useAuthStore } from \"../stores/StoreProvider\"\r\n\r\nconst TIMEOUT: number = 1000 * 60 * 8\r\nconst PROMPT_TIMEOUT: number = 1000 * 60 * 2\r\nconst TOTAL_TIMEOUT = TIMEOUT + PROMPT_TIMEOUT\r\n\r\nexport default function IdleTimer() {\r\n  const authStore = useAuthStore()\r\n  const { t } = useTranslation()\r\n  const [showPrompt, setShowPrompt] = useState<boolean>(false)\r\n  const [remainingTime, setRemainingTime] = useState<number>(0)\r\n  const started = useRef(Date.now())\r\n  const promptTimer = useRef<number | undefined>(undefined)\r\n  const promptStarted = useRef<number | undefined>(undefined)\r\n\r\n  useEffect(() => () => destroyPromptTimer(), [promptTimer])\r\n\r\n  const destroyPromptTimer = () => {\r\n    if (promptTimer.current !== undefined) {\r\n      window.clearTimeout(promptTimer.current)\r\n      promptTimer.current = undefined\r\n      promptStarted.current = undefined\r\n    }\r\n  }\r\n\r\n  const onPrompt = () => {\r\n    destroyPromptTimer()\r\n    promptTimer.current = window.setTimeout(onIdle, PROMPT_TIMEOUT)\r\n    promptStarted.current = Date.now()\r\n    setShowPrompt(true)\r\n  }\r\n\r\n  const onIdle = useCallback(() => {\r\n    setShowPrompt(false)\r\n    authStore.logout()\r\n  }, [authStore])\r\n\r\n  const onAction = (e?: Event) => {\r\n    if (e?.type === \"visibilitychange\") {\r\n      const diff = Date.now() - started.current\r\n      if (diff < TOTAL_TIMEOUT && diff > TIMEOUT) {\r\n        pause()\r\n        onPrompt()\r\n        return\r\n      }\r\n      if (diff > TOTAL_TIMEOUT) {\r\n        pause()\r\n        onIdle()\r\n        return\r\n      }\r\n      reset()\r\n    }\r\n    if (showPrompt) return\r\n\r\n    started.current = Date.now()\r\n  }\r\n\r\n  const { reset, pause } = useIdleTimer({\r\n    onIdle: onPrompt,\r\n    onAction,\r\n    timeout: TIMEOUT,\r\n    stopOnIdle: true\r\n  })\r\n\r\n  const onContinue = () => {\r\n    destroyPromptTimer()\r\n    started.current = Date.now()\r\n    reset()\r\n    setShowPrompt(false)\r\n  }\r\n\r\n  const processRemainingTime = useCallback(() => {\r\n    if (!promptStarted.current) {\r\n      return\r\n    }\r\n    const diff = Date.now() - promptStarted.current\r\n    const remainingTime = PROMPT_TIMEOUT - diff\r\n    if (remainingTime < 0) {\r\n      onIdle()\r\n      return\r\n    }\r\n    setRemainingTime(remainingTime)\r\n  }, [promptStarted, onIdle])\r\n\r\n  useEffect(() => {\r\n    if (!showPrompt) {\r\n      return\r\n    }\r\n\r\n    processRemainingTime()\r\n\r\n    const interval = window.setInterval(() => {\r\n      processRemainingTime()\r\n    }, 500)\r\n\r\n    return () => window.clearInterval(interval)\r\n  }, [showPrompt, processRemainingTime])\r\n\r\n  return <>\r\n    <Modal backdrop=\"static\" show={showPrompt} centered>\r\n      <Modal.Header>\r\n        <Modal.Title>{t(\"idlePrompt.title\")}</Modal.Title>\r\n      </Modal.Header>\r\n      <Modal.Body>\r\n        <p>{t(\"idlePrompt.line1\")}</p>\r\n        <p>{t(\"idlePrompt.line2\", { duration: FormatMilliseconds(remainingTime) })}</p>\r\n        <p>{t(\"idlePrompt.line3\")} <b>{t(\"idlePrompt.button\")}</b>.</p>\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={onContinue}>{t(\"idlePrompt.button\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>\r\n}","import DOMPurify from \"dompurify\"\r\n\r\nexport function sanitize(value: string) {\r\n  return DOMPurify.sanitize(value, { ADD_ATTR: ['target'] })\r\n}","import React from \"react\"\r\nimport { observer } from \"mobx-react-lite\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\"\r\nimport { sanitize } from \"../../formatters/Sanitize\"\r\n\r\nexport function Notification(props: {skip: boolean}) {\r\n  const authStore = useAuthStore()\r\n  const show = !props.skip && authStore.domain?.notifications?.length && authStore.domain?.notifications?.length > 0 && !authStore.notificationProcessed\r\n\r\n  return (<>\r\n    {!!show && authStore.domain?.notifications?.map((n, i) => <div key={i} className=\"mb-1 alert alert-warning alert-dismissible fade show\" dangerouslySetInnerHTML={{ __html: sanitize(n ?? \"\") }} />)}\r\n  </>)\r\n}\r\n\r\nexport default observer(Notification)\r\n","import { observer } from 'mobx-react-lite';\r\nimport * as React from 'react';\r\nimport { useRef, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { toast } from 'react-toastify';\r\nimport { getDomainInfo } from '../api/DomainInfo';\r\nimport { getDonorInfo } from '../api/DonorInfo';\r\nimport Domain from '../api/models/Domain';\r\nimport Donor from '../api/models/Donor';\r\nimport { useAuthStore } from '../stores/StoreProvider';\r\nimport { Footer } from './Layout/Footer';\r\nimport { Header } from './Layout/Header';\r\nimport LoadingOverlay from './LoadingOverlay';\r\nimport IdleTimer from \"./IdleTimer\"\r\nimport { useLocation } from 'react-router';\r\nimport { AppRoute } from '../AppRoute';\r\nimport Notification from './Layout/Notification'\r\n\r\ninterface LayoutProps {\r\n  loading?: boolean\r\n}\r\n\r\nexport function Layout(props: React.PropsWithChildren<LayoutProps>) {\r\n  const { t } = useTranslation()\r\n  const authStore = useAuthStore()\r\n  const prevAuthToken = useRef<string>(\"\")\r\n  const showNav = !!authStore.authToken\r\n  const domain = authStore.domain\r\n\r\n  React.useEffect(() => {\r\n    const subscription = getDomainInfo().subscribe({\r\n      next: (result: Domain) => authStore.setDomain(result),\r\n      error: (e) => toast.error(t(e.message, { data: e.data }))\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [])\r\n\r\n  React.useEffect(() => {\r\n    if (authStore.authToken && !prevAuthToken.current) {\r\n      getDonorInfo().subscribe({\r\n        next: (result: Donor) => authStore.setDonorInfo(result),\r\n        error: (e) => toast.error(t(e.message, { data: e.data }))\r\n      })\r\n      return () => {\r\n        prevAuthToken.current = authStore.authToken\r\n      }\r\n    }\r\n  }, [authStore.authToken])\r\n\r\n  const location = useLocation()\r\n  const showLinks = location.pathname === AppRoute.Registration || location.pathname === AppRoute.RegistrationAlt\r\n  const skipNotification = location.pathname === AppRoute.FAQ\r\n\r\n  return (\r\n    <>\r\n      <Header nav={showNav && !showLinks} logo={showNav ? authStore.domain?.headerLogo : authStore.domain?.loginLogo} banner={authStore.domain?.homePageBanner} showLinks={showLinks} />\r\n      <main>\r\n        <Notification skip={skipNotification} />\r\n        {!!authStore.authToken && <IdleTimer />}\r\n        {domain && props.children}\r\n      </main>\r\n      <Footer />\r\n      {props.loading && <LoadingOverlay />}\r\n    </>\r\n  )\r\n}\r\n\r\nexport default observer(Layout)\r\n","import Donor from \"./models/Donor\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getDonorInfo = () => ObservableFromFetch<Donor>(\"Results/DonorInfo\")\r\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardImg = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n  bsPrefix,\n  className,\n  variant,\n  as: Component = 'img',\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'card-img');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    className: classNames(variant ? `${prefix}-${variant}` : prefix, className),\n    ...props\n  });\n});\nCardImg.displayName = 'CardImg';\nexport default CardImg;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport CardHeaderContext from './CardHeaderContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardHeader = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'card-header');\n  const contextValue = useMemo(() => ({\n    cardHeaderBsPrefix: prefix\n  }), [prefix]);\n  return /*#__PURE__*/_jsx(CardHeaderContext.Provider, {\n    value: contextValue,\n    children: /*#__PURE__*/_jsx(Component, {\n      ref: ref,\n      ...props,\n      className: classNames(className, prefix)\n    })\n  });\n});\nCardHeader.displayName = 'CardHeader';\nexport default CardHeader;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nimport CardImg from './CardImg';\nimport CardHeader from './CardHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH5 = divWithClassName('h5');\nconst DivStyledAsH6 = divWithClassName('h6');\nconst CardBody = createWithBsPrefix('card-body');\nconst CardTitle = createWithBsPrefix('card-title', {\n  Component: DivStyledAsH5\n});\nconst CardSubtitle = createWithBsPrefix('card-subtitle', {\n  Component: DivStyledAsH6\n});\nconst CardLink = createWithBsPrefix('card-link', {\n  Component: 'a'\n});\nconst CardText = createWithBsPrefix('card-text', {\n  Component: 'p'\n});\nconst CardFooter = createWithBsPrefix('card-footer');\nconst CardImgOverlay = createWithBsPrefix('card-img-overlay');\nconst defaultProps = {\n  body: false\n};\nconst Card = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  bg,\n  text,\n  border,\n  body,\n  children,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  const prefix = useBootstrapPrefix(bsPrefix, 'card');\n  return /*#__PURE__*/_jsx(Component, {\n    ref: ref,\n    ...props,\n    className: classNames(className, prefix, bg && `bg-${bg}`, text && `text-${text}`, border && `border-${border}`),\n    children: body ? /*#__PURE__*/_jsx(CardBody, {\n      children: children\n    }) : children\n  });\n});\nCard.displayName = 'Card';\nCard.defaultProps = defaultProps;\nexport default Object.assign(Card, {\n  Img: CardImg,\n  Title: CardTitle,\n  Subtitle: CardSubtitle,\n  Body: CardBody,\n  Link: CardLink,\n  Text: CardText,\n  Header: CardHeader,\n  Footer: CardFooter,\n  ImgOverlay: CardImgOverlay\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n  /**\n   * Specify whether the feedback is for valid or invalid fields\n   *\n   * @type {('valid'|'invalid')}\n   */\n  type: PropTypes.string,\n\n  /** Display feedback as a tooltip. */\n  tooltip: PropTypes.bool,\n  as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n  as: Component = 'div',\n  className,\n  type = 'valid',\n  tooltip = false,\n  ...props\n}, ref) => /*#__PURE__*/_jsx(Component, { ...props,\n  ref: ref,\n  className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","import * as React from 'react'; // TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n  id,\n  bsPrefix,\n  className,\n  type = 'checkbox',\n  isValid = false,\n  isInvalid = false,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'input',\n  ...props\n}, ref) => {\n  const {\n    controlId\n  } = useContext(FormContext);\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ref: ref,\n    type: type,\n    id: id || controlId,\n    className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n  });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  htmlFor,\n  ...props\n}, ref) => {\n  const {\n    controlId\n  } = useContext(FormContext);\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n  return /*#__PURE__*/_jsx(\"label\", { ...props,\n    ref: ref,\n    htmlFor: htmlFor || controlId,\n    className: classNames(className, bsPrefix)\n  });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { hasChildOfType } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n  id,\n  bsPrefix,\n  bsSwitchPrefix,\n  inline = false,\n  disabled = false,\n  isValid = false,\n  isInvalid = false,\n  feedbackTooltip = false,\n  feedback,\n  feedbackType,\n  className,\n  style,\n  title = '',\n  type = 'checkbox',\n  label,\n  children,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as = 'input',\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n  bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n  const {\n    controlId\n  } = useContext(FormContext);\n  const innerFormContext = useMemo(() => ({\n    controlId: id || controlId\n  }), [controlId, id]);\n  const hasLabel = !children && label != null && label !== false || hasChildOfType(children, FormCheckLabel);\n\n  const input = /*#__PURE__*/_jsx(FormCheckInput, { ...props,\n    type: type === 'switch' ? 'checkbox' : type,\n    ref: ref,\n    isValid: isValid,\n    isInvalid: isInvalid,\n    disabled: disabled,\n    as: as\n  });\n\n  return /*#__PURE__*/_jsx(FormContext.Provider, {\n    value: innerFormContext,\n    children: /*#__PURE__*/_jsx(\"div\", {\n      style: style,\n      className: classNames(className, hasLabel && bsPrefix, inline && `${bsPrefix}-inline`, type === 'switch' && bsSwitchPrefix),\n      children: children || /*#__PURE__*/_jsxs(_Fragment, {\n        children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n          title: title,\n          children: label\n        }), feedback && /*#__PURE__*/_jsx(Feedback, {\n          type: feedbackType,\n          tooltip: feedbackTooltip,\n          children: feedback\n        })]\n      })\n    })\n  });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n  Input: FormCheckInput,\n  Label: FormCheckLabel\n});","import * as React from 'react';\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\n\nfunction map(children, func) {\n  let index = 0;\n  return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\n\n\nfunction forEach(children, func) {\n  let index = 0;\n  React.Children.forEach(children, child => {\n    if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n  });\n}\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\n\n\nfunction hasChildOfType(children, type) {\n  return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\n\nexport { map, forEach, hasChildOfType };","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  type,\n  size,\n  htmlSize,\n  id,\n  className,\n  isValid = false,\n  isInvalid = false,\n  plaintext,\n  readOnly,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'input',\n  ...props\n}, ref) => {\n  const {\n    controlId\n  } = useContext(FormContext);\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n  let classes;\n\n  if (plaintext) {\n    classes = {\n      [`${bsPrefix}-plaintext`]: true\n    };\n  } else {\n    classes = {\n      [bsPrefix]: true,\n      [`${bsPrefix}-${size}`]: size\n    };\n  }\n\n  process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `<FormControl>` when `id` is specified.') : void 0;\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    type: type,\n    size: htmlSize,\n    ref: ref,\n    readOnly: readOnly,\n    id: id || controlId,\n    className: classNames(className, classes, isValid && `is-valid`, isInvalid && `is-invalid`, type === 'color' && `${bsPrefix}-color`)\n  });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n  Feedback\n});","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('form-floating');","import * as React from 'react';\nimport { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormGroup = /*#__PURE__*/React.forwardRef(({\n  controlId,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  const context = useMemo(() => ({\n    controlId\n  }), [controlId]);\n  return /*#__PURE__*/_jsx(FormContext.Provider, {\n    value: context,\n    children: /*#__PURE__*/_jsx(Component, { ...props,\n      ref: ref\n    })\n  });\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  column: false,\n  visuallyHidden: false\n};\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'label',\n  bsPrefix,\n  column,\n  visuallyHidden,\n  className,\n  htmlFor,\n  ...props\n}, ref) => {\n  const {\n    controlId\n  } = useContext(FormContext);\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n  let columnClass = 'col-form-label';\n  if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n  const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n  process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `<FormLabel>` when `htmlFor` is specified.') : void 0;\n  htmlFor = htmlFor || controlId;\n  if (column) return /*#__PURE__*/_jsx(Col, {\n    ref: ref,\n    as: \"label\",\n    className: classes,\n    htmlFor: htmlFor,\n    ...props\n  });\n  return (\n    /*#__PURE__*/\n    // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n    _jsx(Component, {\n      ref: ref,\n      className: classes,\n      htmlFor: htmlFor,\n      ...props\n    })\n  );\n});\nFormLabel.displayName = 'FormLabel';\nFormLabel.defaultProps = defaultProps;\nexport default FormLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  id,\n  ...props\n}, ref) => {\n  const {\n    controlId\n  } = useContext(FormContext);\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n  return /*#__PURE__*/_jsx(\"input\", { ...props,\n    type: \"range\",\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    id: id || controlId\n  });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  size,\n  htmlSize,\n  className,\n  isValid = false,\n  isInvalid = false,\n  id,\n  ...props\n}, ref) => {\n  const {\n    controlId\n  } = useContext(FormContext);\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n  return /*#__PURE__*/_jsx(\"select\", { ...props,\n    size: htmlSize,\n    ref: ref,\n    className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n    id: id || controlId\n  });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n  bsPrefix,\n  className,\n  as: Component = 'small',\n  muted,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n  return /*#__PURE__*/_jsx(Component, { ...props,\n    ref: ref,\n    className: classNames(className, bsPrefix, muted && 'text-muted')\n  });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, { ...props,\n  ref: ref,\n  type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n  Input: FormCheck.Input,\n  Label: FormCheck.Label\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport FormGroup from './FormGroup';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FloatingLabel = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  className,\n  children,\n  controlId,\n  label,\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n  return /*#__PURE__*/_jsxs(FormGroup, {\n    ref: ref,\n    className: classNames(className, bsPrefix),\n    controlId: controlId,\n    ...props,\n    children: [children, /*#__PURE__*/_jsx(\"label\", {\n      htmlFor: controlId,\n      children: label\n    })]\n  });\n});\nFloatingLabel.displayName = 'FloatingLabel';\nexport default FloatingLabel;","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n  /**\n   * The Form `ref` will be forwarded to the underlying element,\n   * which means, unless it's rendered `as` a composite component,\n   * it will be a DOM node, when resolved.\n   *\n   * @type {ReactRef}\n   * @alias ref\n   */\n  _ref: PropTypes.any,\n\n  /**\n   * Mark a form as having been validated. Setting it to `true` will\n   * toggle any validation styles on the forms elements.\n   */\n  validated: PropTypes.bool,\n  as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n  className,\n  validated,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'form',\n  ...props\n}, ref) => /*#__PURE__*/_jsx(Component, { ...props,\n  ref: ref,\n  className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n  Group: FormGroup,\n  Control: FormControl,\n  Floating: FormFloating,\n  Check: FormCheck,\n  Switch,\n  Label: FormLabel,\n  Text: FormText,\n  Range: FormRange,\n  Select: FormSelect,\n  FloatingLabel\n});","export default function FormatLocalISODateString(date: Date | null) {\r\n  if (date) {\r\n    const offset = date.getTimezoneOffset()\r\n    const utcDate = new Date(date.getTime() - (offset*60*1000))\r\n    return utcDate.toISOString().substring(0, 10)\r\n  } else {\r\n    return \"\"\r\n  }\r\n}\r\n\r\nexport function FormatToLocalDateString(value: string | undefined) {\r\n  if (!value) {\r\n    return value\r\n  }\r\n  if (value.match(/^\\d{4}-\\d{2}-\\d{2}$/)) {\r\n    return `${value}T00:00:00`\r\n  }\r\n  return value\r\n}\r\n","export default function EscapePhoneNumber(phone: string) {\r\n  return phone.replace(/[^0-9]/g, \"\")\r\n}\r\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormCheckInput from './FormCheckInput';\nimport InputGroupContext from './InputGroupContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst InputGroupText = createWithBsPrefix('input-group-text', {\n  Component: 'span'\n});\n\nconst InputGroupCheckbox = props => /*#__PURE__*/_jsx(InputGroupText, {\n  children: /*#__PURE__*/_jsx(FormCheckInput, {\n    type: \"checkbox\",\n    ...props\n  })\n});\n\nconst InputGroupRadio = props => /*#__PURE__*/_jsx(InputGroupText, {\n  children: /*#__PURE__*/_jsx(FormCheckInput, {\n    type: \"radio\",\n    ...props\n  })\n});\n\n/**\n *\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nconst InputGroup = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  size,\n  hasValidation,\n  className,\n  // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n  as: Component = 'div',\n  ...props\n}, ref) => {\n  bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group'); // Intentionally an empty object. Used in detecting if a dropdown\n  // exists under an input group.\n\n  const contextValue = useMemo(() => ({}), []);\n  return /*#__PURE__*/_jsx(InputGroupContext.Provider, {\n    value: contextValue,\n    children: /*#__PURE__*/_jsx(Component, {\n      ref: ref,\n      ...props,\n      className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, hasValidation && 'has-validation')\n    })\n  });\n});\nInputGroup.displayName = 'InputGroup';\nexport default Object.assign(InputGroup, {\n  Text: InputGroupText,\n  Radio: InputGroupRadio,\n  Checkbox: InputGroupCheckbox\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar CalendarDate = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M6.445 11.688V6.354h-.633A12.6 12.6 0 0 0 4.5 7.16v.695c.375-.257.969-.62 1.258-.777h.012v4.61h.675zm1.188-1.305c.047.64.594 1.406 1.703 1.406 1.258 0 2-1.066 2-2.871 0-1.934-.781-2.668-1.953-2.668-.926 0-1.797.672-1.797 1.809 0 1.16.824 1.77 1.676 1.77.746 0 1.23-.376 1.383-.79h.027c-.004 1.316-.461 2.164-1.305 2.164-.664 0-1.008-.45-1.05-.82h-.684zm2.953-2.317c0 .696-.559 1.18-1.184 1.18-.601 0-1.144-.383-1.144-1.2 0-.823.582-1.21 1.168-1.21.633 0 1.16.398 1.16 1.23z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z\"\n  }));\n});\nCalendarDate.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nCalendarDate.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default CalendarDate;","import * as React from \"react\";\r\nimport { Form, InputGroup } from \"react-bootstrap\";\r\nimport { CalendarDate } from \"react-bootstrap-icons\";\r\nimport InputMask from 'react-input-mask';\r\n\r\ninterface BirthdayInputProps {\r\n  required?: boolean\r\n  isInvalid?: boolean\r\n  placeholder?: string\r\n  value?: string\r\n  onClick?: () => void\r\n  onChange?: () => void\r\n}\r\n\r\nexport class BirthdayInput extends React.Component<BirthdayInputProps> {\r\n  render() {\r\n    return (\r\n      <InputGroup>\r\n        <InputGroup.Text>\r\n          <CalendarDate size={24} onClick={this.props.onClick} />\r\n        </InputGroup.Text>\r\n        <InputMask mask=\"99/99/9999\" {...this.props}>\r\n          <Form.Control type=\"text\" />\r\n        </InputMask>\r\n      </InputGroup>\r\n    )\r\n  }\r\n}\r\n","var formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: 'menos de un segundo',\n    other: 'menos de {{count}} segundos'\n  },\n  xSeconds: {\n    one: '1 segundo',\n    other: '{{count}} segundos'\n  },\n  halfAMinute: 'medio minuto',\n  lessThanXMinutes: {\n    one: 'menos de un minuto',\n    other: 'menos de {{count}} minutos'\n  },\n  xMinutes: {\n    one: '1 minuto',\n    other: '{{count}} minutos'\n  },\n  aboutXHours: {\n    one: 'alrededor de 1 hora',\n    other: 'alrededor de {{count}} horas'\n  },\n  xHours: {\n    one: '1 hora',\n    other: '{{count}} horas'\n  },\n  xDays: {\n    one: '1 día',\n    other: '{{count}} días'\n  },\n  aboutXWeeks: {\n    one: 'alrededor de 1 semana',\n    other: 'alrededor de {{count}} semanas'\n  },\n  xWeeks: {\n    one: '1 semana',\n    other: '{{count}} semanas'\n  },\n  aboutXMonths: {\n    one: 'alrededor de 1 mes',\n    other: 'alrededor de {{count}} meses'\n  },\n  xMonths: {\n    one: '1 mes',\n    other: '{{count}} meses'\n  },\n  aboutXYears: {\n    one: 'alrededor de 1 año',\n    other: 'alrededor de {{count}} años'\n  },\n  xYears: {\n    one: '1 año',\n    other: '{{count}} años'\n  },\n  overXYears: {\n    one: 'más de 1 año',\n    other: 'más de {{count}} años'\n  },\n  almostXYears: {\n    one: 'casi 1 año',\n    other: 'casi {{count}} años'\n  }\n};\n\nvar formatDistance = function (token, count, options) {\n  var result;\n  var tokenValue = formatDistanceLocale[token];\n\n  if (typeof tokenValue === 'string') {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace('{{count}}', count.toString());\n  }\n\n  if (options !== null && options !== void 0 && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return 'en ' + result;\n    } else {\n      return 'hace ' + result;\n    }\n  }\n\n  return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n  full: \"EEEE, d 'de' MMMM 'de' y\",\n  long: \"d 'de' MMMM 'de' y\",\n  medium: 'd MMM y',\n  short: 'dd/MM/y'\n};\nvar timeFormats = {\n  full: 'HH:mm:ss zzzz',\n  long: 'HH:mm:ss z',\n  medium: 'HH:mm:ss',\n  short: 'HH:mm'\n};\nvar dateTimeFormats = {\n  full: \"{{date}} 'a las' {{time}}\",\n  long: \"{{date}} 'a las' {{time}}\",\n  medium: '{{date}}, {{time}}',\n  short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: 'full'\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: 'full'\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: 'full'\n  })\n};\nexport default formatLong;","var formatRelativeLocale = {\n  lastWeek: \"'el' eeee 'pasado a la' p\",\n  yesterday: \"'ayer a la' p\",\n  today: \"'hoy a la' p\",\n  tomorrow: \"'mañana a la' p\",\n  nextWeek: \"eeee 'a la' p\",\n  other: 'P'\n};\nvar formatRelativeLocalePlural = {\n  lastWeek: \"'el' eeee 'pasado a las' p\",\n  yesterday: \"'ayer a las' p\",\n  today: \"'hoy a las' p\",\n  tomorrow: \"'mañana a las' p\",\n  nextWeek: \"eeee 'a las' p\",\n  other: 'P'\n};\n\nvar formatRelative = function (token, date, _baseDate, _options) {\n  if (date.getUTCHours() !== 1) {\n    return formatRelativeLocalePlural[token];\n  } else {\n    return formatRelativeLocale[token];\n  }\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n  narrow: ['AC', 'DC'],\n  abbreviated: ['AC', 'DC'],\n  wide: ['antes de cristo', 'después de cristo']\n};\nvar quarterValues = {\n  narrow: ['1', '2', '3', '4'],\n  abbreviated: ['T1', 'T2', 'T3', 'T4'],\n  wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n  narrow: ['e', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n  abbreviated: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n  wide: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre']\n};\nvar dayValues = {\n  narrow: ['d', 'l', 'm', 'm', 'j', 'v', 's'],\n  short: ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sá'],\n  abbreviated: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],\n  wide: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']\n};\nvar dayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mn',\n    noon: 'md',\n    morning: 'mañana',\n    afternoon: 'tarde',\n    evening: 'tarde',\n    night: 'noche'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'medianoche',\n    noon: 'mediodia',\n    morning: 'mañana',\n    afternoon: 'tarde',\n    evening: 'tarde',\n    night: 'noche'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'medianoche',\n    noon: 'mediodia',\n    morning: 'mañana',\n    afternoon: 'tarde',\n    evening: 'tarde',\n    night: 'noche'\n  }\n};\nvar formattingDayPeriodValues = {\n  narrow: {\n    am: 'a',\n    pm: 'p',\n    midnight: 'mn',\n    noon: 'md',\n    morning: 'de la mañana',\n    afternoon: 'de la tarde',\n    evening: 'de la tarde',\n    night: 'de la noche'\n  },\n  abbreviated: {\n    am: 'AM',\n    pm: 'PM',\n    midnight: 'medianoche',\n    noon: 'mediodia',\n    morning: 'de la mañana',\n    afternoon: 'de la tarde',\n    evening: 'de la tarde',\n    night: 'de la noche'\n  },\n  wide: {\n    am: 'a.m.',\n    pm: 'p.m.',\n    midnight: 'medianoche',\n    noon: 'mediodia',\n    morning: 'de la mañana',\n    afternoon: 'de la tarde',\n    evening: 'de la tarde',\n    night: 'de la noche'\n  }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n  var number = Number(dirtyNumber);\n  return number + 'º';\n};\n\nvar localize = {\n  ordinalNumber: ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: 'wide'\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: 'wide',\n    argumentCallback: function (quarter) {\n      return Number(quarter) - 1;\n    }\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: 'wide'\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: 'wide'\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: 'wide',\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: 'wide'\n  })\n};\nexport default localize;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n  narrow: /^(ac|dc|a|d)/i,\n  abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n  wide: /^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i\n};\nvar parseEraPatterns = {\n  any: [/^ac/i, /^dc/i],\n  wide: [/^(antes de cristo|antes de la era com[uú]n)/i, /^(despu[eé]s de cristo|era com[uú]n)/i]\n};\nvar matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n  narrow: /^[efmajsond]/i,\n  abbreviated: /^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,\n  wide: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i\n};\nvar parseMonthPatterns = {\n  narrow: [/^e/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^en/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]\n};\nvar matchDayPatterns = {\n  narrow: /^[dlmjvs]/i,\n  short: /^(do|lu|ma|mi|ju|vi|s[áa])/i,\n  abbreviated: /^(dom|lun|mar|mi[ée]|jue|vie|s[áa]b)/i,\n  wide: /^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n  any: [/^do/i, /^lu/i, /^ma/i, /^mi/i, /^ju/i, /^vi/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n  narrow: /^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,\n  any: /^([ap]\\.?\\s?m\\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i\n};\nvar parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mn/i,\n    noon: /^md/i,\n    morning: /mañana/i,\n    afternoon: /tarde/i,\n    evening: /tarde/i,\n    night: /noche/i\n  }\n};\nvar match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    }\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: 'any'\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: 'any',\n    valueCallback: function (index) {\n      return index + 1;\n    }\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: 'any'\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: 'wide',\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: 'any'\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: 'any',\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: 'any'\n  })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary Spanish locale.\n * @language Spanish\n * @iso-639-2 spa\n * @author Juan Angosto [@juanangosto]{@link https://github.com/juanangosto}\n * @author Guillermo Grau [@guigrpa]{@link https://github.com/guigrpa}\n * @author Fernando Agüero [@fjaguero]{@link https://github.com/fjaguero}\n * @author Gastón Haro [@harogaston]{@link https://github.com/harogaston}\n * @author Yago Carballo [@YagoCarballo]{@link https://github.com/YagoCarballo}\n */\nvar locale = {\n  code: 'es',\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1\n    /* Monday */\n    ,\n    firstWeekContainsDate: 1\n  }\n};\nexport default locale;","import React, { useState } from 'react'\r\nimport { Form } from 'react-bootstrap'\r\nimport DatePicker, { registerLocale } from \"react-datepicker\";\r\nimport { useTranslation } from 'react-i18next'\r\nimport { BirthdayInput } from '../BirthdayInput'\r\nimport en from \"date-fns/locale/en-US\"\r\nimport es from \"date-fns/locale/es\"\r\nimport { useAuthStore } from '../../stores/StoreProvider';\r\nregisterLocale(\"en\", en)\r\nregisterLocale(\"es\", es)\r\n\r\ninterface DateOfBirthProps {\r\n  onChange: (value: Date | null) => void\r\n  onSubmit?: () => void\r\n  title?: string\r\n  skipFeedback?: boolean\r\n  initialDate?: Date\r\n}\r\n\r\nexport default function DateOfBirth(props: DateOfBirthProps) {\r\n  const { t } = useTranslation()\r\n  const [birthdate, setBirthdate] = useState<Date | null>(props.initialDate || null)\r\n  const [birthdateValid, setBirthdateValid] = useState(false)\r\n  const [birthdateTouched, setBirthdateTouched] = useState(false)\r\n  const authStore = useAuthStore()\r\n\r\n  var date = new Date()\r\n  date.setFullYear( date.getFullYear() - 40 )\r\n\r\n  return (\r\n    <>\r\n      <Form.Label className=\"fw-bold text-uppercase\">{props.title || t(\"login.dateOfBirth.title\")}</Form.Label>\r\n      <DatePicker\r\n        locale={authStore.language}\r\n        selected={birthdate || props.initialDate}\r\n        onChange={date => {\r\n          setBirthdate(date)\r\n          setBirthdateTouched(true)\r\n          setBirthdateValid(date !== null)\r\n          props.onChange(date)\r\n        }}\r\n        onBlur={() => {\r\n          setBirthdateTouched(true)\r\n        }}\r\n        maxDate={new Date()}\r\n        peekNextMonth\r\n        showMonthDropdown\r\n        showYearDropdown\r\n        dropdownMode=\"select\"\r\n        className=\"form-control\"\r\n        wrapperClassName={birthdateTouched && !birthdateValid ? \"is-invalid\" : \"\"}\r\n        customInput={<BirthdayInput />}\r\n        onKeyDown={(e) => { if (e.key === \"Enter\" && props.onSubmit) { props.onSubmit() } }}\r\n        openToDate={date}\r\n      />\r\n      {birthdateTouched && !birthdateValid && !props.skipFeedback && <Form.Control.Feedback className=\"order-last\" type=\"invalid\">{t(\"login.dateOfBirth.invalid\")}</Form.Control.Feedback>}\r\n    </>\r\n  )\r\n}\r\n","import Country from \"./models/Country\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getCountries = () => ObservableFromFetch<Country[]>(\"Countries/List\")\r\n","import React, { useEffect, useRef } from \"react\"\r\nimport { TFunction, useTranslation } from \"react-i18next\"\r\n\r\nexport const useTranslationWithRef = (): [React.MutableRefObject<TFunction<\"translation\", undefined>>, TFunction<\"translation\", undefined>] => {\r\n  const { t } = useTranslation()\r\n  const ref = useRef(t)\r\n\r\n  useEffect(() => {\r\n    ref.current = t\r\n  }, [t])\r\n\r\n  return [ref, t]\r\n}\r\n","import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useReducer, useState } from 'react'\r\nimport { Form, Spinner } from 'react-bootstrap'\r\nimport FormContext from 'react-bootstrap/FormContext'\r\nimport IntlTelInput, { CountryData } from 'react-intl-tel-input'\r\nimport AllCountries from 'react-intl-tel-input/dist/components/AllCountries'\r\nimport { toast } from 'react-toastify'\r\nimport { getCountries } from \"../../api/Countries\"\r\nimport Country from \"../../api/models/Country\"\r\nimport { APIError } from '../../api/ObservableFromFetch'\r\nimport { useTranslationWithRef } from '../../hooks/useTranslationWithRef'\r\nimport EscapePhoneNumber from '../../formatters/EscapePhoneNumber'\r\n\r\nexport interface PhoneNumberHandle {\r\n  setPhone: (phone: string, country: string) => void\r\n}\r\n\r\nconst RequiredPhoneNumberLength = 10\r\n\r\ninterface PhoneNumberProps {\r\n  disableAreaCodeValidation?: boolean\r\n  initialPhone?: string\r\n  onChange: (valid: boolean, value: string, country: string) => void\r\n  skipFocus?: boolean\r\n  skipFeedback?: boolean\r\n  title?: string\r\n  disabled?: boolean\r\n  countries?: Country[]\r\n  fieldId?: string\r\n}\r\n\r\ninterface CountriesState {\r\n  loading: boolean\r\n  loaded: boolean\r\n  countries: Country[]\r\n  countriesData?: CountryData[]\r\n}\r\n\r\nfunction mapCountryData(countries: Country[]): CountryData[] {\r\n  const all = AllCountries.getCountries()\r\n  const getAreaCodes = (country: Country) => all.find(c => c.iso2 === country.abbreviation.toLowerCase())?.areaCodes\r\n  return countries.map(country => [country.name, country.abbreviation.toLowerCase(), country.phoneCode, country.abbreviation.toLowerCase() === \"us\" ? 0 : 1, getAreaCodes(country)] as CountryData)\r\n}\r\n\r\nexport function PhoneNumber(props: PhoneNumberProps, forwardedRef: React.Ref<PhoneNumberHandle> | undefined) {\r\n  const [transaltionRef, t] = useTranslationWithRef()\r\n  const [phone, setPhone] = useState<string>(\"\")\r\n  const [phoneValid, setPhoneValid] = useState(false)\r\n  const [phoneTouched, setPhoneTouched] = useState(false)\r\n  const [countriesState, setCountriesState] = useReducer((state: CountriesState, newState: Partial<CountriesState>) => ({ ...state, ...newState }), { loading: true, loaded: false, countries: [] })\r\n\r\n  const { controlId } = useContext(FormContext);\r\n\r\n  useImperativeHandle(forwardedRef, () => ({\r\n    setPhone(phone: string, country: string) {\r\n      setPhoneValid(true)\r\n      setPhone(phone)\r\n      setPhoneTouched(true)\r\n      props.onChange(true, phone, country)\r\n    }\r\n  }), [props])\r\n\r\n  const intlTelInputRefCallback = useCallback((ref: IntlTelInput | null) => {\r\n    if (!ref) {\r\n      return\r\n    }\r\n    setTimeout(() => {\r\n      if (props.initialPhone) {\r\n        const formattedPhoneNumber = ref.formatNumber(props.initialPhone)\r\n        ref.updateFlagFromNumber(formattedPhoneNumber, true)\r\n        ref.updateValFromNumber(formattedPhoneNumber, true, true)\r\n      }\r\n\r\n      if (!props.skipFocus) {\r\n        ref.tel?.focus()\r\n      }\r\n    }, 100)\r\n  }, [props.initialPhone, props.skipFocus])\r\n\r\n  useEffect(() => {\r\n    if (props.countries) {\r\n      setCountriesState({ loading: false, loaded: true, countries: props.countries, countriesData: mapCountryData(props.countries) })\r\n      return\r\n    }\r\n\r\n    const subscription = getCountries().subscribe({\r\n      next: (result: Country[]) => {\r\n        setCountriesState({ loading: false, loaded: true, countries: result, countriesData: mapCountryData(result) })\r\n      },\r\n      error: (e: APIError) => {\r\n        setCountriesState({ loading: false })\r\n        toast.error(transaltionRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [transaltionRef, props.countries])\r\n\r\n  const changeHandler = (valid: boolean, value: string, selectedCountryData: CountryData) => {\r\n    if (props.disableAreaCodeValidation) {\r\n      valid = EscapePhoneNumber(value).length === RequiredPhoneNumberLength\r\n    }\r\n    setPhoneValid(valid)\r\n    setPhone(value)\r\n    setPhoneTouched(true)\r\n    props.onChange(valid, value, selectedCountryData.iso2 || \"\")\r\n  }\r\n\r\n  const inputFieldId = controlId || (props.fieldId ?? \"phoneNumber\")\r\n  return (\r\n    <>\r\n      <Form.Label className=\"fw-bold text-uppercase\" htmlFor={controlId ? undefined : inputFieldId}>{props.title || t(\"login.phoneNumber.title\")}</Form.Label>\r\n      {countriesState.loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      {countriesState.loaded && <IntlTelInput\r\n        ref={intlTelInputRefCallback}\r\n        telInputProps={{ maxLength: 25 }}\r\n        value={phone}\r\n        containerClassName={`intl-tel-input d-block ${phoneTouched && !phoneValid ? \"is-invalid\" : \"\"}`}\r\n        countriesData={countriesState.countriesData}\r\n        preferredCountries={[\"US\"]}\r\n        autoPlaceholder={false}\r\n        nationalMode\r\n        format\r\n        inputClassName={`form-control ${phoneTouched && !phoneValid ? \"is-invalid\" : \"\"}`}\r\n        onPhoneNumberBlur={changeHandler}\r\n        onPhoneNumberChange={changeHandler}\r\n        disabled={props.disabled ?? false}\r\n        fieldId={inputFieldId}\r\n        fieldName={inputFieldId}\r\n      />}\r\n      {phoneTouched && !phoneValid && !props.skipFeedback && <Form.Control.Feedback className=\"order-last\" type=\"invalid\">{t(\"login.phoneNumber.invalid\")}</Form.Control.Feedback>}\r\n    </>\r\n  )\r\n}\r\n\r\nexport default forwardRef<PhoneNumberHandle, PhoneNumberProps>(PhoneNumber)\r\n","import { useMemo } from \"react\"\r\nimport { useLocation } from \"react-router\"\r\n\r\nexport const useQuery = () => {\r\n  const { search } = useLocation()\r\n\r\n  return useMemo(() => new URLSearchParams(search), [search])\r\n}\r\n","import * as React from \"react\";\r\nimport ReactPlayer from 'react-player'\r\n\r\nexport interface PlayerProps {\r\n  fileName?: string\r\n}\r\n\r\nexport default function Player(props: PlayerProps) {\r\n  return (\r\n    <>\r\n      {props.fileName && <ReactPlayer stopOnUnmount controls url={`${window.location.origin}${props.fileName}`} width=\"25em\" height=\"auto\" />}\r\n    </>\r\n  )\r\n}\r\n","export interface ServiceWorkerStore {\r\n  softReload: boolean\r\n  reloadRequired: boolean\r\n  initializationTimestamp: number\r\n}\r\n\r\nexport const serviceWorkerStore: ServiceWorkerStore = {\r\n  softReload: false,\r\n  reloadRequired: false,\r\n  initializationTimestamp: Date.now()\r\n}\r\n\r\nexport default serviceWorkerStore\r\n","import React, { ChangeEvent, useCallback, useEffect, useRef, useState } from \"react\"\r\nimport { Button, Card, Col, Container, Form, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { AuthenticateLogin, AuthenticateVerify, authenticateTermsOfUse } from \"../api/Authenticate\"\r\nimport VerificationResponse from \"../api/models/VerificationResponse\"\r\nimport { useAuthStore } from \"../stores/StoreProvider\"\r\nimport { APIError } from \"../api/ObservableFromFetch\"\r\nimport { toast } from \"react-toastify\"\r\nimport { AppRoute } from \"../AppRoute\"\r\nimport { useHistory } from \"react-router\"\r\nimport FormatLocalISODateString, { FormatToLocalDateString } from \"../formatters/FormatLocalISODateString\"\r\nimport EscapePhoneNumber from \"../formatters/EscapePhoneNumber\"\r\nimport DateOfBirth from \"./Login/DateOfBirth\"\r\nimport PhoneNumber from \"./Login/PhoneNumber\"\r\nimport { observer } from \"mobx-react-lite\"\r\nimport { useQuery } from \"../hooks/useQuery\"\r\nimport Player from \"./Player\"\r\nimport { useServiceWorkerUpdate } from \"../hooks/useServiceWorkerUpdate\"\r\n\r\nenum Page {\r\n  Login,\r\n  Verification,\r\n  Redirect,\r\n}\r\n\r\ninterface RedirectResponse {\r\n  redirectURL: string\r\n}\r\n\r\nexport function Login() {\r\n  const { t } = useTranslation()\r\n  const [phone, setPhone] = useState<string>(\"\")\r\n  const [birthdate, setBirthdate] = useState<Date | null>(null)\r\n  const [country, setCountry] = useState<string>(\"us\")\r\n  const [phoneValid, setPhoneValid] = useState(false)\r\n  const [birthdateValid, setBirthdateValid] = useState(false)\r\n  const [submitting, setSubmitting] = useState(false)\r\n  const [termsOfUseChecked, setTermsOfUseChecked] = useState(false)\r\n  const [termsOfUseAccepted, setTermsOfUseAccepted] = useState(false)\r\n  const [termsOfUseManualAccepted, setTermsOfUseManualAccepted] = useState(false)\r\n  const [code, setCode] = useState(\"\")\r\n  const [codeTouched, setCodeTouched] = useState(false)\r\n  const [page, setPage] = useState(Page.Login)\r\n  const authStore = useAuthStore()\r\n  const history = useHistory()\r\n  const form = useRef<HTMLFormElement>(null)\r\n  const verificationInputRef = useRef<HTMLInputElement>(null)\r\n  const [redirectUrl, setRedirectUrl] = useState(\"\")\r\n  const autoSubmitRequired = useRef<boolean>(false)\r\n\r\n  const handleAPIError = (e: APIError) => {\r\n    toast.error(t(e.message, { data: e.data }))\r\n    setSubmitting(false)\r\n  }\r\n\r\n  useEffect(() => {\r\n    setTermsOfUseChecked(false)\r\n    setTermsOfUseAccepted(false)\r\n\r\n    if (!phoneValid) {\r\n      return\r\n    }\r\n    const subscription = authenticateTermsOfUse({\r\n      countryAbbreviation: country,\r\n      mobileNumber: EscapePhoneNumber(phone)\r\n    }).subscribe({\r\n      next: (result: boolean) => {\r\n        setTermsOfUseChecked(true)\r\n        setTermsOfUseAccepted(result)\r\n      },\r\n      error: e => handleAPIError(e)\r\n    })\r\n\r\n    return () => subscription.unsubscribe()\r\n  }, [phoneValid, phone, country])\r\n\r\n  const dobString = useQuery().get(\"dob\")\r\n  useEffect(() => {\r\n    const fixedValue = dobString ? FormatToLocalDateString(dobString) : null\r\n    const dob = fixedValue ? new Date(fixedValue) : null\r\n    if (!!dob) {\r\n      setBirthdate(dob)\r\n      setBirthdateValid(dob !== null)\r\n      setTermsOfUseManualAccepted(true)\r\n      autoSubmitRequired.current = true\r\n    }\r\n  }, [dobString])\r\n\r\n  const authenticate = useServiceWorkerUpdate(() => {\r\n    AuthenticateLogin({\r\n      host: window.location.hostname,\r\n      countryAbbreviation: country,\r\n      mobileNumber: EscapePhoneNumber(phone),\r\n      dateOfBirth: FormatLocalISODateString(birthdate),\r\n    }).subscribe({\r\n      next: (result: boolean | RedirectResponse) => {\r\n        setCode(\"\")\r\n        setCodeTouched(false)\r\n        setSubmitting(false)\r\n        if (result === true) {\r\n          setPage(Page.Verification)\r\n          verificationInputRef.current?.focus()\r\n        } else if ('redirectURL' in (result as RedirectResponse)) {\r\n          setPage(Page.Redirect)\r\n          setRedirectUrl((result as RedirectResponse).redirectURL)\r\n        }\r\n      },\r\n      error: e => handleAPIError(e)\r\n    })\r\n  }, [country, phone, birthdate])\r\n\r\n  useEffect(() => {\r\n    if (!autoSubmitRequired.current) {\r\n      return\r\n    }\r\n    if (!!country && !!phone && phoneValid && birthdateValid && termsOfUseManualAccepted) {\r\n      autoSubmitRequired.current = false\r\n\r\n      setTimeout(() => {\r\n        setSubmitting(true)\r\n        authenticate()\r\n      }, 100)\r\n    }\r\n\r\n  }, [autoSubmitRequired, birthdate, birthdateValid, country, phone, phoneValid, authenticate, termsOfUseManualAccepted])\r\n\r\n  const verify = () => {\r\n    AuthenticateVerify({\r\n      countryAbbreviation: country,\r\n      mobileNumber: EscapePhoneNumber(phone),\r\n      dateOfBirth: FormatLocalISODateString(birthdate),\r\n      verificationCode: code\r\n    }).subscribe({\r\n      next: (result: VerificationResponse) => {\r\n        authStore.setAuthToken(result.authToken)\r\n        setSubmitting(false)\r\n        history.push(AppRoute.Results)\r\n      },\r\n      error: e => handleAPIError(e)\r\n    })\r\n  }\r\n  const handleFormSubmit = (e: React.FormEvent<HTMLFormElement>) => {\r\n    e.preventDefault()\r\n    setSubmitting(true)\r\n    page === Page.Login ? authenticate() : verify()\r\n  }\r\n  const validCode = /^\\d{6}$/.test(code)\r\n\r\n  const userAcceptedTermsOfUse = termsOfUseAccepted || termsOfUseManualAccepted\r\n\r\n  const RedirectPage = (url: string) => {\r\n    window.location.replace(url)\r\n    history.push(url)\r\n  }\r\n\r\n  const handleBack = () => {\r\n    setCode(\"\")\r\n    setCodeTouched(false)\r\n    setPage(Page.Login)\r\n  }\r\n\r\n  const logingHeading = authStore.domain?.loginHeading\r\n\r\n  return (\r\n    <Container className=\"d-flex flex-column justify-content-center align-items-center min-vh-60\">\r\n      {page === Page.Login && logingHeading && <h1 className=\"text-primary text-center mt-1 mb-3 h5\">{logingHeading}</h1>}\r\n      <div hidden={page !== Page.Login} className=\"my-1\"><Player fileName={authStore.domain?.welcomeVideo} /></div>\r\n      <Card className=\"mb-1\">\r\n        <Card.Body>\r\n          <Form onSubmit={handleFormSubmit} ref={form}>\r\n            <div hidden={page !== Page.Login}>\r\n              <Form.Group className=\"mb-3\" controlId=\"language\" as={Row}>\r\n                <Form.Label as={Col} className=\"fw-bold text-uppercase pt-2\">{t(\"login.language\")}</Form.Label>\r\n                <Col><Form.Select value={authStore.language} onChange={(e) => authStore.changeLanguage(e.target.value)}>\r\n                  <option value=\"en\">{t(\"menu.language.en\")}</option>\r\n                  <option value=\"es\">{t(\"menu.language.es\")}</option>\r\n                </Form.Select></Col>\r\n              </Form.Group>\r\n              <Form.Group className=\"mb-3\" controlId=\"phoneNumber\">\r\n                <PhoneNumber disableAreaCodeValidation initialPhone={useQuery().get(\"phone\") || \"\"} onChange={(valid, value, country) => {\r\n                  setPhoneValid(valid)\r\n                  setPhone(value)\r\n                  setCountry(country)\r\n                }} />\r\n              </Form.Group>\r\n              <Form.Group className=\"mb-3\" controlId=\"dateOfBirth\">\r\n                <DateOfBirth onChange={date => {\r\n                  setBirthdate(date)\r\n                  setBirthdateValid(date !== null)\r\n                }}\r\n                  initialDate={birthdate || undefined}\r\n                  onSubmit={() => phoneValid && birthdateValid && userAcceptedTermsOfUse && !submitting && form.current && form.current.dispatchEvent(new Event(\"submit\"))}\r\n                />\r\n              </Form.Group>\r\n              <Form.Group className=\"mb-3\" controlId=\"formTermsOfUse\" key=\"ddd\">\r\n                <Form.Check id=\"termsOfUseAccepted\" type=\"checkbox\" className=\"fw-bold text-uppercase\" label={t(\"login.terms.title\")} checked={userAcceptedTermsOfUse}\r\n                  onChange={(e: ChangeEvent<HTMLInputElement>) => setTermsOfUseManualAccepted(e.target.checked)} disabled={termsOfUseAccepted} />\r\n              </Form.Group>\r\n            </div>\r\n            <div hidden={page !== Page.Verification}>\r\n              <Form.Group className=\"mb-3\" controlId=\"verification\">\r\n                <p>{t(\"login.verification.sent\")}</p>\r\n                <Form.Label className=\"fw-bold text-uppercase\">{t(\"login.verification.title\")}</Form.Label>\r\n                <Form.Control type=\"text\" ref={verificationInputRef} value={code} minLength={6} maxLength={6}\r\n                  onBlur={() => setCodeTouched(true)} onChange={(e) => { setCodeTouched(true); setCode(e.target.value) }}\r\n                  autoComplete=\"one-time-code\" className={!validCode && codeTouched ? \"is-invalid\" : \"\"} />\r\n                {!validCode && codeTouched && <Form.Control.Feedback className=\"order-last\" type=\"invalid\">{t(\"login.verification.invalid\")}</Form.Control.Feedback>}\r\n              </Form.Group>\r\n            </div>\r\n            {!!redirectUrl && <div hidden={page !== Page.Redirect}>\r\n              <Button onClick={() => RedirectPage(redirectUrl)}>{t(\"login.redirect\")} {(new URL(redirectUrl)).hostname}</Button>\r\n            </div>}\r\n            <Form.Group>\r\n              {page === Page.Verification && <Button variant=\"secondary\" className=\"mx-1\" onClick={handleBack}>{t(\"login.back\")}</Button>}\r\n              {page === Page.Login && <Button type=\"submit\" disabled={!phoneValid || !birthdateValid || !termsOfUseChecked || !userAcceptedTermsOfUse || submitting}>{t(\"login.save\")}</Button>}\r\n              {page === Page.Verification && <Button type=\"submit\" className=\"mx-1\" disabled={!validCode || submitting}>{t(\"login.save\")}</Button>}\r\n            </Form.Group>\r\n          </Form>\r\n        </Card.Body>\r\n      </Card>\r\n    </Container>\r\n  )\r\n}\r\n\r\nexport default observer(Login)\r\n","import { useCallback } from \"react\"\r\nimport serviceWorkerStore from \"../stores/ServiceWorkerStore\"\r\n\r\nconst UPDATE_DELAY = 5 * 60 * 1000 // 5 min\r\n\r\nexport const useServiceWorkerUpdate = (callback: () => void, deps: React.DependencyList) => {\r\n  return useCallback(() => {\r\n    //skip update until delay\r\n    if ((Date.now() - serviceWorkerStore.initializationTimestamp) < UPDATE_DELAY) {\r\n      return callback()\r\n    }\r\n\r\n    const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\r\n    const sw = navigator.serviceWorker\r\n    if (!sw) {\r\n      return callback()\r\n    }\r\n\r\n    sw.getRegistration(swUrl).then(r => {\r\n      if (!r) {\r\n        return callback()\r\n      }\r\n      serviceWorkerStore.softReload = true\r\n      r.update()\r\n        .then(() => callback())\r\n        .catch(() => callback())\r\n    })\r\n  }, [deps])\r\n}\r\n","import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n  return value && isFunction(value.schedule);\n}\n","import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last<T>(arr: T[]): T | undefined {\n  return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n  return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n  return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n  return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n","export const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length === 'number' && typeof x !== 'function');","import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike<any> {\n  return isFunction(value?.then);\n}\n","import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable<any> {\n  return isFunction(input[Symbol_observable]);\n}\n","import { isFunction } from './isFunction';\n\nexport function isAsyncIterable<T>(obj: any): obj is AsyncIterable<T> {\n  return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n","/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n  // TODO: We should create error codes that can be looked up, so this can be less verbose.\n  return new TypeError(\n    `You provided ${\n      input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n    } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n  );\n}\n","export function getSymbolIterator(): symbol {\n  if (typeof Symbol !== 'function' || !Symbol.iterator) {\n    return '@@iterator' as any;\n  }\n\n  return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable<any> {\n  return isFunction(input?.[Symbol_iterator]);\n}\n","import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator<T>(readableStream: ReadableStreamLike<T>): AsyncGenerator<T> {\n  const reader = readableStream.getReader();\n  try {\n    while (true) {\n      const { value, done } = await reader.read();\n      if (done) {\n        return;\n      }\n      yield value!;\n    }\n  } finally {\n    reader.releaseLock();\n  }\n}\n\nexport function isReadableStreamLike<T>(obj: any): obj is ReadableStreamLike<T> {\n  // We don't want to use instanceof checks because they would return\n  // false for instances from another Realm, like an <iframe>.\n  return isFunction(obj?.getReader);\n}\n","import { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { ObservableInput, ReadableStreamLike } from '../types';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { Subscriber } from '../Subscriber';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\nexport function innerFrom<T>(input: ObservableInput<T>): Observable<T> {\n  if (input instanceof Observable) {\n    return input;\n  }\n  if (input != null) {\n    if (isInteropObservable(input)) {\n      return fromInteropObservable(input);\n    }\n    if (isArrayLike(input)) {\n      return fromArrayLike(input);\n    }\n    if (isPromise(input)) {\n      return fromPromise(input);\n    }\n    if (isAsyncIterable(input)) {\n      return fromAsyncIterable(input);\n    }\n    if (isIterable(input)) {\n      return fromIterable(input);\n    }\n    if (isReadableStreamLike(input)) {\n      return fromReadableStreamLike(input);\n    }\n  }\n\n  throw createInvalidObservableTypeError(input);\n}\n\n/**\n * Creates an RxJS Observable from an object that implements `Symbol.observable`.\n * @param obj An object that properly implements `Symbol.observable`.\n */\nexport function fromInteropObservable<T>(obj: any) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    const obs = obj[Symbol_observable]();\n    if (isFunction(obs.subscribe)) {\n      return obs.subscribe(subscriber);\n    }\n    // Should be caught by observable subscribe function error handling.\n    throw new TypeError('Provided object does not correctly implement Symbol.observable');\n  });\n}\n\n/**\n * Synchronously emits the values of an array like and completes.\n * This is exported because there are creation functions and operators that need to\n * make direct use of the same logic, and there's no reason to make them run through\n * `from` conditionals because we *know* they're dealing with an array.\n * @param array The array to emit values from\n */\nexport function fromArrayLike<T>(array: ArrayLike<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    // Loop over the array and emit each value. Note two things here:\n    // 1. We're making sure that the subscriber is not closed on each loop.\n    //    This is so we don't continue looping over a very large array after\n    //    something like a `take`, `takeWhile`, or other synchronous unsubscription\n    //    has already unsubscribed.\n    // 2. In this form, reentrant code can alter that array we're looping over.\n    //    This is a known issue, but considered an edge case. The alternative would\n    //    be to copy the array before executing the loop, but this has\n    //    performance implications.\n    for (let i = 0; i < array.length && !subscriber.closed; i++) {\n      subscriber.next(array[i]);\n    }\n    subscriber.complete();\n  });\n}\n\nexport function fromPromise<T>(promise: PromiseLike<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    promise\n      .then(\n        (value) => {\n          if (!subscriber.closed) {\n            subscriber.next(value);\n            subscriber.complete();\n          }\n        },\n        (err: any) => subscriber.error(err)\n      )\n      .then(null, reportUnhandledError);\n  });\n}\n\nexport function fromIterable<T>(iterable: Iterable<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    for (const value of iterable) {\n      subscriber.next(value);\n      if (subscriber.closed) {\n        return;\n      }\n    }\n    subscriber.complete();\n  });\n}\n\nexport function fromAsyncIterable<T>(asyncIterable: AsyncIterable<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n  });\n}\n\nexport function fromReadableStreamLike<T>(readableStream: ReadableStreamLike<T>) {\n  return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\n\nasync function process<T>(asyncIterable: AsyncIterable<T>, subscriber: Subscriber<T>) {\n  for await (const value of asyncIterable) {\n    subscriber.next(value);\n    // A side-effect may have closed our subscriber,\n    // check before the next iteration.\n    if (subscriber.closed) {\n      return;\n    }\n  }\n  subscriber.complete();\n}\n","import { Subscription } from '../Subscription';\nimport { SchedulerAction, SchedulerLike } from '../types';\n\nexport function executeSchedule(\n  parentSubscription: Subscription,\n  scheduler: SchedulerLike,\n  work: () => void,\n  delay: number,\n  repeat: true\n): void;\nexport function executeSchedule(\n  parentSubscription: Subscription,\n  scheduler: SchedulerLike,\n  work: () => void,\n  delay?: number,\n  repeat?: false\n): Subscription;\n\nexport function executeSchedule(\n  parentSubscription: Subscription,\n  scheduler: SchedulerLike,\n  work: () => void,\n  delay = 0,\n  repeat = false\n): Subscription | void {\n  const scheduleSubscription = scheduler.schedule(function (this: SchedulerAction<any>) {\n    work();\n    if (repeat) {\n      parentSubscription.add(this.schedule(null, delay));\n    } else {\n      this.unsubscribe();\n    }\n  }, delay);\n\n  parentSubscription.add(scheduleSubscription);\n\n  if (!repeat) {\n    // Because user-land scheduler implementations are unlikely to properly reuse\n    // Actions for repeat scheduling, we can't trust that the returned subscription\n    // will control repeat subscription scenarios. So we're trying to avoid using them\n    // incorrectly within this library.\n    return scheduleSubscription;\n  }\n}\n","/** @prettier */\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n *\n * Ensure values in subscribe are called just before browser repaint\n *\n * ```ts\n * import { interval, observeOn, animationFrameScheduler } from 'rxjs';\n *\n * const someDiv = document.createElement('div');\n * someDiv.style.cssText = 'width: 200px;background: #09c';\n * document.body.appendChild(someDiv);\n * const intervals = interval(10);      // Intervals are scheduled\n *                                      // with async scheduler by default...\n * intervals.pipe(\n *   observeOn(animationFrameScheduler) // ...but we will observe on animationFrame\n * )                                    // scheduler to ensure smooth animation.\n * .subscribe(val => {\n *   someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param delay Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return A function that returns an Observable that emits the same\n * notifications as the source Observable, but with provided scheduler.\n */\nexport function observeOn<T>(scheduler: SchedulerLike, delay = 0): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay),\n        () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay),\n        (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)\n      )\n    );\n  });\n}\n","import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { operate } from '../util/lift';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * ![](subscribeOn.png)\n *\n * ## Example\n *\n * Given the following code:\n *\n * ```ts\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3);\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 1\n * // 2\n * // 3\n * // 4\n * // 5\n * // 6\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n *\n * If we instead use the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emitted by Observable `a`:\n *\n * ```ts\n * import { of, subscribeOn, asyncScheduler, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3).pipe(subscribeOn(asyncScheduler));\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 4\n * // 5\n * // 6\n * // 1\n * // 2\n * // 3\n * ```\n *\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param scheduler The {@link SchedulerLike} to perform subscription actions on.\n * @param delay A delay to pass to the scheduler to delay subscriptions\n * @return A function that returns an Observable modified so that its\n * subscriptions happen on the specified {@link SchedulerLike}.\n */\nexport function subscribeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n  });\n}\n","import { SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\n\nexport function scheduleAsyncIterable<T>(input: AsyncIterable<T>, scheduler: SchedulerLike) {\n  if (!input) {\n    throw new Error('Iterable cannot be null');\n  }\n  return new Observable<T>((subscriber) => {\n    executeSchedule(subscriber, scheduler, () => {\n      const iterator = input[Symbol.asyncIterator]();\n      executeSchedule(\n        subscriber,\n        scheduler,\n        () => {\n          iterator.next().then((result) => {\n            if (result.done) {\n              // This will remove the subscriptions from\n              // the parent subscription.\n              subscriber.complete();\n            } else {\n              subscriber.next(result.value);\n            }\n          });\n        },\n        0,\n        true\n      );\n    });\n  });\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see {@link from}\n * @see {@link of}\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {\n  if (input != null) {\n    if (isInteropObservable(input)) {\n      return scheduleObservable(input, scheduler);\n    }\n    if (isArrayLike(input)) {\n      return scheduleArray(input, scheduler);\n    }\n    if (isPromise(input)) {\n      return schedulePromise(input, scheduler);\n    }\n    if (isAsyncIterable(input)) {\n      return scheduleAsyncIterable(input, scheduler);\n    }\n    if (isIterable(input)) {\n      return scheduleIterable(input, scheduler);\n    }\n    if (isReadableStreamLike(input)) {\n      return scheduleReadableStreamLike(input, scheduler);\n    }\n  }\n  throw createInvalidObservableTypeError(input);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { InteropObservable, SchedulerLike } from '../types';\n\nexport function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike) {\n  return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\nexport function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {\n  return new Observable<T>((subscriber) => {\n    // The current array index.\n    let i = 0;\n    // Start iterating over the array like on a schedule.\n    return scheduler.schedule(function () {\n      if (i === input.length) {\n        // If we have hit the end of the array like in the\n        // previous job, we can complete.\n        subscriber.complete();\n      } else {\n        // Otherwise let's next the value at the current index,\n        // then increment our index.\n        subscriber.next(input[i++]);\n        // If the last emission didn't cause us to close the subscriber\n        // (via take or some side effect), reschedule the job and we'll\n        // make another pass.\n        if (!subscriber.closed) {\n          this.schedule();\n        }\n      }\n    });\n  });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { SchedulerLike } from '../types';\n\nexport function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {\n  return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\n\n/**\n * Used in {@link scheduled} to create an observable from an Iterable.\n * @param input The iterable to create an observable from\n * @param scheduler The scheduler to use\n */\nexport function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) {\n  return new Observable<T>((subscriber) => {\n    let iterator: Iterator<T, T>;\n\n    // Schedule the initial creation of the iterator from\n    // the iterable. This is so the code in the iterable is\n    // not called until the scheduled job fires.\n    executeSchedule(subscriber, scheduler, () => {\n      // Create the iterator.\n      iterator = (input as any)[Symbol_iterator]();\n\n      executeSchedule(\n        subscriber,\n        scheduler,\n        () => {\n          let value: T;\n          let done: boolean | undefined;\n          try {\n            // Pull the value out of the iterator\n            ({ value, done } = iterator.next());\n          } catch (err) {\n            // We got an error while pulling from the iterator\n            subscriber.error(err);\n            return;\n          }\n\n          if (done) {\n            // If it is \"done\" we just complete. This mimics the\n            // behavior of JavaScript's `for..of` consumption of\n            // iterables, which will not emit the value from an iterator\n            // result of `{ done: true: value: 'here' }`.\n            subscriber.complete();\n          } else {\n            // The iterable is not done, emit the value.\n            subscriber.next(value);\n          }\n        },\n        0,\n        true\n      );\n    });\n\n    // During teardown, if we see this iterator has a `return` method,\n    // then we know it is a Generator, and not just an Iterator. So we call\n    // the `return()` function. This will ensure that any `finally { }` blocks\n    // inside of the generator we can hit will be hit properly.\n    return () => isFunction(iterator?.return) && iterator.return();\n  });\n}\n","import { SchedulerLike, ReadableStreamLike } from '../types';\nimport { Observable } from '../Observable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\n\nexport function scheduleReadableStreamLike<T>(input: ReadableStreamLike<T>, scheduler: SchedulerLike): Observable<T> {\n  return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\n\nexport function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike | undefined): Observable<ObservedValueOf<O>>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * ![](from.png)\n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable\" target=\"_blank\">iterable</a>\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from, take } from 'rxjs';\n *\n * function* generateDoubles(seed) {\n *    let i = seed;\n *    while (true) {\n *      yield i;\n *      i = 2 * i; // double it\n *    }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * With `asyncScheduler`\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // 'start'\n * // 'end'\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput<T>} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable<T>}\n */\nexport function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {\n  return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n *   new (scheduler: Scheduler, work: (state?: T) => void);\n *   schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nexport class Action<T> extends Subscription {\n  constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void) {\n    super();\n  }\n  /**\n   * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n   * some context object, `state`. May happen at some point in the future,\n   * according to the `delay` parameter, if specified.\n   * @param {T} [state] Some contextual data that the `work` function uses when\n   * called by the Scheduler.\n   * @param {number} [delay] Time to wait before executing the work, where the\n   * time unit is implicit and defined by the Scheduler.\n   * @return {void}\n   */\n  public schedule(state?: T, delay: number = 0): Subscription {\n    return this;\n  }\n}\n","type SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => number;\ntype ClearIntervalFunction = (handle: number) => void;\n\ninterface IntervalProvider {\n  setInterval: SetIntervalFunction;\n  clearInterval: ClearIntervalFunction;\n  delegate:\n    | {\n        setInterval: SetIntervalFunction;\n        clearInterval: ClearIntervalFunction;\n      }\n    | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n  // When accessing the delegate, use the variable rather than `this` so that\n  // the functions can be called without being bound to the provider.\n  setInterval(...args) {\n    const { delegate } = intervalProvider;\n    return (delegate?.setInterval || setInterval)(...args);\n  },\n  clearInterval(handle) {\n    const { delegate } = intervalProvider;\n    return (delegate?.clearInterval || clearInterval)(handle);\n  },\n  delegate: undefined,\n};\n","import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\n\nexport class AsyncAction<T> extends Action<T> {\n  public id: any;\n  public state?: T;\n  // @ts-ignore: Property has no initializer and is not definitely assigned\n  public delay: number;\n  protected pending: boolean = false;\n\n  constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  public schedule(state?: T, delay: number = 0): Subscription {\n    if (this.closed) {\n      return this;\n    }\n\n    // Always replace the current state with the new state.\n    this.state = state;\n\n    const id = this.id;\n    const scheduler = this.scheduler;\n\n    //\n    // Important implementation note:\n    //\n    // Actions only execute once by default, unless rescheduled from within the\n    // scheduled callback. This allows us to implement single and repeat\n    // actions via the same code path, without adding API surface area, as well\n    // as mimic traditional recursion but across asynchronous boundaries.\n    //\n    // However, JS runtimes and timers distinguish between intervals achieved by\n    // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n    // serial `setTimeout` calls can be individually delayed, which delays\n    // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n    // guarantee the interval callback will be invoked more precisely to the\n    // interval period, regardless of load.\n    //\n    // Therefore, we use `setInterval` to schedule single and repeat actions.\n    // If the action reschedules itself with the same delay, the interval is not\n    // canceled. If the action doesn't reschedule, or reschedules with a\n    // different delay, the interval will be canceled after scheduled callback\n    // execution.\n    //\n    if (id != null) {\n      this.id = this.recycleAsyncId(scheduler, id, delay);\n    }\n\n    // Set the pending flag indicating that this action has been scheduled, or\n    // has recursively rescheduled itself.\n    this.pending = true;\n\n    this.delay = delay;\n    // If this action has already an async Id, don't request a new one.\n    this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n\n    return this;\n  }\n\n  protected requestAsyncId(scheduler: AsyncScheduler, _id?: any, delay: number = 0): any {\n    return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n  }\n\n  protected recycleAsyncId(_scheduler: AsyncScheduler, id: any, delay: number | null = 0): any {\n    // If this action is rescheduled with the same delay time, don't clear the interval id.\n    if (delay != null && this.delay === delay && this.pending === false) {\n      return id;\n    }\n    // Otherwise, if the action's delay time is different from the current delay,\n    // or the action has been rescheduled before it's executed, clear the interval id\n    intervalProvider.clearInterval(id);\n    return undefined;\n  }\n\n  /**\n   * Immediately executes this action and the `work` it contains.\n   * @return {any}\n   */\n  public execute(state: T, delay: number): any {\n    if (this.closed) {\n      return new Error('executing a cancelled action');\n    }\n\n    this.pending = false;\n    const error = this._execute(state, delay);\n    if (error) {\n      return error;\n    } else if (this.pending === false && this.id != null) {\n      // Dequeue if the action didn't reschedule itself. Don't call\n      // unsubscribe(), because the action could reschedule later.\n      // For example:\n      // ```\n      // scheduler.schedule(function doWork(counter) {\n      //   /* ... I'm a busy worker bee ... */\n      //   var originalAction = this;\n      //   /* wait 100ms before rescheduling the action */\n      //   setTimeout(function () {\n      //     originalAction.schedule(counter + 1);\n      //   }, 100);\n      // }, 1000);\n      // ```\n      this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n    }\n  }\n\n  protected _execute(state: T, _delay: number): any {\n    let errored: boolean = false;\n    let errorValue: any;\n    try {\n      this.work(state);\n    } catch (e) {\n      errored = true;\n      // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n      // return here, we can't have it return \"\" or 0 or false.\n      // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n      errorValue = e ? e : new Error('Scheduled action threw falsy error');\n    }\n    if (errored) {\n      this.unsubscribe();\n      return errorValue;\n    }\n  }\n\n  unsubscribe() {\n    if (!this.closed) {\n      const { id, scheduler } = this;\n      const { actions } = scheduler;\n\n      this.work = this.state = this.scheduler = null!;\n      this.pending = false;\n\n      arrRemove(actions, this);\n      if (id != null) {\n        this.id = this.recycleAsyncId(scheduler, id, null);\n      }\n\n      this.delay = null!;\n      super.unsubscribe();\n    }\n  }\n}\n","import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n  delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n  now() {\n    // Use the variable rather than `this` so that the function can be called\n    // without being bound to the provider.\n    return (dateTimestampProvider.delegate || Date).now();\n  },\n  delegate: undefined,\n};\n","import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n *   now(): number;\n *   schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n  public static now: () => number = dateTimestampProvider.now;\n\n  constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n    this.now = now;\n  }\n\n  /**\n   * A getter method that returns a number representing the current time\n   * (at the time this function was called) according to the scheduler's own\n   * internal clock.\n   * @return {number} A number that represents the current time. May or may not\n   * have a relation to wall-clock time. May or may not refer to a time unit\n   * (e.g. milliseconds).\n   */\n  public now: () => number;\n\n  /**\n   * Schedules a function, `work`, for execution. May happen at some point in\n   * the future, according to the `delay` parameter, if specified. May be passed\n   * some context object, `state`, which will be passed to the `work` function.\n   *\n   * The given arguments will be processed an stored as an Action object in a\n   * queue of actions.\n   *\n   * @param {function(state: ?T): ?Subscription} work A function representing a\n   * task, or some unit of work to be executed by the Scheduler.\n   * @param {number} [delay] Time to wait before executing the work, where the\n   * time unit is implicit and defined by the Scheduler itself.\n   * @param {T} [state] Some contextual data that the `work` function uses when\n   * called by the Scheduler.\n   * @return {Subscription} A subscription in order to be able to unsubscribe\n   * the scheduled work.\n   */\n  public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {\n    return new this.schedulerActionCtor<T>(this, work).schedule(state, delay);\n  }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\n\nexport class AsyncScheduler extends Scheduler {\n  public actions: Array<AsyncAction<any>> = [];\n  /**\n   * A flag to indicate whether the Scheduler is currently executing a batch of\n   * queued actions.\n   * @type {boolean}\n   * @internal\n   */\n  public _active: boolean = false;\n  /**\n   * An internal ID used to track the latest asynchronous task such as those\n   * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n   * others.\n   * @type {any}\n   * @internal\n   */\n  public _scheduled: any = undefined;\n\n  constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n    super(SchedulerAction, now);\n  }\n\n  public flush(action: AsyncAction<any>): void {\n    const { actions } = this;\n\n    if (this._active) {\n      actions.push(action);\n      return;\n    }\n\n    let error: any;\n    this._active = true;\n\n    do {\n      if ((error = action.execute(action.state, action.delay))) {\n        break;\n      }\n    } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n    this._active = false;\n\n    if (error) {\n      while ((action = actions.shift()!)) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n *   console.log(state);\n *   this.schedule(state + 1, 1000); // `this` references currently executing Action,\n *                                   // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n","import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function map<T, R>(project: (value: T, index: number) => R): OperatorFunction<T, R>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function map<T, R, A>(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction<T, R>;\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n *\n * Map every click to the `clientX` position of that click\n *\n * ```ts\n * import { fromEvent, map } from 'rxjs';\n *\n * const clicks = fromEvent<PointerEvent>(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n *\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return A function that returns an Observable that emits the values from the\n * source Observable transformed by the given `project` function.\n */\nexport function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R> {\n  return operate((source, subscriber) => {\n    // The index of the value from the source. Used with projection.\n    let index = 0;\n    // Subscribe to the source, all errors and completions are sent along\n    // to the consumer.\n    source.subscribe(\n      createOperatorSubscriber(subscriber, (value: T) => {\n        // Call the projection function with the appropriate this context,\n        // and send the resulting value to the consumer.\n        subscriber.next(project.call(thisArg, value, index++));\n      })\n    );\n  });\n}\n","import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: undefined,\n  concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R,\n  concurrent?: number\n): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * ![](mergeMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n *\n * Map and flatten each letter to an Observable ticking every 1 second\n *\n * ```ts\n * import { of, mergeMap, interval, map } from 'rxjs';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n *   mergeMap(x => interval(1000).pipe(map(i => x + i)))\n * );\n *\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a, b, c every second with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Infinity] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits the result of\n * applying the projection function (and the optional deprecated\n * `resultSelector`) to each item emitted by the source Observable and merging\n * the results of the Observables obtained from this transformation.\n */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,\n  concurrent: number = Infinity\n): OperatorFunction<T, ObservedValueOf<O> | R> {\n  if (isFunction(resultSelector)) {\n    // DEPRECATED PATH\n    return mergeMap((a, i) => map((b: any, ii: number) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n  } else if (typeof resultSelector === 'number') {\n    concurrent = resultSelector;\n  }\n\n  return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subscriber } from '../Subscriber';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * A process embodying the general \"merge\" strategy. This is used in\n * `mergeMap` and `mergeScan` because the logic is otherwise nearly identical.\n * @param source The original source observable\n * @param subscriber The consumer subscriber\n * @param project The projection function to get our inner sources\n * @param concurrent The number of concurrent inner subscriptions\n * @param onBeforeNext Additional logic to apply before nexting to our consumer\n * @param expand If `true` this will perform an \"expand\" strategy, which differs only\n * in that it recurses, and the inner subscription must be schedule-able.\n * @param innerSubScheduler A scheduler to use to schedule inner subscriptions,\n * this is to support the expand strategy, mostly, and should be deprecated\n */\nexport function mergeInternals<T, R>(\n  source: Observable<T>,\n  subscriber: Subscriber<R>,\n  project: (value: T, index: number) => ObservableInput<R>,\n  concurrent: number,\n  onBeforeNext?: (innerValue: R) => void,\n  expand?: boolean,\n  innerSubScheduler?: SchedulerLike,\n  additionalTeardown?: () => void\n) {\n  // Buffered values, in the event of going over our concurrency limit\n  const buffer: T[] = [];\n  // The number of active inner subscriptions.\n  let active = 0;\n  // An index to pass to our accumulator function\n  let index = 0;\n  // Whether or not the outer source has completed.\n  let isComplete = false;\n\n  /**\n   * Checks to see if we can complete our result or not.\n   */\n  const checkComplete = () => {\n    // If the outer has completed, and nothing is left in the buffer,\n    // and we don't have any active inner subscriptions, then we can\n    // Emit the state and complete.\n    if (isComplete && !buffer.length && !active) {\n      subscriber.complete();\n    }\n  };\n\n  // If we're under our concurrency limit, just start the inner subscription, otherwise buffer and wait.\n  const outerNext = (value: T) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n\n  const doInnerSub = (value: T) => {\n    // If we're expanding, we need to emit the outer values and the inner values\n    // as the inners will \"become outers\" in a way as they are recursively fed\n    // back to the projection mechanism.\n    expand && subscriber.next(value as any);\n\n    // Increment the number of active subscriptions so we can track it\n    // against our concurrency limit later.\n    active++;\n\n    // A flag used to show that the inner observable completed.\n    // This is checked during finalization to see if we should\n    // move to the next item in the buffer, if there is on.\n    let innerComplete = false;\n\n    // Start our inner subscription.\n    innerFrom(project(value, index++)).subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (innerValue) => {\n          // `mergeScan` has additional handling here. For example\n          // taking the inner value and updating state.\n          onBeforeNext?.(innerValue);\n\n          if (expand) {\n            // If we're expanding, then just recurse back to our outer\n            // handler. It will emit the value first thing.\n            outerNext(innerValue as any);\n          } else {\n            // Otherwise, emit the inner value.\n            subscriber.next(innerValue);\n          }\n        },\n        () => {\n          // Flag that we have completed, so we know to check the buffer\n          // during finalization.\n          innerComplete = true;\n        },\n        // Errors are passed to the destination.\n        undefined,\n        () => {\n          // During finalization, if the inner completed (it wasn't errored or\n          // cancelled), then we want to try the next item in the buffer if\n          // there is one.\n          if (innerComplete) {\n            // We have to wrap this in a try/catch because it happens during\n            // finalization, possibly asynchronously, and we want to pass\n            // any errors that happen (like in a projection function) to\n            // the outer Subscriber.\n            try {\n              // INNER SOURCE COMPLETE\n              // Decrement the active count to ensure that the next time\n              // we try to call `doInnerSub`, the number is accurate.\n              active--;\n              // If we have more values in the buffer, try to process those\n              // Note that this call will increment `active` ahead of the\n              // next conditional, if there were any more inner subscriptions\n              // to start.\n              while (buffer.length && active < concurrent) {\n                const bufferedValue = buffer.shift()!;\n                // Particularly for `expand`, we need to check to see if a scheduler was provided\n                // for when we want to start our inner subscription. Otherwise, we just start\n                // are next inner subscription.\n                if (innerSubScheduler) {\n                  executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n                } else {\n                  doInnerSub(bufferedValue);\n                }\n              }\n              // Check to see if we can complete, and complete if so.\n              checkComplete();\n            } catch (err) {\n              subscriber.error(err);\n            }\n          }\n        }\n      )\n    );\n  };\n\n  // Subscribe to our source observable.\n  source.subscribe(\n    createOperatorSubscriber(subscriber, outerNext, () => {\n      // Outer completed, make a note of it, and check to see if we can complete everything.\n      isComplete = true;\n      checkComplete();\n    })\n  );\n\n  // Additional teardown (for when the destination is torn down).\n  // Other teardown is added implicitly via subscription above.\n  return () => {\n    additionalTeardown?.();\n  };\n}\n","import { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * ![](concatAll.svg)\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```ts\n * import { fromEvent, map, interval, take, concatAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map(() => interval(1000).pipe(take(4)))\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaustAll}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return A function that returns an Observable emitting values from all the\n * inner Observables concatenated.\n */\nexport function concatAll<O extends ObservableInput<any>>(): OperatorFunction<O, ObservedValueOf<O>> {\n  return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * ![](mergeAll.png)\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n *\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n *\n * ```ts\n * import { fromEvent, map, interval, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map(() => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n *\n * ```ts\n * import { fromEvent, map, interval, take, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map(() => interval(1000).pipe(take(10)))\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concatAll}\n * @see {@link exhaustAll}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Infinity] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits values coming from\n * all the inner Observables emitted by the source Observable.\n */\nexport function mergeAll<O extends ObservableInput<any>>(concurrent: number = Infinity): OperatorFunction<O, ObservedValueOf<O>> {\n  return mergeMap(identity, concurrent);\n}\n","import { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction } from '../types';\nimport { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\n\n/** @deprecated The `subscriptionDelay` parameter will be removed in v8. */\nexport function delayWhen<T>(\n  delayDurationSelector: (value: T, index: number) => Observable<any>,\n  subscriptionDelay: Observable<any>\n): MonoTypeOperatorFunction<T>;\nexport function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<any>): MonoTypeOperatorFunction<T>;\n\n/**\n * Delays the emission of items from the source Observable by a given time span\n * determined by the emissions of another Observable.\n *\n * <span class=\"informal\">It's like {@link delay}, but the time span of the\n * delay duration is determined by a second Observable.</span>\n *\n * ![](delayWhen.png)\n *\n * `delayWhen` time shifts each emitted value from the source Observable by a\n * time span determined by another Observable. When the source emits a value,\n * the `delayDurationSelector` function is called with the source value as\n * argument, and should return an Observable, called the \"duration\" Observable.\n * The source value is emitted on the output Observable only when the duration\n * Observable emits a value or completes.\n * The completion of the notifier triggering the emission of the source value\n * is deprecated behavior and will be removed in future versions.\n *\n * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which\n * is an Observable. When `subscriptionDelay` emits its first value or\n * completes, the source Observable is subscribed to and starts behaving like\n * described in the previous paragraph. If `subscriptionDelay` is not provided,\n * `delayWhen` will subscribe to the source Observable as soon as the output\n * Observable is subscribed.\n *\n * ## Example\n *\n * Delay each click by a random amount of time, between 0 and 5 seconds\n *\n * ```ts\n * import { fromEvent, delayWhen, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(\n *   delayWhen(() => interval(Math.random() * 5000))\n * );\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link delay}\n * @see {@link throttle}\n * @see {@link throttleTime}\n * @see {@link debounce}\n * @see {@link debounceTime}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link audit}\n * @see {@link auditTime}\n *\n * @param {function(value: T, index: number): Observable} delayDurationSelector A function that\n * returns an Observable for each value emitted by the source Observable, which\n * is then used to delay the emission of that item on the output Observable\n * until the Observable returned from this function emits a value.\n * @param {Observable} subscriptionDelay An Observable that triggers the\n * subscription to the source Observable once it emits any value.\n * @return A function that returns an Observable that delays the emissions of\n * the source Observable by an amount of time specified by the Observable\n * returned by `delayDurationSelector`.\n */\nexport function delayWhen<T>(\n  delayDurationSelector: (value: T, index: number) => Observable<any>,\n  subscriptionDelay?: Observable<any>\n): MonoTypeOperatorFunction<T> {\n  if (subscriptionDelay) {\n    // DEPRECATED PATH\n    return (source: Observable<T>) =>\n      concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n  }\n\n  return mergeMap((value, index) => delayDurationSelector(value, index).pipe(take(1), mapTo(value)));\n}\n","import { Observable } from '../Observable';\nimport { ObservableInputTuple, SchedulerLike } from '../types';\nimport { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\n\nexport function concat<T extends readonly unknown[]>(...inputs: [...ObservableInputTuple<T>]): Observable<T[number]>;\nexport function concat<T extends readonly unknown[]>(\n  ...inputsAndScheduler: [...ObservableInputTuple<T>, SchedulerLike]\n): Observable<T[number]>;\n\n/**\n * Creates an output Observable which sequentially emits all values from the first given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * ![](concat.png)\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n *\n * Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n *\n * ```ts\n * import { interval, take, range, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * Concatenate 3 Observables\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * Concatenate the same Observable to repeat it\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n *   .subscribe({\n *     next: value => console.log(value),\n *     complete: () => console.log('...and it is done!')\n *   });\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // '...and it is done!' also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link startWith}\n * @see {@link endWith}\n *\n * @param args Input Observables to concatenate.\n */\nexport function concat(...args: any[]): Observable<unknown> {\n  return concatAll()(from(args, popScheduler(args)));\n}\n","import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\n\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * ![](ignoreElements.png)\n *\n * The `ignoreElements` operator suppresses all items emitted by the source Observable,\n * but allows its termination notification (either `error` or `complete`) to pass through unchanged.\n *\n * If you do not care about the items being emitted by an Observable, but you do want to be notified\n * when it completes or when it terminates with an error, you can apply the `ignoreElements` operator\n * to the Observable, which will ensure that it will never call its observers’ `next` handlers.\n *\n * ## Example\n *\n * Ignore all `next` emissions from the source\n *\n * ```ts\n * import { of, ignoreElements } from 'rxjs';\n *\n * of('you', 'talking', 'to', 'me')\n *   .pipe(ignoreElements())\n *   .subscribe({\n *     next: word => console.log(word),\n *     error: err => console.log('error:', err),\n *     complete: () => console.log('the end'),\n *   });\n *\n * // result:\n * // 'the end'\n * ```\n *\n * @return A function that returns an empty Observable that only calls\n * `complete` or `error`, based on which one is called by the source\n * Observable.\n */\nexport function ignoreElements(): OperatorFunction<unknown, never> {\n  return operate((source, subscriber) => {\n    source.subscribe(createOperatorSubscriber(subscriber, noop));\n  });\n}\n","import { OperatorFunction } from '../types';\nimport { map } from './map';\n\nexport function mapTo<R>(value: R): OperatorFunction<unknown, R>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function mapTo<T, R>(value: R): OperatorFunction<T, R>;\n\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * <span class=\"informal\">Like {@link map}, but it maps every source value to\n * the same output value every time.</span>\n *\n * ![](mapTo.png)\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * ## Example\n *\n * Map every click to the string `'Hi'`\n *\n * ```ts\n * import { fromEvent, mapTo } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const greetings = clicks.pipe(mapTo('Hi'));\n *\n * greetings.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param value The value to map each source value to.\n * @return A function that returns an Observable that emits the given `value`\n * every time the source Observable emits.\n */\nexport function mapTo<R>(value: R): OperatorFunction<unknown, R> {\n  return map(() => value);\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\n\n/**\n * Creates an observable that will wait for a specified time period, or exact date, before\n * emitting the number 0.\n *\n * <span class=\"informal\">Used to emit a notification after a delay.</span>\n *\n * This observable is useful for creating delays in code, or racing against other values\n * for ad-hoc timeouts.\n *\n * The `delay` is specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Examples\n *\n * Wait 3 seconds and start another observable\n *\n * You might want to use `timer` to delay subscription to an\n * observable by a set amount of time. Here we use a timer with\n * {@link concatMapTo} or {@link concatMap} in order to wait\n * a few seconds and start a subscription to a source.\n *\n * ```ts\n * import { of, timer, concatMap } from 'rxjs';\n *\n * // This could be any observable\n * const source = of(1, 2, 3);\n *\n * timer(3000)\n *   .pipe(concatMap(() => source))\n *   .subscribe(console.log);\n * ```\n *\n * Take all values until the start of the next minute\n *\n * Using a `Date` as the trigger for the first emission, you can\n * do things like wait until midnight to fire an event, or in this case,\n * wait until a new minute starts (chosen so the example wouldn't take\n * too long to run) in order to stop watching a stream. Leveraging\n * {@link takeUntil}.\n *\n * ```ts\n * import { interval, takeUntil, timer } from 'rxjs';\n *\n * // Build a Date object that marks the\n * // next minute.\n * const currentDate = new Date();\n * const startOfNextMinute = new Date(\n *   currentDate.getFullYear(),\n *   currentDate.getMonth(),\n *   currentDate.getDate(),\n *   currentDate.getHours(),\n *   currentDate.getMinutes() + 1\n * );\n *\n * // This could be any observable stream\n * const source = interval(1000);\n *\n * const result = source.pipe(\n *   takeUntil(timer(startOfNextMinute))\n * );\n *\n * result.subscribe(console.log);\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `dueTime`.\n *\n * @param due If a `number`, the amount of time in milliseconds to wait before emitting.\n * If a `Date`, the exact time at which to emit.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(due: number | Date, scheduler?: SchedulerLike): Observable<0>;\n\n/**\n * Creates an observable that starts an interval after a specified delay, emitting incrementing numbers -- starting at `0` --\n * on each interval after words.\n *\n * The `delay` and `intervalDuration` are specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Example\n *\n * ### Start an interval that starts right away\n *\n * Since {@link interval} waits for the passed delay before starting,\n * sometimes that's not ideal. You may want to start an interval immediately.\n * `timer` works well for this. Here we have both side-by-side so you can\n * see them in comparison.\n *\n * Note that this observable will never complete.\n *\n * ```ts\n * import { timer, interval } from 'rxjs';\n *\n * timer(0, 1000).subscribe(n => console.log('timer', n));\n * interval(1000).subscribe(n => console.log('interval', n));\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `startDue`.\n * @param startDue If a `number`, is the time to wait before starting the interval.\n * If a `Date`, is the exact time at which to start the interval.\n * @param intervalDuration The delay between each value emitted in the interval. Passing a\n * negative number here will result in immediate completion after the first value is emitted, as though\n * no `intervalDuration` was passed at all.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable<number>;\n\n/**\n * @deprecated The signature allowing `undefined` to be passed for `intervalDuration` will be removed in v8. Use the `timer(dueTime, scheduler?)` signature instead.\n */\nexport function timer(dueTime: number | Date, unused: undefined, scheduler?: SchedulerLike): Observable<0>;\n\nexport function timer(\n  dueTime: number | Date = 0,\n  intervalOrScheduler?: number | SchedulerLike,\n  scheduler: SchedulerLike = asyncScheduler\n): Observable<number> {\n  // Since negative intervalDuration is treated as though no\n  // interval was specified at all, we start with a negative number.\n  let intervalDuration = -1;\n\n  if (intervalOrScheduler != null) {\n    // If we have a second argument, and it's a scheduler,\n    // override the scheduler we had defaulted. Otherwise,\n    // it must be an interval.\n    if (isScheduler(intervalOrScheduler)) {\n      scheduler = intervalOrScheduler;\n    } else {\n      // Note that this *could* be negative, in which case\n      // it's like not passing an intervalDuration at all.\n      intervalDuration = intervalOrScheduler;\n    }\n  }\n\n  return new Observable((subscriber) => {\n    // If a valid date is passed, calculate how long to wait before\n    // executing the first value... otherwise, if it's a number just schedule\n    // that many milliseconds (or scheduler-specified unit size) in the future.\n    let due = isValidDate(dueTime) ? +dueTime - scheduler!.now() : dueTime;\n\n    if (due < 0) {\n      // Ensure we don't schedule in the future.\n      due = 0;\n    }\n\n    // The incrementing value we emit.\n    let n = 0;\n\n    // Start the timer.\n    return scheduler.schedule(function () {\n      if (!subscriber.closed) {\n        // Emit the next value and increment.\n        subscriber.next(n++);\n\n        if (0 <= intervalDuration) {\n          // If we have a interval after the initial timer,\n          // reschedule with the period.\n          this.schedule(undefined, intervalDuration);\n        } else {\n          // We didn't have an interval. So just complete.\n          subscriber.complete();\n        }\n      }\n    }, due);\n  });\n}\n","/**\n * Checks to see if a value is not only a `Date` object,\n * but a *valid* `Date` object that can be converted to a\n * number. For example, `new Date('blah')` is indeed an\n * `instanceof Date`, however it cannot be converted to a\n * number.\n */\nexport function isValidDate(value: any): value is Date {\n  return value instanceof Date && !isNaN(value as any);\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ArrowCounterclockwise = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M8 3a5 5 0 1 1-4.546 2.914.5.5 0 0 0-.908-.417A6 6 0 1 0 8 2v1z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M8 4.466V.534a.25.25 0 0 0-.41-.192L5.23 2.308a.25.25 0 0 0 0 .384l2.36 1.966A.25.25 0 0 0 8 4.466z\"\n  }));\n});\nArrowCounterclockwise.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nArrowCounterclockwise.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default ArrowCounterclockwise;","import React from \"react\"\r\nimport ReactApexChart from \"react-apexcharts\"\r\nimport { ApexOptions } from \"apexcharts\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nexport interface AgeChartProps {\r\n  title: string\r\n  age: number\r\n  color: string\r\n  loading: boolean\r\n}\r\n\r\nconst defaultFontFamily = 'system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"'\r\n\r\nexport default function AgeChart(props: AgeChartProps) {\r\n  const { t } = useTranslation()\r\n\r\n  const options: ApexOptions = {\r\n    chart: {\r\n      selection: {\r\n        enabled: false\r\n      },\r\n      fontFamily: defaultFontFamily\r\n    },\r\n    title: {\r\n      text: props.title,\r\n      align: 'center'\r\n    },\r\n    colors: [props.color],\r\n    states: {\r\n      hover: {\r\n        filter: {\r\n          type: \"none\"\r\n        }\r\n      },\r\n      active: {\r\n        filter: {\r\n          type: \"none\"\r\n        }\r\n      },\r\n    },\r\n    fill: {\r\n      opacity: 1\r\n    },\r\n    plotOptions: {\r\n      radialBar: {\r\n        hollow: {\r\n          size: '70%'\r\n        },\r\n        dataLabels: {\r\n          show: true,\r\n          name: {\r\n            show: true,\r\n            offsetY: 10\r\n          },\r\n          total: {\r\n            show: true,\r\n            label: props.age.toString(),\r\n            color: props.loading ? \"#dee2e6\" : props.color,\r\n            fontSize: \"32\",\r\n            formatter: function () {\r\n              return props.loading ? t(\"lifeAge.calculate\") : t(\"lifeAge.years\")\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n  return (<ReactApexChart series={[props.age]} options={options} height={240} type=\"radialBar\"></ReactApexChart>)\r\n}\r\n","import React from \"react\"\r\nimport { Button, Col, Container, Row } from \"react-bootstrap\"\r\nimport { ArrowCounterclockwise } from \"react-bootstrap-icons\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { RangeColor } from \"amh-results\"\r\nimport AgeChart from \"./AgeChart\"\r\n\r\nexport interface AgeGraphProps {\r\n  age: number\r\n  lifeAge: number\r\n  loading: boolean\r\n  onReset: () => void\r\n}\r\n\r\nexport default function AgeGraph(props: AgeGraphProps) {\r\n  const { t } = useTranslation()\r\n\r\n  const lifeAgeColor = props.lifeAge - props.age > 0 ? RangeColor.out : RangeColor.normal\r\n  return (<Container className=\"p-0\">\r\n    <Row>\r\n      <Col xs={6} className=\"p-0\">\r\n        <AgeChart age={props.age} title={t(\"lifeAge.yourAge\")} color={RangeColor.line} loading={false} />\r\n      </Col>\r\n      <Col xs={6} className=\"p-0 position-relative\">\r\n        <AgeChart age={props.lifeAge} title={t(\"lifeAge.lifeAge\")} color={lifeAgeColor} loading={props.loading} />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col xs={12} className=\"text-center\">\r\n        <Button variant=\"secondary\" className=\"m-1\" onClick={props.onReset}><ArrowCounterclockwise />{t(\"lifeAge.reset\")}</Button>\r\n      </Col>\r\n    </Row>\r\n  </Container>)\r\n}\r\n","import React, { useCallback } from \"react\"\r\nimport { Col, Container, Form, Row } from \"react-bootstrap\"\r\nimport ReportRange from \"../../api/models/RangeDetail\"\r\nimport { RangeChart } from \"amh-results\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\n\r\ninterface RangeSliderProps {\r\n  testCode: string,\r\n  name: string\r\n  numericResult?: number\r\n  range: ReportRange\r\n  selectedResult?: number\r\n  onChange: (value: number) => void\r\n}\r\n\r\nfunction zeroRange(range: ReportRange) {\r\n  return [range.low, range.borderlineLow, range.normal, range.borderlineHigh, range.high].every(value => value === 0)\r\n}\r\n\r\nexport default function RangeSlider(props: RangeSliderProps) {\r\n  const [translationRef] = useTranslationWithRef()\r\n  const chartTranslation = useCallback((key: string) => translationRef.current(key), [translationRef])\r\n\r\n  const step = props.range.scaleMax > 10 ? 1 : 0.1\r\n  const value = (props.selectedResult !== undefined) ? props.selectedResult : props.numericResult\r\n  const lifeAgeWeightHeight = props.testCode === \"T241\" || (props.testCode === \"T242\" && zeroRange(props.range))\r\n\r\n  return (<Container className=\"p-0\">\r\n    <Row>\r\n      <Col xs={12} className=\"fw-bold text-uppercase\">{props.name}</Col>\r\n      <Col xs={12}>\r\n        <RangeChart range={props.range} numericResult={props.numericResult} secondResult={props.selectedResult} lifeAge lifeAgeWeightHeight={lifeAgeWeightHeight} translation={chartTranslation} />\r\n      </Col>\r\n      <Col xs={12}>\r\n        <Form.Control type=\"range\" min={props.range.scaleMin} max={props.range.scaleMax} className=\"form-range shadow-none bg-transparent border-0 px-1 mt-n4\"\r\n          value={value} step={step}\r\n          onChange={(e) => props.onChange(+e.target.value)} />\r\n      </Col>\r\n    </Row>\r\n  </Container>)\r\n}\r\n","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\n\nvar MAX_DELAY_MS = Math.pow(2, 31) - 1;\n\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n  var delayMs = timeoutAtMs - Date.now();\n  handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(function () {\n    return setChainedTimeout(handleRef, fn, timeoutAtMs);\n  }, MAX_DELAY_MS);\n}\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n *   <div className=\"App\">\n *     {hello ? <h3>Hello</h3> : null}\n *   </div>\n * );\n * ```\n */\n\n\nexport default function useTimeout() {\n  var isMounted = useMounted(); // types are confused between node and web here IDK\n\n  var handleRef = useRef();\n  useWillUnmount(function () {\n    return clearTimeout(handleRef.current);\n  });\n  return useMemo(function () {\n    var clear = function clear() {\n      return clearTimeout(handleRef.current);\n    };\n\n    function set(fn, delayMs) {\n      if (delayMs === void 0) {\n        delayMs = 0;\n      }\n\n      if (!isMounted()) return;\n      clear();\n\n      if (delayMs <= MAX_DELAY_MS) {\n        // For simplicity, if the timeout is short, just set a normal timeout.\n        handleRef.current = setTimeout(fn, delayMs);\n      } else {\n        setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n      }\n    }\n\n    return {\n      set: set,\n      clear: clear\n    };\n  }, []);\n}","import listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useEffect } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useClickOutside, { getRefTarget } from './useClickOutside';\nconst escapeKeyCode = 27;\n\nconst noop = () => {};\n\n/**\n * The `useRootClose` hook registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref  The element boundary\n * @param {function} onRootClose\n * @param {object=}  options\n * @param {boolean=} options.disabled\n * @param {string=}  options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useRootClose(ref, onRootClose, {\n  disabled,\n  clickTrigger\n} = {}) {\n  const onClose = onRootClose || noop;\n  useClickOutside(ref, onClose, {\n    disabled,\n    clickTrigger\n  });\n  const handleKeyUp = useEventCallback(e => {\n    if (e.keyCode === escapeKeyCode) {\n      onClose(e);\n    }\n  });\n  useEffect(() => {\n    if (disabled || ref == null) return undefined;\n    const doc = ownerDocument(getRefTarget(ref)); // Store the current event to avoid triggering handlers immediately\n    // https://github.com/facebook/react/issues/20074\n\n    let currentEvent = (doc.defaultView || window).event;\n    const removeKeyupListener = listen(doc, 'keyup', e => {\n      // skip if this event is the same as the one running when we added the handlers\n      if (e === currentEvent) {\n        currentEvent = undefined;\n        return;\n      }\n\n      handleKeyUp(e);\n    });\n    return () => {\n      removeKeyupListener();\n    };\n  }, [ref, disabled, handleKeyUp]);\n}\n\nexport default useRootClose;","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport { useState } from 'react';\nimport usePopper from './usePopper';\nimport useRootClose from './useRootClose';\nimport useWaitForDOMRef from './useWaitForDOMRef';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n * Built on top of `Popper.js`, the overlay component is\n * great for custom tooltip overlays.\n */\nconst Overlay = /*#__PURE__*/React.forwardRef((props, outerRef) => {\n  const {\n    flip,\n    offset,\n    placement,\n    containerPadding,\n    popperConfig = {},\n    transition: Transition\n  } = props;\n  const [rootElement, attachRef] = useCallbackRef();\n  const [arrowElement, attachArrowRef] = useCallbackRef();\n  const mergedRef = useMergedRefs(attachRef, outerRef);\n  const container = useWaitForDOMRef(props.container);\n  const target = useWaitForDOMRef(props.target);\n  const [exited, setExited] = useState(!props.show);\n  const popper = usePopper(target, rootElement, mergeOptionsWithPopperConfig({\n    placement,\n    enableEvents: !!props.show,\n    containerPadding: containerPadding || 5,\n    flip,\n    offset,\n    arrowElement,\n    popperConfig\n  }));\n\n  if (props.show) {\n    if (exited) setExited(false);\n  } else if (!props.transition && !exited) {\n    setExited(true);\n  }\n\n  const handleHidden = (...args) => {\n    setExited(true);\n\n    if (props.onExited) {\n      props.onExited(...args);\n    }\n  }; // Don't un-render the overlay while it's transitioning out.\n\n\n  const mountOverlay = props.show || Transition && !exited;\n  useRootClose(rootElement, props.onHide, {\n    disabled: !props.rootClose || props.rootCloseDisabled,\n    clickTrigger: props.rootCloseEvent\n  });\n\n  if (!mountOverlay) {\n    // Don't bother showing anything if we don't have to.\n    return null;\n  }\n\n  let child = props.children(Object.assign({}, popper.attributes.popper, {\n    style: popper.styles.popper,\n    ref: mergedRef\n  }), {\n    popper,\n    placement,\n    show: !!props.show,\n    arrowProps: Object.assign({}, popper.attributes.arrow, {\n      style: popper.styles.arrow,\n      ref: attachArrowRef\n    })\n  });\n\n  if (Transition) {\n    const {\n      onExit,\n      onExiting,\n      onEnter,\n      onEntering,\n      onEntered\n    } = props;\n    child = /*#__PURE__*/_jsx(Transition, {\n      in: props.show,\n      appear: true,\n      onExit: onExit,\n      onExiting: onExiting,\n      onExited: handleHidden,\n      onEnter: onEnter,\n      onEntering: onEntering,\n      onEntered: onEntered,\n      children: child\n    });\n  }\n\n  return container ? /*#__PURE__*/ReactDOM.createPortal(child, container) : null;\n});\nOverlay.displayName = 'Overlay';\nexport default Overlay;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('popover-header');","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('popover-body');","import * as React from 'react';\nexport class BsPrefixComponent extends React.Component {} // Need to use this instead of typeof Component to get proper type checking.\n\nexport function getOverlayDirection(placement, isRTL) {\n  let bsDirection = placement;\n\n  if (placement === 'left') {\n    bsDirection = isRTL ? 'end' : 'start';\n  } else if (placement === 'right') {\n    bsDirection = isRTL ? 'start' : 'end';\n  }\n\n  return bsDirection;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport PopoverHeader from './PopoverHeader';\nimport PopoverBody from './PopoverBody';\nimport { getOverlayDirection } from './helpers';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst defaultProps = {\n  placement: 'right'\n};\nconst Popover = /*#__PURE__*/React.forwardRef(({\n  bsPrefix,\n  placement,\n  className,\n  style,\n  children,\n  body,\n  arrowProps,\n  popper: _,\n  show: _1,\n  ...props\n}, ref) => {\n  const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'popover');\n  const isRTL = useIsRTL();\n  const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n  const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n  return /*#__PURE__*/_jsxs(\"div\", {\n    ref: ref,\n    role: \"tooltip\",\n    style: style,\n    \"x-placement\": primaryPlacement,\n    className: classNames(className, decoratedBsPrefix, primaryPlacement && `bs-popover-${bsDirection}`),\n    ...props,\n    children: [/*#__PURE__*/_jsx(\"div\", {\n      className: \"popover-arrow\",\n      ...arrowProps\n    }), body ? /*#__PURE__*/_jsx(PopoverBody, {\n      children: children\n    }) : children]\n  });\n});\nPopover.defaultProps = defaultProps;\nexport default Object.assign(Popover, {\n  Header: PopoverHeader,\n  Body: PopoverBody,\n  // Default popover offset.\n  // https://github.com/twbs/bootstrap/blob/5c32767e0e0dbac2d934bcdee03719a65d3f1187/js/src/popover.js#L28\n  POPPER_OFFSET: [0, 8]\n});","import * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport BaseOverlay from '@restart/ui/Overlay';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useOverlayOffset from './useOverlayOffset';\nimport Fade from './Fade';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n  transition: Fade,\n  rootClose: false,\n  show: false,\n  placement: 'top'\n};\n\nfunction wrapRefs(props, arrowProps) {\n  const {\n    ref\n  } = props;\n  const {\n    ref: aRef\n  } = arrowProps;\n\n  props.ref = ref.__wrapped || (ref.__wrapped = r => ref(safeFindDOMNode(r)));\n\n  arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = r => aRef(safeFindDOMNode(r)));\n}\n\nconst Overlay = /*#__PURE__*/React.forwardRef(({\n  children: overlay,\n  transition,\n  popperConfig = {},\n  ...outerProps\n}, outerRef) => {\n  const popperRef = useRef({});\n  const [ref, modifiers] = useOverlayOffset();\n  const mergedRef = useMergedRefs(outerRef, ref);\n  const actualTransition = transition === true ? Fade : transition || undefined;\n  return /*#__PURE__*/_jsx(BaseOverlay, { ...outerProps,\n    ref: mergedRef,\n    popperConfig: { ...popperConfig,\n      modifiers: modifiers.concat(popperConfig.modifiers || [])\n    },\n    transition: actualTransition,\n    children: (overlayProps, {\n      arrowProps,\n      popper: popperObj,\n      show\n    }) => {\n      var _popperObj$state, _popperObj$state$modi;\n\n      wrapRefs(overlayProps, arrowProps); // Need to get placement from popper object, handling case when overlay is flipped using 'flip' prop\n\n      const updatedPlacement = popperObj == null ? void 0 : popperObj.placement;\n      const popper = Object.assign(popperRef.current, {\n        state: popperObj == null ? void 0 : popperObj.state,\n        scheduleUpdate: popperObj == null ? void 0 : popperObj.update,\n        placement: updatedPlacement,\n        outOfBoundaries: (popperObj == null ? void 0 : (_popperObj$state = popperObj.state) == null ? void 0 : (_popperObj$state$modi = _popperObj$state.modifiersData.hide) == null ? void 0 : _popperObj$state$modi.isReferenceHidden) || false\n      });\n      if (typeof overlay === 'function') return overlay({ ...overlayProps,\n        placement: updatedPlacement,\n        show,\n        ...(!transition && show && {\n          className: 'show'\n        }),\n        popper,\n        arrowProps\n      });\n      return /*#__PURE__*/React.cloneElement(overlay, { ...overlayProps,\n        placement: updatedPlacement,\n        arrowProps,\n        popper,\n        className: classNames(overlay.props.className, !transition && show && 'show'),\n        style: { ...overlay.props.style,\n          ...overlayProps.style\n        }\n      });\n    }\n  });\n});\nOverlay.displayName = 'Overlay';\nOverlay.defaultProps = defaultProps;\nexport default Overlay;","import { useMemo, useRef } from 'react';\nimport hasClass from 'dom-helpers/hasClass';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Popover from './Popover'; // This is meant for internal use.\n// This applies a custom offset to the overlay if it's a popover.\n\nexport default function useOverlayOffset() {\n  const overlayRef = useRef(null);\n  const popoverClass = useBootstrapPrefix(undefined, 'popover');\n  const offset = useMemo(() => ({\n    name: 'offset',\n    options: {\n      offset: () => {\n        if (overlayRef.current && hasClass(overlayRef.current, popoverClass)) {\n          return Popover.POPPER_OFFSET;\n        }\n\n        return [0, 0];\n      }\n    }\n  }), [popoverClass]);\n  return [overlayRef, [offset]];\n}","import contains from 'dom-helpers/contains';\nimport * as React from 'react';\nimport { cloneElement, useCallback, useRef } from 'react';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport warning from 'warning';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport Overlay from './Overlay';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction normalizeDelay(delay) {\n  return delay && typeof delay === 'object' ? delay : {\n    show: delay,\n    hide: delay\n  };\n} // Simple implementation of mouseEnter and mouseLeave.\n// React's built version is broken: https://github.com/facebook/react/issues/4251\n// for cases when the trigger is disabled and mouseOut/Over can cause flicker\n// moving from one child element to another.\n\n\nfunction handleMouseOverOut( // eslint-disable-next-line @typescript-eslint/no-shadow\nhandler, args, relatedNative) {\n  const [e] = args;\n  const target = e.currentTarget;\n  const related = e.relatedTarget || e.nativeEvent[relatedNative];\n\n  if ((!related || related !== target) && !contains(target, related)) {\n    handler(...args);\n  }\n}\n\nconst defaultProps = {\n  defaultShow: false,\n  trigger: ['hover', 'focus']\n};\n\nfunction OverlayTrigger({\n  trigger,\n  overlay,\n  children,\n  popperConfig = {},\n  show: propsShow,\n  defaultShow = false,\n  onToggle,\n  delay: propsDelay,\n  placement,\n  flip = placement && placement.indexOf('auto') !== -1,\n  ...props\n}) {\n  const triggerNodeRef = useRef(null);\n  const mergedRef = useMergedRefs(triggerNodeRef, children.ref);\n  const timeout = useTimeout();\n  const hoverStateRef = useRef('');\n  const [show, setShow] = useUncontrolledProp(propsShow, defaultShow, onToggle);\n  const delay = normalizeDelay(propsDelay);\n  const {\n    onFocus,\n    onBlur,\n    onClick\n  } = typeof children !== 'function' ? React.Children.only(children).props : {};\n\n  const attachRef = r => {\n    mergedRef(safeFindDOMNode(r));\n  };\n\n  const handleShow = useCallback(() => {\n    timeout.clear();\n    hoverStateRef.current = 'show';\n\n    if (!delay.show) {\n      setShow(true);\n      return;\n    }\n\n    timeout.set(() => {\n      if (hoverStateRef.current === 'show') setShow(true);\n    }, delay.show);\n  }, [delay.show, setShow, timeout]);\n  const handleHide = useCallback(() => {\n    timeout.clear();\n    hoverStateRef.current = 'hide';\n\n    if (!delay.hide) {\n      setShow(false);\n      return;\n    }\n\n    timeout.set(() => {\n      if (hoverStateRef.current === 'hide') setShow(false);\n    }, delay.hide);\n  }, [delay.hide, setShow, timeout]);\n  const handleFocus = useCallback((...args) => {\n    handleShow();\n    onFocus == null ? void 0 : onFocus(...args);\n  }, [handleShow, onFocus]);\n  const handleBlur = useCallback((...args) => {\n    handleHide();\n    onBlur == null ? void 0 : onBlur(...args);\n  }, [handleHide, onBlur]);\n  const handleClick = useCallback((...args) => {\n    setShow(!show);\n    onClick == null ? void 0 : onClick(...args);\n  }, [onClick, setShow, show]);\n  const handleMouseOver = useCallback((...args) => {\n    handleMouseOverOut(handleShow, args, 'fromElement');\n  }, [handleShow]);\n  const handleMouseOut = useCallback((...args) => {\n    handleMouseOverOut(handleHide, args, 'toElement');\n  }, [handleHide]);\n  const triggers = trigger == null ? [] : [].concat(trigger);\n  const triggerProps = {\n    ref: attachRef\n  };\n\n  if (triggers.indexOf('click') !== -1) {\n    triggerProps.onClick = handleClick;\n  }\n\n  if (triggers.indexOf('focus') !== -1) {\n    triggerProps.onFocus = handleFocus;\n    triggerProps.onBlur = handleBlur;\n  }\n\n  if (triggers.indexOf('hover') !== -1) {\n    process.env.NODE_ENV !== \"production\" ? warning(triggers.length > 1, '[react-bootstrap] Specifying only the `\"hover\"` trigger limits the visibility of the overlay to just mouse users. Consider also including the `\"focus\"` trigger so that touch and keyboard only users can see the overlay as well.') : void 0;\n    triggerProps.onMouseOver = handleMouseOver;\n    triggerProps.onMouseOut = handleMouseOut;\n  }\n\n  return /*#__PURE__*/_jsxs(_Fragment, {\n    children: [typeof children === 'function' ? children(triggerProps) : /*#__PURE__*/cloneElement(children, triggerProps), /*#__PURE__*/_jsx(Overlay, { ...props,\n      show: show,\n      onHide: handleHide,\n      flip: flip,\n      placement: placement,\n      popperConfig: popperConfig,\n      target: triggerNodeRef.current,\n      children: overlay\n    })]\n  });\n}\n\nOverlayTrigger.defaultProps = defaultProps;\nexport default OverlayTrigger;","import React, { Fragment } from \"react\"\r\nimport { Button, Col, OverlayTrigger, Popover, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport LifeAgeValue from \"../../api/models/LifeAgeValue\"\r\n\r\ninterface ScoresPopoverProps {\r\n  values: LifeAgeValue[]\r\n}\r\n\r\nexport default function ScoresPopover({ values }: ScoresPopoverProps) {\r\n  const { t } = useTranslation()\r\n\r\n  return (<OverlayTrigger trigger=\"click\" placement=\"bottom\" rootClose overlay={\r\n    <Popover className=\"popover-under-sticky\">\r\n      <Popover.Header as=\"h3\">{t(\"lifeAge.scores\")}</Popover.Header>\r\n      <Popover.Body>\r\n        <Row>\r\n          {values?.map(item => <Fragment key={item.name}>\r\n            <Col xs={4} className=\"fw-bold\">{item.name}:</Col>\r\n            <Col xs={2} className=\"text-end ps-0\">{item.value}</Col>\r\n          </Fragment>)}\r\n        </Row>\r\n      </Popover.Body>\r\n    </Popover>}>\r\n    <Button className=\"text-decoration-none fw-bold text-uppercase form-label\" variant=\"\">{t(\"lifeAge.ageDifference\")}:</Button>\r\n  </OverlayTrigger>)\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport LifeAgeValue from \"../../api/models/LifeAgeValue\"\r\n\r\ninterface ValuesSectionProps {\r\n  values: LifeAgeValue[]\r\n}\r\n\r\nexport default function ValuesSection({ values }: ValuesSectionProps) {\r\n  return (\r\n    <Row className=\"mb-3\">\r\n      {values.map((lifeAgeValue, index) =>\r\n        <Col xs={12} md={6} lg={4} key={index}>\r\n          <span className=\"fw-bold text-uppercase align-middle me-3\">{lifeAgeValue.name}:</span>\r\n          <span className=\"text-dark fs-2 align-middle\">{lifeAgeValue.value.toFixed(1)}</span>\r\n        </Col>)}\r\n    </Row>\r\n  )\r\n}\r\n","import { observer } from \"mobx-react-lite\"\r\nimport * as React from \"react\"\r\nimport FormatName from \"../../formatters/FormatName\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\"\r\n\r\nexport function DonorInfo() {\r\n  const authStore = useAuthStore()\r\n\r\n  return (<>\r\n    {authStore.donorInfo && <h3 className=\"text-uppercase\">{FormatName(authStore.donorInfo)}</h3>}\r\n  </>)\r\n}\r\n\r\nexport default observer(DonorInfo)\r\n","import DonorInfo from \"../api/models/Donor\"\r\n\r\nexport default function FormatName(donor: DonorInfo): string {\r\n  if (donor) {\r\n    return `${donor.firstName} ${donor.lastName}`\r\n  }\r\n  return \"\"\r\n}\r\n","import * as React from \"react\"\r\n\r\ninterface ToggleSwitchProps {\r\n  on?: string\r\n  off?: string\r\n  className?: string\r\n  checked?: boolean\r\n  disabled?: boolean\r\n  onCheck(checked: boolean): void\r\n}\r\n\r\nexport default class ToggleSwitch extends React.PureComponent<ToggleSwitchProps> {\r\n  render() {\r\n    const className = `switch ${ this.props.className || \"\" }`\r\n    return (\r\n      <label className={ className }>\r\n        <input type=\"checkbox\" checked={ this.props.checked } disabled={ this.props.disabled } onChange={ e => this.props.onCheck(e.target.checked) } />\r\n        <span className=\"slider round\">\r\n          <span className=\"on\">{ this.props.on || \"On\" }</span>\r\n          <span className=\"off\">{ this.props.off || \"Off\" }</span>\r\n        </span>\r\n      </label>\r\n    )\r\n  }\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ChevronUp = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z\"\n  }));\n});\nChevronUp.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nChevronUp.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default ChevronUp;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ChevronDown = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\"\n  }));\n});\nChevronDown.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nChevronDown.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default ChevronDown;","import React, { useEffect, useReducer, useState } from \"react\"\r\nimport { Col, Collapse, Container, Form, Row, Spinner } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { delay, of, switchMap } from \"rxjs\"\r\nimport { calculate, getResults } from \"../api/LifeAge\"\r\nimport LifeAgeDetail from \"../api/models/LifeAgeDetail\"\r\nimport LifeAgeResults from \"../api/models/LifeAgeResults\"\r\nimport LifeAgeScore from \"../api/models/LifeAgeScore\"\r\nimport { APIError } from \"../api/ObservableFromFetch\"\r\nimport DataLoader from \"./DataLoader\"\r\nimport AgeGraph from \"./LifeAge/AgeGraph\"\r\nimport RangeSlider from \"./LifeAge/RangeSlider\"\r\nimport ScoresPopover from \"./LifeAge/ScoresPopover\"\r\nimport ValuesSection from \"./LifeAge/ValuesSection\"\r\nimport DonorInfo from \"./Results/DonorInfo\"\r\nimport ToggleSwitch from \"./ToggleSwitch\"\r\nimport ReportRange from \"../api/models/RangeDetail\"\r\nimport { ChevronDown, ChevronUp } from \"react-bootstrap-icons\"\r\n\r\ninterface SelectedResult {\r\n  [key: string]: number\r\n}\r\n\r\nfunction mapSelectedResults(details: LifeAgeDetail[]) {\r\n  const results: SelectedResult = {}\r\n  details.forEach(detail => results[detail.testCode] = detail.numericResult || 0)\r\n  return results\r\n}\r\nfunction getRange(range: ReportRange, score?: LifeAgeScore): ReportRange {\r\n  if (!score) {\r\n    return range\r\n  }\r\n  const recalculatedRanges = score?.recalculatedRanges || []\r\n  const hasRecalculated = recalculatedRanges?.length > 0\r\n  if (!hasRecalculated) {\r\n    return range\r\n  }\r\n  const recalculatedRange = recalculatedRanges.find(item => item.testCode === range.testCode)\r\n  if (recalculatedRange) {\r\n    return recalculatedRange\r\n  }\r\n\r\n  return range\r\n}\r\n\r\nexport default function LifeAge() {\r\n  const { t } = useTranslation()\r\n  const [details, setDetailsState] = useReducer((state: DataLoader<LifeAgeDetail>, newState: Partial<DataLoader<LifeAgeDetail>>) => ({ ...state, ...newState }), { loading: false, loaded: false, data: [] })\r\n  const [age, setAge] = useState<number>(0)\r\n  const [lifeAge, setLifeAge] = useState<LifeAgeScore>()\r\n  const [calculating, setCalculating] = useState<boolean>(false)\r\n  const [startCalculate, setStartCalculate] = useState<boolean>(false)\r\n  const [smoker, setSmoker] = useState<boolean>(false)\r\n  const [pregnant, setPregnant] = useState<boolean>(false)\r\n  const [selectedResults, setSelectedResults] = useState<SelectedResult>({})\r\n  const [initialSmoker, setInitialSmoker] = useState<boolean>(false)\r\n  const [collapsed, setCollapsed] = useState<boolean>(false)\r\n\r\n  useEffect(() => {\r\n    setDetailsState({ loading: true })\r\n\r\n    const subscription = getResults().subscribe({\r\n      next: (result: LifeAgeResults) => {\r\n        setAge(result.age)\r\n        setLifeAge(result.lifeAge)\r\n        setSmoker(result.smoker)\r\n        setPregnant(result.pregnant)\r\n        setInitialSmoker(result.smoker)\r\n        setSelectedResults(mapSelectedResults(result.details))\r\n        setDetailsState({ loading: false, loaded: true, data: result.details })\r\n      },\r\n      error: (e: APIError) => {\r\n        setDetailsState({ loading: false })\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    if (!startCalculate) {\r\n      return\r\n    }\r\n    setCalculating(true)\r\n    const subscription = of({ selectedResults, smoker }).pipe(delay(500),\r\n      switchMap((params) => calculate({\r\n        smoker: params.smoker,\r\n        pregnant: pregnant,\r\n        details: Object.entries(params.selectedResults).map(entry => {\r\n          const [key, value] = entry\r\n          return { testCode: key, numericResult: value }\r\n        })\r\n      })))\r\n      .subscribe({\r\n        next: (result) => {\r\n          setCalculating(false)\r\n          setLifeAge(result)\r\n        },\r\n        error: (e: APIError) => {\r\n          setCalculating(false)\r\n          toast.error(t(e.message, { data: e.data }))\r\n        }\r\n      })\r\n    return () => subscription.unsubscribe()\r\n  }, [startCalculate, selectedResults, smoker])\r\n\r\n  const setResultCallback = (testCode: string) => (value: number) => {\r\n    const newSelectedResults = { ...selectedResults }\r\n    newSelectedResults[testCode] = value\r\n    setSelectedResults(newSelectedResults)\r\n    setStartCalculate(true)\r\n  }\r\n\r\n  const checkSmoker = (checked: boolean) => {\r\n    setSmoker(checked)\r\n    setStartCalculate(true)\r\n  }\r\n\r\n  const reset = () => {\r\n    setSelectedResults(mapSelectedResults(details.data))\r\n    setSmoker(initialSmoker)\r\n  }\r\n\r\n  const ageDifference = (lifeAge?.age || age) - age\r\n  const sign = ageDifference > 0 ? \"+\" : \"\"\r\n\r\n  return (<Container>\r\n    <DonorInfo />\r\n    <Row className=\"justify-content-end\">\r\n      <Col className=\"col-auto mx-2\">\r\n        {!collapsed && <ChevronUp onClick={() => setCollapsed(true)} />}\r\n        {collapsed && <ChevronDown onClick={() => setCollapsed(false)} />}\r\n      </Col>\r\n    </Row>\r\n    <Collapse in={!collapsed}>\r\n      <div>\r\n        <p>{t(\"lifeAge.description\")}</p>\r\n        <p>{t(\"lifeAge.description_note\")}</p>\r\n      </div>\r\n    </Collapse>\r\n    {details.loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n    {!details.loading && <>\r\n      <Row className=\"sticky-top bg-white\">\r\n        <Col xs={12} lg={8}>\r\n          <AgeGraph age={age} lifeAge={lifeAge?.age || age} loading={calculating} onReset={reset} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col xs={12} lg={4} className=\"mb-3\">\r\n          <Row><Form.Label className=\"fw-bold text-uppercase\">{t(\"lifeAge.smoker\")}</Form.Label></Row>\r\n          <ToggleSwitch checked={smoker} onCheck={checkSmoker} on={t(\"yes\")} off={t(\"no\")} />\r\n        </Col>\r\n        <Col xs={6} lg={2} className=\"pt-4 mb-3\">\r\n          {lifeAge?.subScores ? <ScoresPopover values={lifeAge?.subScores} /> : <span className=\"fw-bold text-uppercase form-label\">{t(\"lifeAge.ageDifference\")}:</span>}\r\n        </Col>\r\n        <Col xs={6} lg={6} className=\"mb-3 align-self-end\">\r\n          <span className=\"text-warning fs-2\">{calculating ? \"--\" : `${sign}${ageDifference.toFixed(1)}`}</span>\r\n        </Col>\r\n      </Row>\r\n      {lifeAge?.values && <ValuesSection values={lifeAge?.values} />}\r\n      <Row className=\"mb-3\">\r\n        {details.data.filter(detail => detail.range).map((detail, index) => {\r\n          const range = getRange(detail.range!, lifeAge)\r\n          return (\r\n            <Col key={index} xs={12} lg={8} className=\"mb-3\">\r\n              <RangeSlider key={index} range={range!}\r\n                numericResult={detail.numericResult}\r\n                testCode={detail.testCode}\r\n                name={detail.name}\r\n                selectedResult={selectedResults[detail.testCode]}\r\n                onChange={setResultCallback(detail.testCode)} />\r\n            </Col>)\r\n        })}\r\n      </Row>\r\n    </>}\r\n  </Container>)\r\n}\r\n","import LifeAgeInput from \"./models/LifeAgeInput\"\r\nimport LifeAgeResults from \"./models/LifeAgeResults\"\r\nimport LifeAgeScore from \"./models/LifeAgeScore\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getResults = () => ObservableFromFetch<LifeAgeResults>(\"LifeAge/Results\")\r\nexport const calculate = (params: LifeAgeInput) => ObservableFromFetch<LifeAgeScore>(\"LifeAge/Calculate\", JSON.stringify(params))\r\n","import { Subscriber } from '../Subscriber';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/* tslint:disable:max-line-length */\nexport function switchMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function switchMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: undefined\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function switchMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R\n): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables.</span>\n *\n * ![](switchMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * ## Example\n *\n * Generate new Observable according to source Observable values\n *\n * ```ts\n * import { of, switchMap } from 'rxjs';\n *\n * const switched = of(1, 2, 3).pipe(switchMap(x => of(x, x ** 2, x ** 3)));\n * switched.subscribe(x => console.log(x));\n * // outputs\n * // 1\n * // 1\n * // 1\n * // 2\n * // 4\n * // 8\n * // 3\n * // 9\n * // 27\n * ```\n *\n * Restart an interval Observable on every click event\n *\n * ```ts\n * import { fromEvent, switchMap, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMap(() => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchAll}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return A function that returns an Observable that emits the result of\n * applying the projection function (and the optional deprecated\n * `resultSelector`) to each item emitted by the source Observable and taking\n * only the values from the most recently projected inner Observable.\n */\nexport function switchMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R\n): OperatorFunction<T, ObservedValueOf<O> | R> {\n  return operate((source, subscriber) => {\n    let innerSubscriber: Subscriber<ObservedValueOf<O>> | null = null;\n    let index = 0;\n    // Whether or not the source subscription has completed\n    let isComplete = false;\n\n    // We only complete the result if the source is complete AND we don't have an active inner subscription.\n    // This is called both when the source completes and when the inners complete.\n    const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          // Cancel the previous inner subscription if there was one\n          innerSubscriber?.unsubscribe();\n          let innerIndex = 0;\n          const outerIndex = index++;\n          // Start the next inner subscription\n          innerFrom(project(value, outerIndex)).subscribe(\n            (innerSubscriber = createOperatorSubscriber(\n              subscriber,\n              // When we get a new inner value, next it through. Note that this is\n              // handling the deprecate result selector here. This is because with this architecture\n              // it ends up being smaller than using the map operator.\n              (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue),\n              () => {\n                // The inner has completed. Null out the inner subcriber to\n                // free up memory and to signal that we have no inner subscription\n                // currently.\n                innerSubscriber = null!;\n                checkComplete();\n              }\n            ))\n          );\n        },\n        () => {\n          isComplete = true;\n          checkComplete();\n        }\n      )\n    );\n  });\n}\n","import { SchedulerLike, ValueFromArray } from '../types';\nimport { Observable } from '../Observable';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\n\n// Devs are more likely to pass null or undefined than they are a scheduler\n// without accompanying values. To make things easier for (naughty) devs who\n// use the `strictNullChecks: false` TypeScript compiler option, these\n// overloads with explicit null and undefined values are included.\n\nexport function of(value: null): Observable<null>;\nexport function of(value: undefined): Observable<undefined>;\n\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function of(scheduler: SchedulerLike): Observable<never>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function of<A extends readonly unknown[]>(...valuesAndScheduler: [...A, SchedulerLike]): Observable<ValueFromArray<A>>;\n\nexport function of(): Observable<never>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function of<T>(): Observable<T>;\nexport function of<T>(value: T): Observable<T>;\nexport function of<A extends readonly unknown[]>(...values: A): Observable<ValueFromArray<A>>;\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * <span class=\"informal\">Each argument becomes a `next` notification.</span>\n *\n * ![](of.png)\n *\n * Unlike {@link from}, it does not do any flattening and emits each argument in whole\n * as a separate `next` notification.\n *\n * ## Examples\n *\n * Emit the values `10, 20, 30`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of(10, 20, 30)\n *   .subscribe({\n *     next: value => console.log('next:', value),\n *     error: err => console.log('error:', err),\n *     complete: () => console.log('the end'),\n *   });\n *\n * // Outputs\n * // next: 10\n * // next: 20\n * // next: 30\n * // the end\n * ```\n *\n * Emit the array `[1, 2, 3]`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of([1, 2, 3])\n *   .subscribe({\n *     next: value => console.log('next:', value),\n *     error: err => console.log('error:', err),\n *     complete: () => console.log('the end'),\n *   });\n *\n * // Outputs\n * // next: [1, 2, 3]\n * // the end\n * ```\n *\n * @see {@link from}\n * @see {@link range}\n *\n * @param {...T} values A comma separated list of arguments you want to be emitted\n * @return {Observable} An Observable that emits the arguments\n * described above and then completes.\n */\nexport function of<T>(...args: Array<T | SchedulerLike>): Observable<T> {\n  const scheduler = popScheduler(args);\n  return from(args as T[], scheduler);\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\n\n/**\n * Delays the emission of items from the source Observable by a given timeout or\n * until a given Date.\n *\n * <span class=\"informal\">Time shifts each item by some specified amount of\n * milliseconds.</span>\n *\n * ![](delay.svg)\n *\n * If the delay argument is a Number, this operator time shifts the source\n * Observable by that amount of time expressed in milliseconds. The relative\n * time intervals between the values are preserved.\n *\n * If the delay argument is a Date, this operator time shifts the start of the\n * Observable execution until the given date occurs.\n *\n * ## Examples\n *\n * Delay each click by one second\n *\n * ```ts\n * import { fromEvent, delay } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * Delay all clicks until a future date happens\n *\n * ```ts\n * import { fromEvent, delay } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const date = new Date('March 15, 2050 12:00:00'); // in the future\n * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link delayWhen}\n * @see {@link throttle}\n * @see {@link throttleTime}\n * @see {@link debounce}\n * @see {@link debounceTime}\n * @see {@link sample}\n * @see {@link sampleTime}\n * @see {@link audit}\n * @see {@link auditTime}\n *\n * @param {number|Date} due The delay duration in milliseconds (a `number`) or\n * a `Date` until which the emission of the source items is delayed.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the time-shift for each item.\n * @return A function that returns an Observable that delays the emissions of\n * the source Observable by the specified timeout or Date.\n */\nexport function delay<T>(due: number | Date, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction<T> {\n  const duration = timer(due, scheduler);\n  return delayWhen(() => duration);\n}\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function OrderTesting() {\r\n  const { t } = useTranslation()\r\n  \r\n  return (<>{t(\"menu.orderTesting\")}</>)\r\n}","import * as React from \"react\";\r\nimport { Container } from \"react-bootstrap\";\r\n\r\nexport function SubHeader(props: React.PropsWithChildren<{}>) {\r\n  return (\r\n    <div className=\"sub-header\">\r\n      <Container>\r\n        {props.children}\r\n      </Container>\r\n    </div>\r\n  )\r\n}\r\n","import GraphReportDownloadInput from \"./models/GraphReportDownloadInput\"\r\nimport { GraphReportSection, TextReportSection, ResultReport } from \"amh-results\"\r\nimport TextReportDownloadInput from \"./models/TextReportDownloadInput\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getGraphReport = (id: number, showPhysicalFirst: boolean) => ObservableFromFetch<ResultReport<GraphReportSection>>(`Results/GraphReport?id=${id}&&showPhysicalFirst=${showPhysicalFirst}`)\r\n\r\nexport const getTextReport = (id: number, showPhysicalFirst: boolean) => ObservableFromFetch<ResultReport<TextReportSection>>(`Results/TextReport?id=${id}&&showPhysicalFirst=${showPhysicalFirst}`)\r\n\r\nexport const downloadTextReport = (params: TextReportDownloadInput) => ObservableFromFetch<string>(\"Results/DownloadTextReport\", JSON.stringify(params))\r\nexport const downloadGraphReport = (params: GraphReportDownloadInput) => ObservableFromFetch<string>(\"Results/DownloadGraphReport\", JSON.stringify(params))\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ArrowUpCircle = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8zm15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-7.5 3.5a.5.5 0 0 1-1 0V5.707L5.354 7.854a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 5.707V11.5z\"\n  }));\n});\nArrowUpCircle.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nArrowUpCircle.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default ArrowUpCircle;","import React, { useEffect, useState } from \"react\"\r\nimport { ArrowUpCircle } from \"react-bootstrap-icons\"\r\n\r\nexport default function MoveTopButton() {\r\n  const [show, setShow] = useState(false)\r\n\r\n  useEffect(() => {\r\n    const scroll = () => {\r\n      setShow(window.pageYOffset > 100)\r\n    }\r\n\r\n    window.addEventListener(\"scroll\", scroll)\r\n\r\n    return () => window.removeEventListener(\"scroll\", scroll)\r\n  }, [])\r\n\r\n  const moveTop = () => {\r\n    window.scrollTo({top: 0, behavior: \"smooth\"})\r\n  }\r\n\r\n  return <div className=\"move-top\">\r\n    <ArrowUpCircle size={24} onClick={moveTop} className={show ? \"\" : \"d-none\"}/>\r\n  </div>\r\n}","import * as React from \"react\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nexport default function Footer() {\r\n  const { t } = useTranslation()\r\n  \r\n  return (<p className=\"small\">{t(\"results.footer\")}</p>)\r\n}","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { GraphReportSection, TextReportSection } from \"amh-results\"\r\n\r\nexport interface RangeSectionProps {\r\n  section: GraphReportSection | TextReportSection\r\n}\r\n\r\nexport default function PhysicalSection(props: RangeSectionProps) {\r\n  const { name, details } = props.section\r\n\r\n  return (<>\r\n    <Row><h4>{name}</h4></Row>\r\n    <Row className=\"mb-3\">\r\n      {details.map((detail, index) =>\r\n        <Col xs={12} md={6} lg={4} key={index} className=\"mb-3\">\r\n          <span className=\"float-start fw-bold text-uppercase\">{detail.name}:</span>\r\n          <span className=\"float-end\">{detail.numericResultString} {detail.units}</span>\r\n        </Col>)}\r\n    </Row>\r\n  </>)\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Download = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z\"\n  }));\n});\nDownload.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nDownload.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default Download;","export default function FormatDate(date: Date | string | null | undefined, delimiter: string = \"/\"): string {\r\n  if (date) {\r\n    if (typeof date === \"string\") {\r\n      if (!isNaN(Date.parse(date))) {\r\n        date = new Date(date)\r\n      }\r\n    }\r\n    if (date instanceof Date) {\r\n      return [\r\n        (\"0\" + (date.getMonth() + 1)).slice(-2),\r\n        (\"0\" + (date.getDate())).slice(-2),\r\n        date.getFullYear(),\r\n      ].join(delimiter)\r\n    }\r\n  }\r\n  return \"\"\r\n}\r\n\r\nexport function FormatDateTime(date: Date | string | null | undefined, delimiter: string = \"/\"): string {\r\n  if (date) {\r\n    if (typeof date === \"string\") {\r\n      if (!isNaN(Date.parse(date))) {\r\n        date = new Date(date)\r\n      }\r\n    }\r\n    if (date instanceof Date) {\r\n      return [\r\n        (\"0\" + (date.getMonth() + 1)).slice(-2),\r\n        (\"0\" + (date.getDate())).slice(-2),\r\n        date.getFullYear(),\r\n      ].join(delimiter) + \" \" +\r\n        (\"0\" + date.getUTCHours()).slice(-2) + \":\" +\r\n        (\"0\" + date.getUTCMinutes()).slice(-2) + \":\" +\r\n        (\"0\" + date.getUTCSeconds()).slice(-2)\r\n    }\r\n  }\r\n  return \"\"\r\n}\r\n","import { Buffer } from \"buffer\"\r\n\r\nexport default function printPdf(data: string, fileName: string) {\r\n  const buff = Buffer.from(data, \"base64\")\r\n  const fileData = new Blob([buff], { type: \"application/pdf\" })\r\n  const fileURL = URL.createObjectURL(fileData)\r\n\r\n  const link = document.createElement(\"a\")\r\n  link.style.display = \"none\"\r\n  link.href = fileURL\r\n  link.setAttribute(\"download\", fileName)\r\n  if (typeof link.download === undefined) {\r\n    link.setAttribute(\"target\", \"_blank\")\r\n  }\r\n  document.body.appendChild(link)\r\n  link.click()\r\n\r\n  setTimeout(() => {\r\n    document.body.removeChild(link)\r\n    URL.revokeObjectURL(fileURL)\r\n  }, 200)\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\"\r\nimport { Button, Col, Row, Spinner } from \"react-bootstrap\"\r\nimport { Download } from \"react-bootstrap-icons\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport GraphReportDownloadInput from \"../../api/models/GraphReportDownloadInput\"\r\nimport TestEvent from \"../../api/models/TestEvent\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { downloadGraphReport } from \"../../api/Results\"\r\nimport FormatDate from \"../../formatters/FormatDate\"\r\nimport printPdf from \"../../utils/PrintPdf\"\r\nimport ApexCharts from \"apexcharts\"\r\nimport { GraphReportDetail, GraphReportSection, GraphReportImage } from \"amh-results\"\r\nimport { Subscription } from \"rxjs\"\r\n\r\nconst downloadTranslations = [\"result\", \"laboratoryReport\", \"labSlipId\", \"sid\", \"name\", \"gender\", \"collected\", \"reportedDate\"]\r\n\r\nexport interface RangeReportDownloadProps {\r\n  testEvent: TestEvent\r\n  showPhysicalFirst: boolean\r\n  sections?: GraphReportSection[]\r\n}\r\n\r\nexport default function RangeReportDownload({ testEvent, showPhysicalFirst, sections }: RangeReportDownloadProps) {\r\n  const { t } = useTranslation()\r\n  const [downloading, setDownloading] = useState<boolean>(false)\r\n  const subsriptionRef = useRef<Subscription | undefined>(undefined)\r\n  const downloadContainer = useRef<HTMLDivElement>(null!)\r\n\r\n  useEffect(() => {\r\n    return () => subsriptionRef.current?.unsubscribe()\r\n  }, [subsriptionRef])\r\n\r\n  const generateImages = async () => {\r\n    const parent = downloadContainer.current\r\n\r\n    const details = sections?.reduce((result: GraphReportDetail[], current: GraphReportSection) => {\r\n      if (!current.physical) {\r\n        result.push(...current.details)\r\n      }\r\n      return result\r\n    }, []) || []\r\n\r\n    const images: GraphReportImage[] = []\r\n    for (let index = 0; index < details.length; index++) {\r\n      const testCode = details[index].testCode\r\n      const chart = ApexCharts.getChartByID(testCode)\r\n      if (chart) {\r\n        const opts = (chart as any).opts as ApexCharts.ApexOptions\r\n        const chartOpts = { ...opts.chart, animations: { enabled: false } }\r\n        const doc = document.createElement(\"div\")\r\n\r\n        parent.appendChild(doc)\r\n        const ac = new ApexCharts(doc, { ...opts, chart: chartOpts })\r\n        await ac.render()\r\n\r\n        var image = await ac.dataURI({ scale: 2 }) as { imgURI: string }\r\n        if (image?.imgURI) {\r\n          images.push({ testCode: testCode, dataUrl: image.imgURI })\r\n        }\r\n\r\n        parent.removeChild(doc)\r\n      }\r\n    }\r\n\r\n    return images\r\n  }\r\n\r\n  const clickDownload = async () => {\r\n    if (downloading) {\r\n      return\r\n    }\r\n    setDownloading(true)\r\n\r\n    const images = await generateImages();\r\n    var params: GraphReportDownloadInput = {\r\n      id: testEvent.testEventId, showPhysicalFirst, images,\r\n      translations: downloadTranslations.map((key) => ({ key: `results.${key}`, value: t(`results.${key}`) }))\r\n    }\r\n\r\n    if (subsriptionRef.current) {\r\n      subsriptionRef.current.unsubscribe()\r\n    }\r\n    subsriptionRef.current = downloadGraphReport(params).subscribe({\r\n      next: (result: string) => {\r\n        setDownloading(false)\r\n        printPdf(result, `GraphLabTestResults-${FormatDate(testEvent.dateOfRegistration, '-')}`)\r\n      },\r\n      error: (e: APIError) => {\r\n        setDownloading(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  return <Row className=\"justify-content-end\">\r\n    <Col className=\"col-auto\">\r\n      {downloading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      <Button variant=\"\" title={t(\"results.download\")} onClick={clickDownload}>\r\n        <Download size={24} className=\"mb-1\" />\r\n      </Button>\r\n      <div ref={downloadContainer} className=\"download-container\"></div>\r\n    </Col>\r\n  </Row>\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar InfoCircle = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\"\n  }));\n});\nInfoCircle.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nInfoCircle.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default InfoCircle;","import React from \"react\"\r\n\r\ninterface DescriptionFormatterProps {\r\n  description: string\r\n}\r\n\r\nexport default function DescriptionFormatter(props: DescriptionFormatterProps) {\r\n  const lines = props.description\r\n    .split(/\\r\\n|\\n\\r|\\n|\\r/)\r\n    .map((line, index) => <div key={index} className=\"mb-3\">{line}</div>)\r\n\r\n  return <>\r\n    {lines}\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Modal } from \"react-bootstrap\"\r\nimport DescriptionFormatter from \"./DescriptionFormatter\"\r\n\r\nexport interface ReportInfoProps {\r\n  show: boolean\r\n  title: string\r\n  description: string\r\n  handleClose: () => void\r\n}\r\n\r\nexport default function ReportInfo(props: ReportInfoProps) {\r\n  return (\r\n    <Modal\r\n      show={props.show}\r\n      onHide={props.handleClose}\r\n      backdrop=\"static\"\r\n      centered >\r\n      <Modal.Header closeButton>\r\n        <Modal.Title>{props.title}</Modal.Title>\r\n      </Modal.Header>\r\n      <Modal.Body>\r\n        <DescriptionFormatter description={props.description} />\r\n      </Modal.Body>\r\n    </Modal>)\r\n}\r\n","import React, { useState } from \"react\"\r\nimport { Button } from \"react-bootstrap\"\r\nimport { InfoCircle } from \"react-bootstrap-icons\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport ReportInfo from \"./ReportInfo\"\r\n\r\nexport interface ShowMoreGroupProps {\r\n  title: string\r\n  description: string\r\n}\r\n\r\nexport default function ShowMoreGroup(props: ShowMoreGroupProps) {\r\n  const { t } = useTranslation()\r\n  const [showMoreModal, setShowMoreModal] = useState(false)\r\n  \r\n  return (<>\r\n    <Button variant=\"secondary\" className=\"m-1\" onClick={() => setShowMoreModal(true)}><InfoCircle /> {t(\"results.clickForMore\")}</Button>\r\n    <ReportInfo\r\n      show={showMoreModal}\r\n      title={t(\"results.moreFor\", { name: props.title })}\r\n      description={props.description}\r\n      handleClose={() => setShowMoreModal(false)} />\r\n  </>)\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar GraphUpArrow = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M0 0h1v15h15v1H0V0Zm10 3.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V4.9l-3.613 4.417a.5.5 0 0 1-.74.037L7.06 6.767l-3.656 5.027a.5.5 0 0 1-.808-.588l4-5.5a.5.5 0 0 1 .758-.06l2.609 2.61L13.445 4H10.5a.5.5 0 0 1-.5-.5Z\"\n  }));\n});\nGraphUpArrow.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nGraphUpArrow.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default GraphUpArrow;","import React, { useState } from \"react\"\r\nimport { Button } from \"react-bootstrap\"\r\nimport { GraphUpArrow } from \"react-bootstrap-icons\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport ReportInfo from \"./ReportInfo\"\r\n\r\nexport interface HowToImproveProps {\r\n  title: string\r\n  description: string\r\n}\r\n\r\nexport default function HowToImproveGroup(props: HowToImproveProps) {\r\n  const { t } = useTranslation()\r\n  const [showImproveModal, setShowImproveModal] = useState(false)\r\n\r\n  return (<>\r\n    <Button variant=\"secondary\" className=\"m-1\" onClick={() => setShowImproveModal(true)}><GraphUpArrow /> {t(\"results.howToImprove\")}</Button>\r\n    <ReportInfo\r\n      show={showImproveModal}\r\n      title={t(\"results.improve\", { name: props.title })}\r\n      description={props.description}\r\n      handleClose={() => setShowImproveModal(false)} />\r\n  </>)\r\n}\r\n","import React, { useCallback } from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\nimport ShowMoreGroup from \"./ShowMoreGroup\"\r\nimport HowToImproveGroup from \"./HowToImproveGroup\"\r\nimport { RangeChart, GraphReportDetail } from \"amh-results\"\r\n\r\ninterface RangeGraphProps {\r\n  detail: GraphReportDetail\r\n}\r\n\r\nexport default function RangeGraph(props: RangeGraphProps) {\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const { detail } = props\r\n\r\n  const chartTranslation = useCallback((key: string) => translationRef.current(key), [translationRef])\r\n\r\n  return (\r\n    <>\r\n      <Row>\r\n        <Col xs={12} md={6} className=\"fw-bold text-uppercase mb-2\">{detail.name}</Col>\r\n        <Col xs={12} md={6} className=\"text-xs-left text-md-end\">\r\n          {detail.longDescription && <ShowMoreGroup title={detail.name} description={detail.longDescription} />}\r\n          {detail.howToImprove && <HowToImproveGroup title={detail.name} description={detail.howToImprove} />}\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col xs={12} md={6}><span className=\"mx-3\">{`${t(\"results.result\")}: ${props.detail.numericResultString || props.detail.numericResult?.toString() || \"\"} ${props.detail.units || \"\"}`}</span></Col>\r\n      </Row>\r\n      {props.detail.displayGraph && <Row>\r\n        <Col><RangeChart range={detail.range} numericResult={detail.numericResult} translation={chartTranslation} /></Col>\r\n      </Row>}\r\n    </>\r\n  )\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { GraphReportSection } from \"amh-results\"\r\nimport RangeGraph from \"./RangeGraph\"\r\n\r\nexport interface RangeSectionProps {\r\n  section: GraphReportSection\r\n}\r\n\r\nexport default function RangeSection(props: RangeSectionProps) {\r\n  const { name, details } = props.section\r\n\r\n  return (<>\r\n    <Row><h4>{name}</h4></Row>\r\n    <Row className=\"mb-3\">\r\n      {details.map((detail, index) =>\r\n        <Col xs={12} lg={8} key={index} className=\"mb-3\">\r\n          <RangeGraph detail={detail} />\r\n        </Col>)}\r\n    </Row>\r\n  </>)\r\n}\r\n","import React from \"react\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\ninterface StatusProps {\r\n  hasResults: boolean\r\n  labReceived?: string\r\n}\r\n\r\nexport default function Status(props: StatusProps) {\r\n  const { t } = useTranslation()\r\n\r\n  if (props.hasResults) {\r\n    return <></>\r\n  }\r\n\r\n  return <h5 className=\"mb-3\">{props.labReceived ? t(\"results.sampleStatus.testing\") : t(\"results.sampleStatus.transit\")}</h5>\r\n}\r\n","import React, { useEffect, useReducer } from \"react\"\r\nimport { Container, Spinner } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { GraphReportSection, ResultReport } from \"amh-results\"\r\nimport TestEvent from \"../../api/models/TestEvent\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { getGraphReport } from \"../../api/Results\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\"\r\nimport MoveTopButton from \"../Core/MoveTopButton\"\r\nimport { DatumLoader } from \"../DataLoader\"\r\nimport DonorInfo from \"./DonorInfo\"\r\nimport Footer from \"./Footer\"\r\nimport PhysicalSection from \"./PhysicalSection\"\r\nimport RangeReportDownload from \"./RangeReportDownload\"\r\nimport RangeSection from \"./RangeSection\"\r\nimport Status from \"./Status\"\r\n\r\nexport interface RangeReportProps {\r\n  testEvent: TestEvent\r\n}\r\n\r\nexport default function RangeReport(props: RangeReportProps) {\r\n  const { t } = useTranslation()\r\n  const authStore = useAuthStore()\r\n  const showPhysicalFirst = authStore.domain?.showPhysicalFirst || false\r\n  const [sectionsState, setSectionsState] = useReducer((state: DatumLoader<ResultReport<GraphReportSection>>, newState: Partial<DatumLoader<ResultReport<GraphReportSection>>>) => ({ ...state, ...newState }), { loading: false, loaded: false, data: { sections: [] } })\r\n\r\n  useEffect(() => {\r\n    setSectionsState({ loading: true })\r\n\r\n    const subscription = getGraphReport(props.testEvent.testEventId, showPhysicalFirst).subscribe({\r\n      next: (result: ResultReport<GraphReportSection>) => {\r\n        setSectionsState({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setSectionsState({ loading: false })\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [props.testEvent.testEventId, showPhysicalFirst, t])\r\n\r\n  const sections = sectionsState.data?.sections?.map((section) => {\r\n    return section.physical ?\r\n      <PhysicalSection key={section.name || \"\"} section={section} /> :\r\n      <RangeSection key={section.name || \"\"} section={section} />\r\n  })\r\n\r\n  const hasResults = (sectionsState.data?.sections?.length ?? 0) > 0\r\n\r\n  return (<>\r\n    <Container>\r\n      <DonorInfo />\r\n      {sectionsState.loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      {!sectionsState.loading && <Status hasResults={hasResults} labReceived={sectionsState.data?.labReceived} />}\r\n      {!sectionsState.loading && hasResults && <RangeReportDownload testEvent={props.testEvent} showPhysicalFirst={showPhysicalFirst} sections={sectionsState.data?.sections} />}\r\n      {!sectionsState.loading && sections}\r\n      <MoveTopButton />\r\n      <Footer />\r\n    </Container>\r\n  </>)\r\n}\r\n","import TestEvent from \"./models/TestEvent\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getTestEvents = () => ObservableFromFetch<TestEvent[]>(`Results/TestEvents`)\r\nexport const setViewed = (testEventId: number) => ObservableFromFetch<void>('Results/Viewed', testEventId.toString())\r\n","import { observer } from \"mobx-react-lite\";\r\nimport * as React from \"react\";\r\nimport { Dispatch, SetStateAction, useEffect, useState } from \"react\";\r\nimport { Dropdown, Button, Spinner } from \"react-bootstrap\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport TestEvent from \"../../api/models/TestEvent\";\r\nimport { APIError } from \"../../api/ObservableFromFetch\";\r\nimport { getTestEvents } from \"../../api/TestEvent\";\r\nimport FormatDate from \"../../formatters/FormatDate\";\r\nimport { useAuthStore } from \"../../stores/StoreProvider\";\r\nimport DataLoader from \"../DataLoader\";\r\n\r\nconst InitialTestEventsNumber = 3\r\n\r\nexport enum Mode {\r\n  Interactive,\r\n  Interpretive,\r\n  History,\r\n  Clinical\r\n}\r\n\r\ninterface ReportSelectionProps {\r\n  mode: Mode\r\n  testEvent?: TestEvent\r\n  onChangeReportMode: Dispatch<SetStateAction<Mode>>\r\n  onChangeTestEvent: Dispatch<SetStateAction<TestEvent | undefined>>\r\n}\r\n\r\nexport function ReportSelection(props: ReportSelectionProps) {\r\n  const { t } = useTranslation()\r\n  const authStore = useAuthStore()\r\n  const useInterpretiveReport = authStore.domain?.useInterpretiveReport || false\r\n  const useHistoricalReport = authStore.domain?.useHistoricalReport || false\r\n  const [state, setState] = React.useReducer((state: DataLoader<TestEvent>, newState: Partial<DataLoader<TestEvent>>) => ({ ...state, ...newState }), { loading: false, loaded: false, data: [] })\r\n  useEffect(() => {\r\n    setState({ loading: true })\r\n    const subscription = getTestEvents().subscribe({\r\n      next: (result: TestEvent[]) => {\r\n        setState({ loading: false, loaded: true, data: result })\r\n        props.onChangeTestEvent(result[0])\r\n      },\r\n      error: (e: APIError) => {\r\n        setState({ loading: false })\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [])\r\n\r\n  const [menuSize, setMenuSize] = useState(InitialTestEventsNumber)\r\n  const menuItems = state.data.slice(0, menuSize)\r\n  const maxMenuSize = state.data.length\r\n  const showMore: boolean = maxMenuSize > menuSize\r\n\r\n  const clickMore = (e: React.MouseEvent<HTMLElement>) => {\r\n    e.stopPropagation()\r\n    setMenuSize(maxMenuSize)\r\n  }\r\n\r\n  const modeTitle = (mode: Mode) => {\r\n    switch (mode) {\r\n      case Mode.Interactive:\r\n        return t(\"report.graphical\")\r\n      case Mode.Interpretive:\r\n        return t(\"report.text\")\r\n      case Mode.History:\r\n        return t(\"report.history\")\r\n      default:\r\n        return \"\"\r\n    }\r\n  }\r\n\r\n  const onChangeReportMode = (mode: Mode) => () => props.onChangeReportMode(mode)\r\n  const displayHistoricalReport = useHistoricalReport && state.loaded && maxMenuSize > 1\r\n\r\n  return (\r\n    <div className=\"d-flex align-self-center\">\r\n      <div className=\"d-none d-sm-block\">\r\n        <Button variant={props.mode === Mode.Interactive ? \"light\" : \"primary\"} size=\"sm\" className=\"my-2\" onClick={onChangeReportMode(Mode.Interactive)}>{modeTitle(Mode.Interactive)}</Button>\r\n        {useInterpretiveReport && <Button variant={props.mode === Mode.Interpretive ? \"light\" : \"primary\"} size=\"sm\" className=\"m-2\" onClick={onChangeReportMode(Mode.Interpretive)}>{modeTitle(Mode.Interpretive)}</Button>}\r\n        {displayHistoricalReport && <Button variant={props.mode === Mode.History ? \"light\" : \"primary\"} size=\"sm\" className=\"my-2\" onClick={onChangeReportMode(Mode.History)}>{modeTitle(Mode.History)}</Button>}\r\n      </div>\r\n      <Dropdown className=\"d-block d-sm-none align-self-center my-2\">\r\n        <Dropdown.Toggle size=\"sm\">{modeTitle(props.mode)}</Dropdown.Toggle>\r\n        <Dropdown.Menu variant=\"dark\">\r\n          <Dropdown.Item onClick={onChangeReportMode(Mode.Interactive)}>{modeTitle(Mode.Interactive)}</Dropdown.Item>\r\n          {useInterpretiveReport && <Dropdown.Item onClick={onChangeReportMode(Mode.Interpretive)}>{modeTitle(Mode.Interpretive)}</Dropdown.Item>}\r\n          {displayHistoricalReport && <Dropdown.Item onClick={onChangeReportMode(Mode.History)}>{modeTitle(Mode.History)}</Dropdown.Item>}\r\n        </Dropdown.Menu>\r\n      </Dropdown>\r\n      {props.mode !== Mode.History &&\r\n        <Dropdown className=\"ms-auto d-flex align-self-center justify-content-center flex-wrap\">\r\n          <Dropdown.Header className=\"px-0\">{t(\"report.reportDate\")}</Dropdown.Header>\r\n          <Dropdown.Toggle variant=\"info\">{props.testEvent ? FormatDate(props.testEvent.dateOfRegistration) : <Spinner animation=\"border\" size=\"sm\" />}</Dropdown.Toggle>\r\n          <Dropdown.Menu variant=\"info\">\r\n            {menuItems.map(event => <Dropdown.Item key={event.testEventId} onClick={_ => props.onChangeTestEvent(event)}>{FormatDate(event.dateOfRegistration)}</Dropdown.Item>)}\r\n            {showMore && <Dropdown.Item onClick={clickMore}>{t(\"more\")}</Dropdown.Item>}\r\n          </Dropdown.Menu>\r\n        </Dropdown>}\r\n    </div>\r\n  )\r\n}\r\n\r\nexport default observer(ReportSelection)\r\n","export enum TestResultId {\r\n  Pos = 1,\r\n  Neg = 2,\r\n  QuantityNotSufficient = 8,\r\n  Positive = 27,\r\n  Negative = 28\r\n}","import React from \"react\"\r\nimport { TestResultId } from \"../../api/models/TestResultId\"\r\n\r\nexport interface CovidSectionBodyProps {\r\n  testResultId: number\r\n}\r\n\r\nexport default function CovidSectionBody(props: CovidSectionBodyProps) {\r\n\r\n  const negativeBody = () => {\r\n    return <>\r\n      <p>\r\n        This test is intended for use as an aid in identifying individuals with an antibody response to SARS-CoV-2, indicating recent or prior infection. This sample did not contain detectable SARS-CoV-2 antibodies. This negative result does not rule out SARS-CoV-2 infection. Correlation with other clinical and laboratory findings is recommended. Serologic results should not be used as the sole basis to diagnose or exclude recent SARS-CoV-2 infection.\r\n      </p>\r\n      <p>\r\n        This test targets antibodies that are directed against the region of the novel coronavirus known as the spike protein. Many vaccines aim to induce an antibody response to the SARS-CoV-2 spike protein. Vaccination could result in a positive antibody test result. Please consult with your healthcare provider.\r\n      </p>\r\n      <p>\r\n        This test has been authorized by the FDA under an Emergency Use Authorization (EUA) for use by authorized laboratories. This test has been authorized only for detecting the presence of antibodies against SARS-CoV-2, not for any other viruses or pathogens. This test is only authorized for the duration of the declaration that circumstances exist justifying the authorization of emergency use of in vitro diagnostics for detection and/or diagnosis of COVID-19 under Section 564(b)(1) of the Act, 21 U.S.C. § 360bbb-3(b)(1), unless the authorization is terminated or revoked sooner. This test has not been FDA cleared or approved.\r\n      </p>\r\n      <p className=\"fst-italic fw-bold mb-0\">Still Have Questions?</p>\r\n      <p className=\"mb-0\">Contact the Cynergy Care coordination team to schedule a session with a physician to discuss your results.</p>\r\n      <p className=\"mb-0\">Monday - Friday / 8:00am – 6:00pm CST, Phone: (844) 730-8820</p>\r\n      <p className=\"mb-0\">Ordering Physician: Dr. Murray Lappe</p>\r\n    </>\r\n  }\r\n\r\n  const positiveBody = () => {\r\n    return <>\r\n      <p>\r\n        This test is intended for use as an aid in identifying individuals with an antibody response to SARS-CoV-2, indicating recent or prior infection. Your results suggest recent or prior infection with SARS-CoV-2. Correlation with other clinical and laboratory findings is recommended. Serologic results should not be used as the sole basis to diagnose or exclude recent SARS-CoV-2 infection.\r\n      </p>\r\n      <p>\r\n        This test targets antibodies that are directed against the region of the novel coronavirus known as the spike protein. Many vaccines aim to induce an antibody response to the SARS-CoV-2 spike protein.  Vaccination could result in a positive antibody test result. Please consult with your healthcare provider.\r\n      </p>\r\n      <p>\r\n        This test should not be used to detect evidence of an active SARS-CoV-2 infection. If active infection is suspected, contact your physician for medical follow up.\r\n      </p>\r\n      <p>\r\n        This test has not been FDA cleared or approved. This test has been authorized by the FDA under an Emergency Use Authorization (EUA) for use by authorized laboratories. This test has been authorized only for detecting the presence of antibodies against SARS-CoV-2, not for any other viruses or pathogens. This test is only authorized for the duration of the declaration that circumstances exist justifying the authorization of emergency use of in vitro diagnostics for detection and/or diagnosis of COVID-19 under Section 564(b)(1) of the Act, 21 U.S.C. § 360bbb-3(b)(1), unless the authorization is terminated or revoked sooner.\r\n      </p>\r\n      <p className=\"fst-italic fw-bold mb-0\">Still Have Questions?</p>\r\n      <p className=\"mb-0\">Contact the Cynergy Care coordination team to schedule a session with a physician to discuss your results.</p>\r\n      <p className=\"mb-0\">Monday - Friday / 8:00am – 6:00pm CST, Phone: (844) 730-8820</p>\r\n      <p className=\"mb-0\">Ordering Physician: Dr. Murray Lappe</p>\r\n    </>\r\n  }\r\n\r\n  const quantityNotSufficientBody = () => {\r\n    return <>\r\n      <p>CRL was unable to obtain a Covid-19 Antibody result on your specimen because there was not enough blood to perform the test.</p>\r\n      <p>If a credit card was used to order the testing, CRL will issue a full refund to that card.</p>\r\n      <p>We apologize for any inconvenience.</p>\r\n    </>\r\n  }\r\n\r\n  return <>\r\n    {(() => {\r\n      switch (props.testResultId) {\r\n        case TestResultId.Pos:\r\n        case TestResultId.Positive:\r\n          return positiveBody()\r\n        case TestResultId.Neg:\r\n        case TestResultId.Negative:\r\n          return negativeBody()\r\n        case TestResultId.QuantityNotSufficient:\r\n          return quantityNotSufficientBody()\r\n        default:\r\n          return undefined\r\n      }\r\n    })()}\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { TextReportSection } from \"amh-results\"\r\nimport CovidSectionBody from \"./CovidSectionBody\"\r\n\r\nexport interface CovidSectionProps {\r\n  section: TextReportSection\r\n}\r\n\r\nexport default function CovidSection(props: CovidSectionProps) {\r\n  const { t } = useTranslation()\r\n  const { name, details } = props.section\r\n  const detail = details[0]\r\n\r\n  const rowClass = \"mx-0 gx-2 gx-md-4 text-break\"\r\n  return (<>\r\n    <Row><h4>{name}</h4></Row>\r\n    <Row className=\"d-none d-md-flex bg-dark text-light mx-0\">\r\n      <Col xs={5}>{t(\"results.test\")}</Col>\r\n      <Col xs={4}>{t(\"results.result\")}</Col>\r\n      <Col xs={3}>{t(\"results.expectedRange\")}</Col>\r\n    </Row>\r\n    <Row key=\"covid_row\" className={rowClass}>\r\n      <Col xs={4} className=\"d-flex d-md-none fw-bold\">{t(\"results.test\")}</Col>\r\n      <Col xs={8} md={5}>COVID-19 Antibody Testing<br />({detail.name})</Col>\r\n      <Col xs={4} className=\"d-flex d-md-none fw-bold\">{t(\"results.result\")}</Col>\r\n      <Col xs={8} md={4}>{detail.numericResultString} {detail.units}</Col>\r\n      <Col xs={4} className=\"d-flex d-md-none fw-bold\">{t(\"results.expectedRange\")}</Col>\r\n      <Col xs={8} md={3}>{detail.expectedRange}</Col>\r\n    </Row>\r\n    <Row className=\"my-3\">\r\n      <Col><CovidSectionBody testResultId={detail.testResultId} /></Col>\r\n    </Row>\r\n  </>)\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { TextReportSection } from \"amh-results\"\r\nimport ShowMoreGroup from \"./ShowMoreGroup\"\r\n\r\nexport interface TextSectionProps {\r\n  section: TextReportSection\r\n}\r\n\r\nexport default function TextSection(props: TextSectionProps) {\r\n  const { t } = useTranslation()\r\n  const { name, details, suppressed } = props.section\r\n\r\n  const rowClass = \"gx-2 gx-md-3 text-break\"\r\n  return (<>\r\n    <Row><h4>{name}</h4></Row>\r\n    <Row className=\"d-none d-md-flex bg-dark text-light text-uppercase gx-md-3\">\r\n      {suppressed ?\r\n        <>\r\n          <Col xs={3}>{t(\"results.test\")}</Col>\r\n          <Col xs={3}>{t(\"results.yourResult\")}</Col>\r\n          <Col xs={3}>{t(\"results.status\")}</Col>\r\n          <Col xs={3}>{t(\"results.expectedRange\")}</Col>\r\n        </> :\r\n        <>\r\n          <Col xs={3}>{t(\"results.test\")}</Col>\r\n          <Col xs={4} className=\"px-0\">\r\n            <Row className=\"m-0 gx-2 gx-md-3\">\r\n              <Col xs={4}>{t(\"results.yourResult\")}</Col>\r\n              <Col xs={3}>{t(\"results.status\")}</Col>\r\n              <Col xs={5}>{t(\"results.expectedRange\")}</Col>\r\n            </Row>\r\n          </Col>\r\n          <Col xs={5}>{t(\"results.testGuide\")}</Col>\r\n        </>}\r\n    </Row>\r\n    {details.map((detail, index) => (\r\n      <Row key={index} className={index & 1 ? `bg-info ${rowClass}` : rowClass}>\r\n        {suppressed ?\r\n          <>\r\n            <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.test\")}</Col>\r\n            <Col xs={8} md={3}>{detail.name}</Col>\r\n            <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.yourResult\")}</Col>\r\n            <Col xs={8} md={3}>{detail.numericResultString} {detail.units}</Col>\r\n            <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.status\")}</Col>\r\n            <Col xs={8} md={3}>{detail.rangeName}</Col>\r\n            <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.expectedRange\")}</Col>\r\n            <Col xs={8} md={3}>{detail.expectedRange}</Col>\r\n          </> :\r\n          <>\r\n            <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.test\")}</Col>\r\n            <Col xs={8} md={3}>{detail.name}</Col>\r\n            <Col xs={12} md={4} className=\"px-0\">\r\n              <Row className=\"m-0 gx-2 gx-md-3\">\r\n                <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.yourResult\")}</Col>\r\n                <Col xs={8} md={4}>{detail.numericResultString} {detail.units}</Col>\r\n                <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.status\")}</Col>\r\n                <Col xs={8} md={3}>{detail.rangeName}</Col>\r\n                <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.expectedRange\")}</Col>\r\n                <Col xs={8} md={5}>{detail.expectedRange}</Col>\r\n              </Row>\r\n            </Col>\r\n            <Col xs={4} className=\"d-flex d-md-none fw-bold text-uppercase\">{t(\"results.testGuide\")}</Col>\r\n            <Col xs={8} md={5}>\r\n              {detail.shortDescription}\r\n              {detail.longDescription && <div><ShowMoreGroup title={detail.name} description={detail.longDescription} /></div>}\r\n            </Col>\r\n          </>}\r\n      </Row>))}\r\n    <Row className=\"mb-3\"></Row>\r\n  </>)\r\n}\r\n","import React, { useEffect, useMemo, useReducer, useState } from \"react\"\r\nimport { Button, Col, Container, Row, Spinner } from \"react-bootstrap\"\r\nimport { Download } from \"react-bootstrap-icons\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { ResultReport } from \"amh-results\"\r\nimport TestEvent from \"../../api/models/TestEvent\"\r\nimport { TextReportSection } from \"amh-results\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { downloadTextReport, getTextReport } from \"../../api/Results\"\r\nimport FormatDate from \"../../formatters/FormatDate\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\"\r\nimport printPdf from \"../../utils/PrintPdf\"\r\nimport MoveTopButton from \"../Core/MoveTopButton\"\r\nimport { DatumLoader } from \"../DataLoader\"\r\nimport CovidSection from \"./CovidSection\"\r\nimport DonorInfo from \"./DonorInfo\"\r\nimport Footer from \"./Footer\"\r\nimport PhysicalSection from \"./PhysicalSection\"\r\nimport Status from \"./Status\"\r\nimport TextSection from \"./TextSection\"\r\n\r\nexport interface TextReportProps {\r\n  testEvent: TestEvent\r\n}\r\n\r\nconst CovidTestCode = 'U943'\r\n\r\nconst downloadTranslations = [\"yourResult\", \"expectedRange\", \"testGuide\", \"test\", \"result\", \"status\", \"low\", \"borderlineLow\", \"normal\", \"borderlineHigh\", \"high\",\r\n  \"labSlipId\", \"name\", \"gender\", \"collected\", \"reported\", \"reportedDate\", \"footer\", \"laboratoryReport\", \"legend\", \"sid\"]\r\n\r\nexport default function TextReport(props: TextReportProps) {\r\n  const { t } = useTranslation()\r\n  const testEventId = props.testEvent.testEventId\r\n  const authStore = useAuthStore()\r\n  const showPhysicalFirst = authStore.domain?.showPhysicalFirst || false\r\n  const [sectionsState, setSectionsState] = useReducer((state: DatumLoader<ResultReport<TextReportSection>>, newState: Partial<DatumLoader<ResultReport<TextReportSection>>>) => ({ ...state, ...newState }), { loading: false, loaded: false, data: { sections: [] } })\r\n  const [downloading, setDownloading] = useState<boolean>(false)\r\n\r\n  useEffect(() => {\r\n    setSectionsState({ loading: true })\r\n\r\n    const subscription = getTextReport(testEventId, showPhysicalFirst).subscribe({\r\n      next: (result: ResultReport<TextReportSection>) => {\r\n        setSectionsState({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setSectionsState({ loading: false })\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [testEventId, showPhysicalFirst, t])\r\n\r\n  useEffect(() => {\r\n    if (!downloading) {\r\n      return\r\n    }\r\n\r\n    var params = {\r\n      id: testEventId, showPhysicalFirst,\r\n      translations: downloadTranslations.map((key) => ({ key: `results.${key}`, value: t(`results.${key}`) }))\r\n    }\r\n    const subscription = downloadTextReport(params).subscribe({\r\n      next: (result: string) => {\r\n        printPdf(result, `LabTestResults-${FormatDate(props.testEvent.dateOfRegistration, '-')}`)\r\n        setDownloading(false)\r\n      },\r\n      error: (e: APIError) => {\r\n        setDownloading(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [downloading, testEventId, props.testEvent.dateOfRegistration, showPhysicalFirst, t])\r\n\r\n  const clickDownload = () => {\r\n    if (!downloading) {\r\n      setDownloading(true)\r\n    }\r\n  }\r\n\r\n  const covidReport = useMemo(() => {\r\n    var sections = sectionsState.data?.sections || []\r\n    return sections.length === 1\r\n      && sections[0].details.length === 1\r\n      && sections[0].details[0].testCode === CovidTestCode\r\n  }, [sectionsState])\r\n\r\n  const hasResults = (sectionsState.data?.sections?.length ?? 0) > 0\r\n\r\n  return (\r\n    <Container>\r\n      <DonorInfo />\r\n      {sectionsState.loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      {!sectionsState.loading && <Status hasResults={hasResults} labReceived={sectionsState.data?.labReceived} />}\r\n      {!sectionsState.loading && hasResults && <>\r\n        <Row className=\"justify-content-end\">\r\n          <Col className=\"col-auto\">\r\n            {downloading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n            <Button variant=\"\" title={t(\"results.download\")} onClick={clickDownload}>\r\n              <Download size={24} className=\"mb-1\" />\r\n            </Button>\r\n          </Col>\r\n        </Row>\r\n        {covidReport && <CovidSection section={sectionsState.data?.sections[0]!} />}\r\n        {!covidReport && sectionsState.data?.sections?.map(section => (section.physical ?\r\n          <PhysicalSection key={section.name || \"\"} section={section} /> :\r\n          <TextSection key={section.name || \"\"} section={section} />))\r\n        }\r\n      </>}\r\n      <MoveTopButton />\r\n      <Footer />\r\n    </Container>)\r\n}\r\n","import React, { useMemo } from 'react'\r\nimport ReactApexChart from 'react-apexcharts'\r\nimport { ApexOptions } from \"apexcharts\"\r\nimport TestHistory from '../../api/models/TestHistory'\r\nimport { mapSeries, rangeColor, resultRange, RangeColor, defaultFontFamily, defaultFontSize } from 'amh-results'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface HistoryChartProps {\r\n  history: TestHistory\r\n}\r\n\r\nexport default function HistoryChart(props: HistoryChartProps) {\r\n  const { t } = useTranslation()\r\n\r\n  const series = useMemo(() => {\r\n    let prev = \"\"\r\n    let suffix = \"\"\r\n    const data = props.history.details.map(detail => {\r\n      if (prev === detail.dateOfRegistration) {\r\n        suffix = suffix + \" \"\r\n      } else {\r\n        prev = detail.dateOfRegistration\r\n        suffix = \"\"\r\n      }\r\n      return ({ x: `${detail.dateOfRegistration}${suffix}`, y: detail.numericResult })\r\n    })\r\n\r\n    return [{\r\n      data: [\r\n        { x: \"\", y: null }, ...data, { x: \" \", y: null }]\r\n    }]\r\n  }, [props.history.details])\r\n\r\n  const mappedRange = useMemo(() => mapSeries(props.history.range, t), [props.history.range, t])\r\n\r\n  const options: ApexOptions = useMemo((): ApexOptions => ({\r\n    chart: {\r\n      toolbar: {\r\n        show: false,\r\n      },\r\n      selection: {\r\n        enabled: false\r\n      },\r\n      zoom: {\r\n        enabled: false\r\n      },\r\n      fontFamily: defaultFontFamily,\r\n      background: RangeColor.lightBackground\r\n    },\r\n\r\n    states: {\r\n      hover: {\r\n        filter: {\r\n          type: \"none\"\r\n        }\r\n      },\r\n      active: {\r\n        filter: {\r\n          type: \"none\"\r\n        }\r\n      },\r\n    },\r\n    fill: {\r\n      opacity: 1\r\n    },\r\n    tooltip: {\r\n      enabled: true,\r\n      custom: ({ series, dataPointIndex }) => {\r\n        const numericResult = series[0][dataPointIndex]\r\n        if (numericResult === null) {\r\n          return \"\"\r\n        }\r\n        const range = resultRange(mappedRange, numericResult || 0)\r\n        if (!range) {\r\n          return \"\"\r\n        }\r\n        const borders = range.fixedRange\r\n        const name = range.name\r\n        const from = borders[0]\r\n        const to = borders[1]\r\n        return `<div class=\"apexcharts-tooltip-rangebar\"><div><span class=\"series-name series-name-${range.name.toLowerCase()}\">${name} (${from} - ${to})</span></div></div>`;\r\n      },\r\n      marker: {\r\n        show: false\r\n      }\r\n    },\r\n    colors: [RangeColor.line],\r\n    dataLabels: {\r\n      enabled: true,\r\n      background: {\r\n        opacity: 1,\r\n        dropShadow: {\r\n          enabled: true\r\n        }\r\n      },\r\n      style: {\r\n        fontSize: \"16\",\r\n        colors: [({ series, dataPointIndex }: { series: number[][], dataPointIndex: number }) => {\r\n          const numericResult = series[0][dataPointIndex]\r\n          if (props.history.range) {\r\n            return rangeColor(mappedRange, numericResult || 0, RangeColor.out)[0]\r\n          }\r\n          return RangeColor.annotation\r\n        }]\r\n      }\r\n    },\r\n    yaxis: {\r\n      min: props.history.range?.scaleMin,\r\n      max: props.history.range?.scaleMax,\r\n      tickAmount: props.history.range ? 5 : undefined,\r\n      labels: {\r\n        style: {\r\n          fontSize: defaultFontSize\r\n        }\r\n      }\r\n    },\r\n    xaxis: {\r\n      type: \"category\",\r\n      tooltip: {\r\n        enabled: false\r\n      },\r\n      crosshairs: {\r\n        show: false\r\n      },\r\n      labels: {\r\n        rotate: -30,\r\n        rotateAlways: props.history.details.length > 7\r\n      },\r\n      axisTicks: {\r\n        show: false\r\n      }\r\n    },\r\n    markers: {\r\n      size: 0,\r\n      showNullDataPoints: false,\r\n      hover: {\r\n        size: 0\r\n      }\r\n    }\r\n  }), [props.history, mappedRange])\r\n\r\n  return (<>\r\n    <p className=\"fw-bold text-uppercase mb-2\">{props.history.name}</p>\r\n    <ReactApexChart series={series} options={options} height={320} type=\"line\"></ReactApexChart>\r\n  </>)\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport TestHistorySection from \"../../api/models/TestHistorySection\"\r\nimport HistoryChart from \"./HistoryChart\"\r\n\r\nexport interface HistorySectionProps {\r\n  section: TestHistorySection\r\n}\r\n\r\nexport default function HistorySection(props: HistorySectionProps) {\r\n  const { name, details } = props.section\r\n\r\n  return (<>\r\n    <Row><h4>{name}</h4></Row>\r\n    <Row className=\"mb-3\">\r\n      {details.map((item, index) =>\r\n        <Col xs={12} lg={6} key={index} className=\"mb-3\">\r\n          <HistoryChart key={item.testCode} history={item} />\r\n        </Col>)}\r\n    </Row>\r\n  </>)\r\n}\r\n","import React, { useEffect, useReducer } from \"react\"\r\nimport { Container, Row, Spinner } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { getHistory } from \"../../api/History\"\r\nimport TestHistorySection from \"../../api/models/TestHistorySection\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\"\r\nimport MoveTopButton from \"../Core/MoveTopButton\"\r\nimport DataLoader from \"../DataLoader\"\r\nimport DonorInfo from \"./DonorInfo\"\r\nimport Footer from \"./Footer\"\r\nimport HistorySection from \"./HistorySection\"\r\n\r\nexport default function HistoryReport() {\r\n  const { t } = useTranslation()\r\n  const authStore = useAuthStore()\r\n  const showPhysicalFirst = authStore.domain?.showPhysicalFirst || false\r\n  const [history, setHistory] = useReducer((state: DataLoader<TestHistorySection>, newState: Partial<DataLoader<TestHistorySection>>) => ({ ...state, ...newState }), { loading: false, loaded: false, data: [] })\r\n\r\n  useEffect(() => {\r\n    setHistory({ loading: true })\r\n\r\n    const subscription = getHistory(showPhysicalFirst).subscribe({\r\n      next: (result: TestHistorySection[]) => {\r\n        setHistory({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setHistory({ loading: false })\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [showPhysicalFirst])\r\n\r\n  return (\r\n    <Container>\r\n      <DonorInfo />\r\n      {history.loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      <Row>\r\n        {!history.loading && history.data.map(section => <HistorySection key={section.name || \"\"} section={section}/>)}\r\n      </Row>\r\n      <MoveTopButton />\r\n      <Footer />\r\n    </Container>)\r\n}\r\n","import TestHistorySection from \"./models/TestHistorySection\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getHistory = (showPhysicalFirst: boolean) => ObservableFromFetch<TestHistorySection[]>(`History?showPhysicalFirst=${showPhysicalFirst}`)\r\n","// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = ['onCompositionEnd', 'onCompositionStart', 'onCompositionUpdate'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onChange', 'onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var genericEvents = ['onError', 'onLoad'];\nexport var mouseEvents = ['onClick', 'onContextMenu', 'onDoubleClick', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp'];\nexport var pointerEvents = ['onPointerDown', 'onPointerMove', 'onPointerUp', 'onPointerCancel', 'onGotPointerCapture', 'onLostPointerCapture', 'onPointerEnter', 'onPointerLeave', 'onPointerOver', 'onPointerOut'];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var mediaEvents = ['onAbort', 'onCanPlay', 'onCanPlayThrough', 'onDurationChange', 'onEmptied', 'onEncrypted', 'onEnded', 'onError', 'onLoadedData', 'onLoadedMetadata', 'onLoadStart', 'onPause', 'onPlay', 'onPlaying', 'onProgress', 'onRateChange', 'onSeeked', 'onSeeking', 'onStalled', 'onSuspend', 'onTimeUpdate', 'onVolumeChange', 'onWaiting'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var animationEvents = ['onAnimationStart', 'onAnimationEnd', 'onAnimationIteration'];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var allEvents = [].concat(clipboardEvents, compositionEvents, keyboardEvents, focusEvents, formEvents, genericEvents, mouseEvents, pointerEvents, selectionEvents, touchEvents, uiEvents, wheelEvents, mediaEvents, imageEvents, animationEvents, transitionEvents, otherEvents);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n *   shall be curried with.\n */\n\nvar makeEventProps = function makeEventProps(props, getArgs) {\n  var eventProps = {};\n  allEvents.forEach(function (eventName) {\n    if (!(eventName in props)) {\n      return;\n    }\n\n    if (!getArgs) {\n      eventProps[eventName] = props[eventName];\n      return;\n    }\n\n    eventProps[eventName] = function (event) {\n      return props[eventName](event, getArgs(eventName));\n    };\n  });\n  return eventProps;\n};\n\nexport default makeEventProps;","export default function makeCancellablePromise(promise) {\n  var isCancelled = false;\n  var wrappedPromise = new Promise(function (resolve, reject) {\n    promise.then(function () {\n      return !isCancelled && resolve.apply(void 0, arguments);\n    })[\"catch\"](function (error) {\n      return !isCancelled && reject(error);\n    });\n  });\n  return {\n    promise: wrappedPromise,\n    cancel: function cancel() {\n      isCancelled = true;\n    }\n  };\n}","export default function mergeClassNames() {\n  return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {\n    return classList.concat(arg);\n  }, []).filter(function (arg) {\n    return typeof arg === 'string';\n  }).join(' ');\n}","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n  if (!isProduction) {\n    if (condition) {\n      return;\n    }\n\n    var text = \"Warning: \" + message;\n\n    if (typeof console !== 'undefined') {\n      console.warn(text);\n    }\n\n    try {\n      throw Error(text);\n    } catch (x) {}\n  }\n}\n\nexport default warning;\n","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import React from 'react';\nimport PropTypes from 'prop-types';\nexport default function Message(_ref) {\n  var children = _ref.children,\n      type = _ref.type;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"react-pdf__message react-pdf__message--\".concat(type)\n  }, children);\n}\nMessage.propTypes = {\n  children: PropTypes.node,\n  type: PropTypes.oneOf(['error', 'loading', 'no-data']).isRequired\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\n/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport invariant from 'tiny-invariant';\nvar DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\n\nvar LinkService = /*#__PURE__*/function () {\n  function LinkService() {\n    _classCallCheck(this, LinkService);\n\n    this.externalLinkTarget = null;\n    this.externalLinkRel = null;\n  }\n\n  _createClass(LinkService, [{\n    key: \"setDocument\",\n    value: function setDocument(pdfDocument) {\n      this.pdfDocument = pdfDocument;\n    }\n  }, {\n    key: \"setViewer\",\n    value: function setViewer(pdfViewer) {\n      this.pdfViewer = pdfViewer;\n    }\n  }, {\n    key: \"setExternalLinkRel\",\n    value: function setExternalLinkRel(externalLinkRel) {\n      this.externalLinkRel = externalLinkRel;\n    }\n  }, {\n    key: \"setExternalLinkTarget\",\n    value: function setExternalLinkTarget(externalLinkTarget) {\n      this.externalLinkTarget = externalLinkTarget;\n    }\n  }, {\n    key: \"setHistory\",\n    value: function setHistory() {}\n  }, {\n    key: \"pagesCount\",\n    get: function get() {\n      return this.pdfDocument ? this.pdfDocument.numPages : 0;\n    }\n  }, {\n    key: \"page\",\n    get: function get() {\n      return this.pdfViewer.currentPageNumber;\n    },\n    set: function set(value) {\n      this.pdfViewer.currentPageNumber = value;\n    }\n  }, {\n    key: \"rotation\",\n    get: function get() {\n      return 0;\n    },\n    set: function set(value) {}\n  }, {\n    key: \"goToDestination\",\n    value: function goToDestination(dest) {\n      var _this = this;\n\n      new Promise(function (resolve) {\n        if (typeof dest === 'string') {\n          _this.pdfDocument.getDestination(dest).then(resolve);\n        } else if (Array.isArray(dest)) {\n          resolve(dest);\n        } else {\n          dest.then(resolve);\n        }\n      }).then(function (explicitDest) {\n        invariant(Array.isArray(explicitDest), \"\\\"\".concat(explicitDest, \"\\\" is not a valid destination array.\"));\n        var destRef = explicitDest[0];\n        new Promise(function (resolve) {\n          if (destRef instanceof Object) {\n            _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {\n              resolve(pageIndex);\n            })[\"catch\"](function () {\n              invariant(false, \"\\\"\".concat(destRef, \"\\\" is not a valid page reference.\"));\n            });\n          } else if (typeof destRef === 'number') {\n            resolve(destRef);\n          } else {\n            invariant(false, \"\\\"\".concat(destRef, \"\\\" is not a valid destination reference.\"));\n          }\n        }).then(function (pageIndex) {\n          var pageNumber = pageIndex + 1;\n          invariant(pageNumber >= 1 && pageNumber <= _this.pagesCount, \"\\\"\".concat(pageNumber, \"\\\" is not a valid page number.\"));\n\n          _this.pdfViewer.scrollPageIntoView({\n            dest: dest,\n            pageIndex: pageIndex,\n            pageNumber: pageNumber\n          });\n        });\n      });\n    }\n  }, {\n    key: \"navigateTo\",\n    value: function navigateTo(dest) {\n      this.goToDestination(dest);\n    }\n  }, {\n    key: \"goToPage\",\n    value: function goToPage() {}\n  }, {\n    key: \"addLinkAttributes\",\n    value: function addLinkAttributes(link, url, newWindow) {\n      link.href = url;\n      link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n      link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n    }\n  }, {\n    key: \"getDestinationHash\",\n    value: function getDestinationHash() {\n      return '#';\n    }\n  }, {\n    key: \"getAnchorUrl\",\n    value: function getAnchorUrl() {\n      return '#';\n    }\n  }, {\n    key: \"setHash\",\n    value: function setHash() {}\n  }, {\n    key: \"executeNamedAction\",\n    value: function executeNamedAction() {}\n  }, {\n    key: \"cachePageRef\",\n    value: function cachePageRef() {}\n  }, {\n    key: \"isPageVisible\",\n    value: function isPageVisible() {\n      return true;\n    }\n  }, {\n    key: \"isPageCached\",\n    value: function isPageCached() {\n      return true;\n    }\n  }]);\n\n  return LinkService;\n}();\n\nexport { LinkService as default };","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nvar PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nexport default PasswordResponses;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\n/**\n * Checks if we're running in a browser environment.\n */\n\nexport var isBrowser = typeof window !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\n\nexport var isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isDefined(variable) {\n  return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isProvided(variable) {\n  return isDefined(variable) && variable !== null;\n}\n/**\n * Checkes whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isString(variable) {\n  return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isArrayBuffer(variable) {\n  return variable instanceof ArrayBuffer;\n}\n/**\n * Checkes whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isBlob(variable) {\n  invariant(isBrowser, 'isBlob can only be used in a browser environment');\n  return variable instanceof Blob;\n}\n/**\n * Checkes whether a variable provided is a File.\n *\n * @param {*} variable Variable to check\n */\n\nexport function isFile(variable) {\n  invariant(isBrowser, 'isFile can only be used in a browser environment');\n  return variable instanceof File;\n}\n/**\n * Checks whether a string provided is a data URI.\n *\n * @param {string} str String to check\n */\n\nexport function isDataURI(str) {\n  return isString(str) && /^data:/.test(str);\n}\nexport function dataURItoByteString(dataURI) {\n  invariant(isDataURI(dataURI), 'Invalid data URI.');\n\n  var _dataURI$split = dataURI.split(','),\n      _dataURI$split2 = _slicedToArray(_dataURI$split, 2),\n      headersString = _dataURI$split2[0],\n      dataString = _dataURI$split2[1];\n\n  var headers = headersString.split(';');\n\n  if (headers.indexOf('base64') !== -1) {\n    return atob(dataString);\n  }\n\n  return unescape(dataString);\n}\nexport function getPixelRatio() {\n  return isBrowser && window.devicePixelRatio || 1;\n}\nvar allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n  warning(!isLocalFileSystem, \"Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. \".concat(allowFileAccessFromFilesTip));\n}\nexport function displayWorkerWarning() {\n  warning(!isLocalFileSystem, \"Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. \".concat(allowFileAccessFromFilesTip));\n}\nexport function cancelRunningTask(runningTask) {\n  if (runningTask && runningTask.cancel) runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n  Object.defineProperty(page, 'width', {\n    get: function get() {\n      return this.view[2] * scale;\n    },\n    configurable: true\n  });\n  Object.defineProperty(page, 'height', {\n    get: function get() {\n      return this.view[3] * scale;\n    },\n    configurable: true\n  });\n  Object.defineProperty(page, 'originalWidth', {\n    get: function get() {\n      return this.view[2];\n    },\n    configurable: true\n  });\n  Object.defineProperty(page, 'originalHeight', {\n    get: function get() {\n      return this.view[3];\n    },\n    configurable: true\n  });\n  return page;\n}\nexport function isCancelException(error) {\n  return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n  return new Promise(function (resolve, reject) {\n    var reader = new FileReader();\n\n    reader.onload = function () {\n      return resolve(new Uint8Array(reader.result));\n    };\n\n    reader.onerror = function (event) {\n      switch (event.target.error.code) {\n        case event.target.error.NOT_FOUND_ERR:\n          return reject(new Error('Error while reading a file: File not found.'));\n\n        case event.target.error.NOT_READABLE_ERR:\n          return reject(new Error('Error while reading a file: File not readable.'));\n\n        case event.target.error.SECURITY_ERR:\n          return reject(new Error('Error while reading a file: Security error.'));\n\n        case event.target.error.ABORT_ERR:\n          return reject(new Error('Error while reading a file: Aborted.'));\n\n        default:\n          return reject(new Error('Error while reading a file.'));\n      }\n    };\n\n    reader.readAsArrayBuffer(file);\n    return null;\n  });\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport PropTypes from 'prop-types';\nimport { mouseEvents, touchEvents, keyboardEvents } from 'make-event-props';\nimport { isDefined } from './utils';\nimport LinkService from '../LinkService';\nexport var eventProps = function () {\n  var result = {};\n  [].concat(_toConsumableArray(mouseEvents), _toConsumableArray(touchEvents), _toConsumableArray(keyboardEvents)).forEach(function (eventName) {\n    result[eventName] = PropTypes.func;\n  });\n  return result;\n}();\nvar fileTypes = [PropTypes.string, PropTypes.instanceOf(ArrayBuffer), PropTypes.shape({\n  data: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n  httpHeaders: PropTypes.object,\n  range: PropTypes.object,\n  url: PropTypes.string,\n  withCredentials: PropTypes.bool\n})];\n\nif (typeof File !== 'undefined') {\n  fileTypes.push(PropTypes.instanceOf(File));\n}\n\nif (typeof Blob !== 'undefined') {\n  fileTypes.push(PropTypes.instanceOf(Blob));\n}\n\nexport var isClassName = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]);\nexport var isFile = PropTypes.oneOfType(fileTypes);\nexport var isLinkService = PropTypes.instanceOf(LinkService);\nexport var isLinkTarget = PropTypes.oneOf(['_self', '_blank', '_parent', '_top']);\nexport var isPage = PropTypes.shape({\n  _transport: PropTypes.shape({\n    fontLoader: PropTypes.object.isRequired\n  }).isRequired,\n  commonObjs: PropTypes.shape({\n    _objs: PropTypes.object.isRequired\n  }).isRequired,\n  getAnnotations: PropTypes.func.isRequired,\n  getTextContent: PropTypes.func.isRequired,\n  getViewport: PropTypes.func.isRequired,\n  render: PropTypes.func.isRequired\n});\nexport var isPageIndex = function isPageIndex(props, propName, componentName) {\n  var pageIndex = props[propName],\n      pageNumber = props.pageNumber,\n      pdf = props.pdf;\n\n  if (!isDefined(pdf)) {\n    return null;\n  }\n\n  if (isDefined(pageIndex)) {\n    if (typeof pageIndex !== 'number') {\n      return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageIndex), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n    }\n\n    if (pageIndex < 0) {\n      return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 0.\"));\n    }\n\n    var numPages = pdf.numPages;\n\n    if (pageIndex + 1 > numPages) {\n      return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages - 1, \".\"));\n    }\n  } else if (!isDefined(pageNumber)) {\n    return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n  } // Everything is fine\n\n\n  return null;\n};\nexport var isPageNumber = function isPageNumber(props, propName, componentName) {\n  var pageNumber = props[propName],\n      pageIndex = props.pageIndex,\n      pdf = props.pdf;\n\n  if (!isDefined(pdf)) {\n    return null;\n  }\n\n  if (isDefined(pageNumber)) {\n    if (typeof pageNumber !== 'number') {\n      return new Error(\"`\".concat(propName, \"` of type `\").concat(_typeof(pageNumber), \"` supplied to `\").concat(componentName, \"`, expected `number`.\"));\n    }\n\n    if (pageNumber < 1) {\n      return new Error(\"Expected `\".concat(propName, \"` to be greater or equal to 1.\"));\n    }\n\n    var numPages = pdf.numPages;\n\n    if (pageNumber > numPages) {\n      return new Error(\"Expected `\".concat(propName, \"` to be less or equal to \").concat(numPages, \".\"));\n    }\n  } else if (!isDefined(pageIndex)) {\n    return new Error(\"`\".concat(propName, \"` not supplied. Either pageIndex or pageNumber must be supplied to `\").concat(componentName, \"`.\"));\n  } // Everything is fine\n\n\n  return null;\n};\nexport var isPdf = PropTypes.oneOfType([PropTypes.shape({\n  getDestination: PropTypes.func.isRequired,\n  getOutline: PropTypes.func.isRequired,\n  getPage: PropTypes.func.isRequired,\n  numPages: PropTypes.number.isRequired\n}), PropTypes.bool]);\nexport var isRef = PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n  current: PropTypes.any\n})]);\nexport var isRenderMode = PropTypes.oneOf(['canvas', 'none', 'svg']);\nexport var isRotate = PropTypes.oneOf([0, 90, 180, 270]);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"url\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Loads a PDF document. Passes it to all children.\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport mergeClassNames from 'merge-class-names';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport DocumentContext from './DocumentContext';\nimport Message from './Message';\nimport LinkService from './LinkService';\nimport PasswordResponses from './PasswordResponses';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, isFile, loadFromFile } from './shared/utils';\nimport { eventProps, isClassName, isFile as isFileProp, isRef } from './shared/propTypes';\nvar PDFDataRangeTransport = pdfjs.PDFDataRangeTransport;\n\nvar Document = /*#__PURE__*/function (_PureComponent) {\n  _inherits(Document, _PureComponent);\n\n  var _super = _createSuper(Document);\n\n  function Document() {\n    var _this;\n\n    _classCallCheck(this, Document);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      pdf: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"viewer\", {\n      scrollPageIntoView: function scrollPageIntoView(_ref) {\n        var dest = _ref.dest,\n            pageIndex = _ref.pageIndex,\n            pageNumber = _ref.pageNumber;\n        // Handling jumping to internal links target\n        var onItemClick = _this.props.onItemClick; // First, check if custom handling of onItemClick was provided\n\n        if (onItemClick) {\n          onItemClick({\n            dest: dest,\n            pageIndex: pageIndex,\n            pageNumber: pageNumber\n          });\n          return;\n        } // If not, try to look for target page within the <Document>.\n\n\n        var page = _this.pages[pageIndex];\n\n        if (page) {\n          // Scroll to the page automatically\n          page.scrollIntoView();\n          return;\n        }\n\n        warning(false, \"An internal link leading to page \".concat(pageNumber, \" was clicked, but neither <Document> was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to <Document> and handle navigating by yourself or ensure that all pages are rendered within <Document>.\"));\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"linkService\", new LinkService());\n\n    _defineProperty(_assertThisInitialized(_this), \"loadDocument\", function () {\n      _this.findDocumentSource().then(function (source) {\n        _this.onSourceSuccess();\n\n        if (!source) {\n          return;\n        }\n\n        _this.setState(function (prevState) {\n          if (!prevState.pdf) {\n            return null;\n          }\n\n          return {\n            pdf: null\n          };\n        });\n\n        var _this$props = _this.props,\n            options = _this$props.options,\n            onLoadProgress = _this$props.onLoadProgress,\n            onPassword = _this$props.onPassword; // If another rendering is in progress, let's cancel it\n\n        cancelRunningTask(_this.runningTask); // If another loading is in progress, let's destroy it\n\n        if (_this.loadingTask) _this.loadingTask.destroy();\n        _this.loadingTask = pdfjs.getDocument(_objectSpread(_objectSpread({}, source), options));\n        _this.loadingTask.onPassword = onPassword;\n\n        if (onLoadProgress) {\n          _this.loadingTask.onProgress = onLoadProgress;\n        }\n\n        var cancellable = makeCancellable(_this.loadingTask.promise);\n        _this.runningTask = cancellable;\n        cancellable.promise.then(function (pdf) {\n          _this.setState(function (prevState) {\n            if (prevState.pdf && prevState.pdf.fingerprint === pdf.fingerprint) {\n              return null;\n            }\n\n            return {\n              pdf: pdf\n            };\n          }, _this.onLoadSuccess);\n        })[\"catch\"](function (error) {\n          _this.onLoadError(error);\n        });\n      })[\"catch\"](function (error) {\n        _this.onSourceError(error);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"setupLinkService\", function () {\n      var _this$props2 = _this.props,\n          externalLinkRel = _this$props2.externalLinkRel,\n          externalLinkTarget = _this$props2.externalLinkTarget;\n\n      _this.linkService.setViewer(_this.viewer);\n\n      _this.linkService.setExternalLinkRel(externalLinkRel);\n\n      _this.linkService.setExternalLinkTarget(externalLinkTarget);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onSourceSuccess\", function () {\n      var onSourceSuccess = _this.props.onSourceSuccess;\n      if (onSourceSuccess) onSourceSuccess();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onSourceError\", function (error) {\n      warning(error);\n      var onSourceError = _this.props.onSourceError;\n      if (onSourceError) onSourceError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n      var onLoadSuccess = _this.props.onLoadSuccess;\n      var pdf = _this.state.pdf;\n      if (onLoadSuccess) onLoadSuccess(pdf);\n      _this.pages = new Array(pdf.numPages);\n\n      _this.linkService.setDocument(pdf);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n      _this.setState({\n        pdf: false\n      });\n\n      warning(error);\n      var onLoadError = _this.props.onLoadError;\n      if (onLoadError) onLoadError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"findDocumentSource\", function () {\n      return new Promise(function (resolve) {\n        var file = _this.props.file;\n\n        if (!file) {\n          resolve(null);\n        } // File is a string\n\n\n        if (typeof file === 'string') {\n          if (isDataURI(file)) {\n            var fileByteString = dataURItoByteString(file);\n            resolve({\n              data: fileByteString\n            });\n          }\n\n          displayCORSWarning();\n          resolve({\n            url: file\n          });\n        } // File is PDFDataRangeTransport\n\n\n        if (file instanceof PDFDataRangeTransport) {\n          resolve({\n            range: file\n          });\n        } // File is an ArrayBuffer\n\n\n        if (isArrayBuffer(file)) {\n          resolve({\n            data: file\n          });\n        }\n        /**\n         * The cases below are browser-only.\n         * If you're running on a non-browser environment, these cases will be of no use.\n         */\n\n\n        if (isBrowser) {\n          // File is a Blob\n          if (isBlob(file) || isFile(file)) {\n            loadFromFile(file).then(function (data) {\n              resolve({\n                data: data\n              });\n            });\n            return;\n          }\n        } // At this point, file must be an object\n\n\n        invariant(_typeof(file) === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n        invariant(file.url || file.data || file.range, 'Invalid parameter object: need either .data, .range or .url'); // File .url is a string\n\n        if (typeof file.url === 'string') {\n          if (isDataURI(file.url)) {\n            var url = file.url,\n                otherParams = _objectWithoutProperties(file, _excluded);\n\n            var _fileByteString = dataURItoByteString(url);\n\n            resolve(_objectSpread({\n              data: _fileByteString\n            }, otherParams));\n          }\n\n          displayCORSWarning();\n        }\n\n        resolve(file);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"registerPage\", function (pageIndex, ref) {\n      _this.pages[pageIndex] = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"unregisterPage\", function (pageIndex) {\n      delete _this.pages[pageIndex];\n    });\n\n    return _this;\n  }\n\n  _createClass(Document, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.loadDocument();\n      this.setupLinkService();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var file = this.props.file;\n\n      if (file !== prevProps.file) {\n        this.loadDocument();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      // If rendering is in progress, let's cancel it\n      cancelRunningTask(this.runningTask); // If loading is in progress, let's destroy it\n\n      if (this.loadingTask) this.loadingTask.destroy();\n    }\n  }, {\n    key: \"childContext\",\n    get: function get() {\n      var linkService = this.linkService,\n          registerPage = this.registerPage,\n          unregisterPage = this.unregisterPage;\n      var _this$props3 = this.props,\n          imageResourcesPath = _this$props3.imageResourcesPath,\n          renderMode = _this$props3.renderMode,\n          rotate = _this$props3.rotate;\n      var pdf = this.state.pdf;\n      return {\n        imageResourcesPath: imageResourcesPath,\n        linkService: linkService,\n        pdf: pdf,\n        registerPage: registerPage,\n        renderMode: renderMode,\n        rotate: rotate,\n        unregisterPage: unregisterPage\n      };\n    }\n  }, {\n    key: \"eventProps\",\n    get: function get() {\n      var _this2 = this;\n\n      return makeEventProps(this.props, function () {\n        return _this2.state.pdf;\n      });\n    }\n    /**\n     * Called when a document source is resolved correctly\n     */\n\n  }, {\n    key: \"renderChildren\",\n    value: function renderChildren() {\n      var children = this.props.children;\n      return /*#__PURE__*/React.createElement(DocumentContext.Provider, {\n        value: this.childContext\n      }, children);\n    }\n  }, {\n    key: \"renderContent\",\n    value: function renderContent() {\n      var file = this.props.file;\n      var pdf = this.state.pdf;\n\n      if (!file) {\n        var noData = this.props.noData;\n        return /*#__PURE__*/React.createElement(Message, {\n          type: \"no-data\"\n        }, typeof noData === 'function' ? noData() : noData);\n      }\n\n      if (pdf === null) {\n        var loading = this.props.loading;\n        return /*#__PURE__*/React.createElement(Message, {\n          type: \"loading\"\n        }, typeof loading === 'function' ? loading() : loading);\n      }\n\n      if (pdf === false) {\n        var error = this.props.error;\n        return /*#__PURE__*/React.createElement(Message, {\n          type: \"error\"\n        }, typeof error === 'function' ? error() : error);\n      }\n\n      return this.renderChildren();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props4 = this.props,\n          className = _this$props4.className,\n          inputRef = _this$props4.inputRef;\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        className: mergeClassNames('react-pdf__Document', className),\n        ref: inputRef\n      }, this.eventProps), this.renderContent());\n    }\n  }]);\n\n  return Document;\n}(PureComponent);\n\nexport { Document as default };\nDocument.defaultProps = {\n  error: 'Failed to load PDF file.',\n  loading: 'Loading PDF…',\n  noData: 'No PDF file specified.',\n  onPassword: function onPassword(callback, reason) {\n    switch (reason) {\n      case PasswordResponses.NEED_PASSWORD:\n        {\n          // eslint-disable-next-line no-alert\n          var password = prompt('Enter the password to open this PDF file.');\n          callback(password);\n          break;\n        }\n\n      case PasswordResponses.INCORRECT_PASSWORD:\n        {\n          // eslint-disable-next-line no-alert\n          var _password = prompt('Invalid password. Please try again.');\n\n          callback(_password);\n          break;\n        }\n\n      default:\n    }\n  }\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nDocument.propTypes = _objectSpread(_objectSpread({}, eventProps), {}, {\n  children: PropTypes.node,\n  className: isClassName,\n  error: isFunctionOrNode,\n  externalLinkRel: PropTypes.string,\n  externalLinkTarget: PropTypes.string,\n  file: isFileProp,\n  imageResourcesPath: PropTypes.string,\n  inputRef: isRef,\n  loading: isFunctionOrNode,\n  noData: isFunctionOrNode,\n  onItemClick: PropTypes.func,\n  onLoadError: PropTypes.func,\n  onLoadProgress: PropTypes.func,\n  onLoadSuccess: PropTypes.func,\n  onPassword: PropTypes.func,\n  onSourceError: PropTypes.func,\n  onSourceSuccess: PropTypes.func,\n  rotate: PropTypes.number\n});","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\nvar Ref = /*#__PURE__*/function () {\n  function Ref(_ref) {\n    var num = _ref.num,\n        gen = _ref.gen;\n\n    _classCallCheck(this, Ref);\n\n    this.num = num;\n    this.gen = gen;\n  }\n\n  _createClass(Ref, [{\n    key: \"toString\",\n    value: function toString() {\n      var str = \"\".concat(this.num, \"R\");\n\n      if (this.gen !== 0) {\n        str += this.gen;\n      }\n\n      return str;\n    }\n  }]);\n\n  return Ref;\n}();\n\nexport { Ref as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"item\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport Ref from './Ref';\nimport { isDefined } from './shared/utils';\nimport { isPdf } from './shared/propTypes';\nexport var OutlineItemInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(OutlineItemInternal, _PureComponent);\n\n  var _super = _createSuper(OutlineItemInternal);\n\n  function OutlineItemInternal() {\n    var _this;\n\n    _classCallCheck(this, OutlineItemInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"getDestination\", function () {\n      return new Promise(function (resolve, reject) {\n        var _this$props = _this.props,\n            item = _this$props.item,\n            pdf = _this$props.pdf;\n\n        if (!isDefined(_this.destination)) {\n          if (typeof item.dest === 'string') {\n            pdf.getDestination(item.dest).then(resolve)[\"catch\"](reject);\n          } else {\n            resolve(item.dest);\n          }\n        }\n\n        return _this.destination;\n      }).then(function (destination) {\n        _this.destination = destination;\n        return destination;\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getPageIndex\", function () {\n      return new Promise(function (resolve, reject) {\n        var pdf = _this.props.pdf;\n\n        if (isDefined(_this.pageIndex)) {\n          resolve(_this.pageIndex);\n        }\n\n        _this.getDestination().then(function (destination) {\n          if (!destination) {\n            return;\n          }\n\n          var _destination = _slicedToArray(destination, 1),\n              ref = _destination[0];\n\n          pdf.getPageIndex(new Ref(ref)).then(resolve)[\"catch\"](reject);\n        });\n      }).then(function (pageIndex) {\n        _this.pageIndex = pageIndex;\n        return _this.pageIndex;\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"getPageNumber\", function () {\n      return new Promise(function (resolve, reject) {\n        if (isDefined(_this.pageNumber)) {\n          resolve(_this.pageNumber);\n        }\n\n        _this.getPageIndex().then(function (pageIndex) {\n          resolve(pageIndex + 1);\n        })[\"catch\"](reject);\n      }).then(function (pageNumber) {\n        _this.pageNumber = pageNumber;\n        return pageNumber;\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n      var onClick = _this.props.onClick;\n      event.preventDefault();\n\n      if (!onClick) {\n        return false;\n      }\n\n      return Promise.all([_this.getDestination(), _this.getPageIndex(), _this.getPageNumber()]).then(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 3),\n            dest = _ref2[0],\n            pageIndex = _ref2[1],\n            pageNumber = _ref2[2];\n\n        onClick({\n          dest: dest,\n          pageIndex: pageIndex,\n          pageNumber: pageNumber\n        });\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(OutlineItemInternal, [{\n    key: \"renderSubitems\",\n    value: function renderSubitems() {\n      var _this$props2 = this.props,\n          item = _this$props2.item,\n          otherProps = _objectWithoutProperties(_this$props2, _excluded);\n\n      if (!item.items || !item.items.length) {\n        return null;\n      }\n\n      var subitems = item.items;\n      return /*#__PURE__*/React.createElement(\"ul\", null, subitems.map(function (subitem, subitemIndex) {\n        return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({\n          key: typeof subitem.destination === 'string' ? subitem.destination : subitemIndex,\n          item: subitem\n        }, otherProps));\n      }));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var item = this.props.item;\n      return /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"a\", {\n        href: \"#\",\n        onClick: this.onClick\n      }, item.title), this.renderSubitems());\n    }\n  }]);\n\n  return OutlineItemInternal;\n}(PureComponent);\nvar isDestination = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.any)]);\nOutlineItemInternal.propTypes = {\n  item: PropTypes.shape({\n    dest: isDestination,\n    items: PropTypes.arrayOf(PropTypes.shape({\n      dest: isDestination,\n      title: PropTypes.string\n    })),\n    title: PropTypes.string\n  }).isRequired,\n  onClick: PropTypes.func,\n  pdf: isPdf.isRequired\n};\n\nvar OutlineItem = function OutlineItem(props) {\n  return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n    return /*#__PURE__*/React.createElement(OutlineContext.Consumer, null, function (outlineContext) {\n      return /*#__PURE__*/React.createElement(OutlineItemInternal, _extends({}, documentContext, outlineContext, props));\n    });\n  });\n};\n\nexport default OutlineItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport DocumentContext from './DocumentContext';\nimport OutlineContext from './OutlineContext';\nimport OutlineItem from './OutlineItem';\nimport { cancelRunningTask } from './shared/utils';\nimport { eventProps, isClassName, isPdf, isRef } from './shared/propTypes';\nexport var OutlineInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(OutlineInternal, _PureComponent);\n\n  var _super = _createSuper(OutlineInternal);\n\n  function OutlineInternal() {\n    var _this;\n\n    _classCallCheck(this, OutlineInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      outline: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"loadOutline\", function () {\n      var pdf = _this.props.pdf;\n\n      _this.setState(function (prevState) {\n        if (!prevState.outline) {\n          return null;\n        }\n\n        return {\n          outline: null\n        };\n      });\n\n      var cancellable = makeCancellable(pdf.getOutline());\n      _this.runningTask = cancellable;\n      cancellable.promise.then(function (outline) {\n        _this.setState({\n          outline: outline\n        }, _this.onLoadSuccess);\n      })[\"catch\"](function (error) {\n        _this.onLoadError(error);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n      var onLoadSuccess = _this.props.onLoadSuccess;\n      var outline = _this.state.outline;\n      if (onLoadSuccess) onLoadSuccess(outline);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n      _this.setState({\n        outline: false\n      });\n\n      warning(error);\n      var onLoadError = _this.props.onLoadError;\n      if (onLoadError) onLoadError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onItemClick\", function (_ref) {\n      var dest = _ref.dest,\n          pageIndex = _ref.pageIndex,\n          pageNumber = _ref.pageNumber;\n      var onItemClick = _this.props.onItemClick;\n\n      if (onItemClick) {\n        onItemClick({\n          dest: dest,\n          pageIndex: pageIndex,\n          pageNumber: pageNumber\n        });\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(OutlineInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var pdf = this.props.pdf;\n      invariant(pdf, 'Attempted to load an outline, but no document was specified.');\n      this.loadOutline();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var pdf = this.props.pdf;\n\n      if (prevProps.pdf && pdf !== prevProps.pdf) {\n        this.loadOutline();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      cancelRunningTask(this.runningTask);\n    }\n  }, {\n    key: \"childContext\",\n    get: function get() {\n      return {\n        onClick: this.onItemClick\n      };\n    }\n  }, {\n    key: \"eventProps\",\n    get: function get() {\n      var _this2 = this;\n\n      return makeEventProps(this.props, function () {\n        return _this2.state.outline;\n      });\n    }\n    /**\n     * Called when an outline is read successfully\n     */\n\n  }, {\n    key: \"renderOutline\",\n    value: function renderOutline() {\n      var outline = this.state.outline;\n      return /*#__PURE__*/React.createElement(\"ul\", null, outline.map(function (item, itemIndex) {\n        return /*#__PURE__*/React.createElement(OutlineItem, {\n          key: typeof item.destination === 'string' ? item.destination : itemIndex,\n          item: item\n        });\n      }));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var pdf = this.props.pdf;\n      var outline = this.state.outline;\n\n      if (!pdf || !outline) {\n        return null;\n      }\n\n      var _this$props = this.props,\n          className = _this$props.className,\n          inputRef = _this$props.inputRef;\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        className: mergeClassNames('react-pdf__Outline', className),\n        ref: inputRef\n      }, this.eventProps), /*#__PURE__*/React.createElement(OutlineContext.Provider, {\n        value: this.childContext\n      }, this.renderOutline()));\n    }\n  }]);\n\n  return OutlineInternal;\n}(PureComponent);\nOutlineInternal.propTypes = _objectSpread({\n  className: isClassName,\n  inputRef: isRef,\n  onItemClick: PropTypes.func,\n  onLoadError: PropTypes.func,\n  onLoadSuccess: PropTypes.func,\n  pdf: isPdf\n}, eventProps);\n\nfunction Outline(props, ref) {\n  return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(OutlineInternal, _extends({\n      ref: ref\n    }, context, props));\n  });\n}\n\nexport default /*#__PURE__*/React.forwardRef(Outline);","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```jsx\n * <div ref={mergeRefs(ref1, ref2, ref3)} />\n * ```\n *\n * @param {...Array<Function|object>} inputRefs Array of refs\n * @returns {Function} Merged refs\n */\nexport default function mergeRefs() {\n  for (var _len = arguments.length, inputRefs = new Array(_len), _key = 0; _key < _len; _key++) {\n    inputRefs[_key] = arguments[_key];\n  }\n\n  var filteredInputRefs = inputRefs.filter(Boolean);\n\n  if (filteredInputRefs.length <= 1) {\n    return filteredInputRefs[0];\n  }\n\n  return function mergedRefs(ref) {\n    filteredInputRefs.forEach(function (inputRef) {\n      if (typeof inputRef === 'function') {\n        inputRef(ref);\n      } else {\n        // eslint-disable-next-line no-param-reassign\n        inputRef.current = ref;\n      }\n    });\n  };\n}","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport mergeRefs from 'merge-refs';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport PageContext from '../PageContext';\nimport { getPixelRatio, isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRef, isRotate } from '../shared/propTypes';\nvar ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport var PageCanvasInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(PageCanvasInternal, _PureComponent);\n\n  var _super = _createSuper(PageCanvasInternal);\n\n  function PageCanvasInternal() {\n    var _this;\n\n    _classCallCheck(this, PageCanvasInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n      _this.renderer = null;\n      var _this$props = _this.props,\n          onRenderSuccess = _this$props.onRenderSuccess,\n          page = _this$props.page,\n          scale = _this$props.scale;\n      if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n      if (isCancelException(error)) {\n        return;\n      }\n\n      warning(error);\n      var onRenderError = _this.props.onRenderError;\n      if (onRenderError) onRenderError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"drawPageOnCanvas\", function () {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          canvas = _assertThisInitialize.canvasLayer;\n\n      if (!canvas) {\n        return null;\n      }\n\n      var _assertThisInitialize2 = _assertThisInitialized(_this),\n          renderViewport = _assertThisInitialize2.renderViewport,\n          viewport = _assertThisInitialize2.viewport;\n\n      var _this$props2 = _this.props,\n          canvasBackground = _this$props2.canvasBackground,\n          page = _this$props2.page,\n          renderForms = _this$props2.renderForms;\n      canvas.width = renderViewport.width;\n      canvas.height = renderViewport.height;\n      canvas.style.width = \"\".concat(Math.floor(viewport.width), \"px\");\n      canvas.style.height = \"\".concat(Math.floor(viewport.height), \"px\");\n      var renderContext = {\n        annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n\n        get canvasContext() {\n          return canvas.getContext('2d');\n        },\n\n        viewport: renderViewport\n      };\n\n      if (canvasBackground) {\n        renderContext.background = canvasBackground;\n      } // If another render is in progress, let's cancel it\n\n\n      _this.cancelRenderingTask();\n\n      _this.renderer = page.render(renderContext);\n      return _this.renderer.promise.then(_this.onRenderSuccess)[\"catch\"](_this.onRenderError);\n    });\n\n    return _this;\n  }\n\n  _createClass(PageCanvasInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.drawPageOnCanvas();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props3 = this.props,\n          canvasBackground = _this$props3.canvasBackground,\n          page = _this$props3.page,\n          renderForms = _this$props3.renderForms;\n\n      if (canvasBackground !== prevProps.canvasBackground || renderForms !== prevProps.renderForms) {\n        // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n        page.cleanup();\n        this.drawPageOnCanvas();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.cancelRenderingTask();\n      /**\n       * Zeroing the width and height cause most browsers to release graphics\n       * resources immediately, which can greatly reduce memory consumption.\n       */\n\n      if (this.canvasLayer) {\n        this.canvasLayer.width = 0;\n        this.canvasLayer.height = 0;\n        this.canvasLayer = null;\n      }\n    }\n  }, {\n    key: \"cancelRenderingTask\",\n    value: function cancelRenderingTask() {\n      if (this.renderer) {\n        this.renderer.cancel();\n        this.renderer = null;\n      }\n    }\n    /**\n     * Called when a page is rendered successfully.\n     */\n\n  }, {\n    key: \"renderViewport\",\n    get: function get() {\n      var _this$props4 = this.props,\n          page = _this$props4.page,\n          rotate = _this$props4.rotate,\n          scale = _this$props4.scale;\n      var pixelRatio = getPixelRatio();\n      return page.getViewport({\n        scale: scale * pixelRatio,\n        rotation: rotate\n      });\n    }\n  }, {\n    key: \"viewport\",\n    get: function get() {\n      var _this$props5 = this.props,\n          page = _this$props5.page,\n          rotate = _this$props5.rotate,\n          scale = _this$props5.scale;\n      return page.getViewport({\n        scale: scale,\n        rotation: rotate\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var canvasRef = this.props.canvasRef;\n      return /*#__PURE__*/React.createElement(\"canvas\", {\n        className: \"react-pdf__Page__canvas\",\n        dir: \"ltr\",\n        ref: mergeRefs(canvasRef, function (ref) {\n          _this2.canvasLayer = ref;\n        }),\n        style: {\n          display: 'block',\n          userSelect: 'none'\n        }\n      });\n    }\n  }]);\n\n  return PageCanvasInternal;\n}(PureComponent);\nPageCanvasInternal.propTypes = {\n  canvasBackground: PropTypes.string,\n  canvasRef: isRef,\n  onRenderError: PropTypes.func,\n  onRenderSuccess: PropTypes.func,\n  page: isPage.isRequired,\n  renderForms: PropTypes.bool,\n  rotate: isRotate,\n  scale: PropTypes.number.isRequired\n};\nexport default function PageCanvas(props) {\n  return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(PageCanvasInternal, _extends({}, context, props));\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport PageContext from '../PageContext';\nimport { isCancelException, makePageCallback } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var PageSVGInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(PageSVGInternal, _PureComponent);\n\n  var _super = _createSuper(PageSVGInternal);\n\n  function PageSVGInternal() {\n    var _this;\n\n    _classCallCheck(this, PageSVGInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      svg: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n      _this.renderer = null;\n      var _this$props = _this.props,\n          onRenderSuccess = _this$props.onRenderSuccess,\n          page = _this$props.page,\n          scale = _this$props.scale;\n      if (onRenderSuccess) onRenderSuccess(makePageCallback(page, scale));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n      if (isCancelException(error)) {\n        return;\n      }\n\n      warning(error);\n      var onRenderError = _this.props.onRenderError;\n      if (onRenderError) onRenderError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"renderSVG\", function () {\n      var page = _this.props.page;\n      _this.renderer = page.getOperatorList();\n      return _this.renderer.then(function (operatorList) {\n        var svgGfx = new pdfjs.SVGGraphics(page.commonObjs, page.objs);\n        _this.renderer = svgGfx.getSVG(operatorList, _this.viewport).then(function (svg) {\n          _this.setState({\n            svg: svg\n          }, _this.onRenderSuccess);\n        })[\"catch\"](_this.onRenderError);\n      })[\"catch\"](_this.onRenderError);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"drawPageOnContainer\", function (element) {\n      var svg = _this.state.svg;\n\n      if (!element || !svg) {\n        return;\n      } // Append SVG element to the main container, if this hasn't been done already\n\n\n      if (!element.firstElementChild) {\n        element.appendChild(svg);\n      }\n\n      var _this$viewport = _this.viewport,\n          width = _this$viewport.width,\n          height = _this$viewport.height;\n      svg.setAttribute('width', width);\n      svg.setAttribute('height', height);\n    });\n\n    return _this;\n  }\n\n  _createClass(PageSVGInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.renderSVG();\n    }\n    /**\n     * Called when a page is rendered successfully.\n     */\n\n  }, {\n    key: \"viewport\",\n    get: function get() {\n      var _this$props2 = this.props,\n          page = _this$props2.page,\n          rotate = _this$props2.rotate,\n          scale = _this$props2.scale;\n      return page.getViewport({\n        scale: scale,\n        rotation: rotate\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$viewport2 = this.viewport,\n          width = _this$viewport2.width,\n          height = _this$viewport2.height;\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: \"react-pdf__Page__svg\" // Note: This cannot be shortened, as we need this function to be called with each render.\n        ,\n        ref: function ref(_ref) {\n          return _this2.drawPageOnContainer(_ref);\n        },\n        style: {\n          display: 'block',\n          backgroundColor: 'white',\n          overflow: 'hidden',\n          width: width,\n          height: height,\n          userSelect: 'none'\n        }\n      });\n    }\n  }]);\n\n  return PageSVGInternal;\n}(PureComponent);\nPageSVGInternal.propTypes = {\n  onRenderError: PropTypes.func,\n  onRenderSuccess: PropTypes.func,\n  page: isPage.isRequired,\n  rotate: isRotate,\n  scale: PropTypes.number.isRequired\n};\nexport default function PageSVG(props) {\n  return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(PageSVGInternal, _extends({}, context, props));\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport PageContext from '../PageContext';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerItemInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(TextLayerItemInternal, _PureComponent);\n\n  var _super = _createSuper(TextLayerItemInternal);\n\n  function TextLayerItemInternal() {\n    var _this;\n\n    _classCallCheck(this, TextLayerItemInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"getElementWidth\", function (element) {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          sideways = _assertThisInitialize.sideways;\n\n      return element.getBoundingClientRect()[sideways ? 'height' : 'width'];\n    });\n\n    return _this;\n  }\n\n  _createClass(TextLayerItemInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.alignTextItem();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.alignTextItem();\n    }\n  }, {\n    key: \"unrotatedViewport\",\n    get: function get() {\n      var _this$props = this.props,\n          page = _this$props.page,\n          scale = _this$props.scale;\n      return page.getViewport({\n        scale: scale\n      });\n    }\n    /**\n     * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n     * text content.\n     */\n\n  }, {\n    key: \"rotate\",\n    get: function get() {\n      var _this$props2 = this.props,\n          page = _this$props2.page,\n          rotate = _this$props2.rotate;\n      return rotate - page.rotate;\n    }\n  }, {\n    key: \"sideways\",\n    get: function get() {\n      var rotate = this.rotate;\n      return rotate % 180 !== 0;\n    }\n  }, {\n    key: \"defaultSideways\",\n    get: function get() {\n      var rotation = this.unrotatedViewport.rotation;\n      return rotation % 180 !== 0;\n    }\n  }, {\n    key: \"fontSize\",\n    get: function get() {\n      var transform = this.props.transform;\n      var defaultSideways = this.defaultSideways;\n\n      var _transform = _slicedToArray(transform, 2),\n          fontHeightPx = _transform[0],\n          fontWidthPx = _transform[1];\n\n      return defaultSideways ? fontWidthPx : fontHeightPx;\n    }\n  }, {\n    key: \"top\",\n    get: function get() {\n      var transform = this.props.transform;\n      var viewport = this.unrotatedViewport,\n          defaultSideways = this.defaultSideways;\n\n      var _transform2 = _slicedToArray(transform, 6),\n\n      /* fontHeightPx */\n\n      /* fontWidthPx */\n      offsetX = _transform2[2],\n          offsetY = _transform2[3],\n          x = _transform2[4],\n          y = _transform2[5];\n\n      var _viewport$viewBox = _slicedToArray(viewport.viewBox, 4),\n\n      /* xMin */\n      yMin\n      /* xMax */\n      = _viewport$viewBox[1],\n          yMax = _viewport$viewBox[3];\n\n      return defaultSideways ? x + offsetX + yMin : yMax - (y + offsetY);\n    }\n  }, {\n    key: \"left\",\n    get: function get() {\n      var transform = this.props.transform;\n      var viewport = this.unrotatedViewport,\n          defaultSideways = this.defaultSideways;\n\n      var _transform3 = _slicedToArray(transform, 6),\n\n      /* fontHeightPx */\n\n      /* fontWidthPx */\n\n      /* offsetX */\n\n      /* offsetY */\n      x = _transform3[4],\n          y = _transform3[5];\n\n      var _viewport$viewBox2 = _slicedToArray(viewport.viewBox, 1),\n          xMin = _viewport$viewBox2[0];\n\n      return defaultSideways ? y - xMin : x - xMin;\n    }\n  }, {\n    key: \"getFontData\",\n    value: function getFontData(fontName) {\n      var page = this.props.page;\n      return new Promise(function (resolve) {\n        page.commonObjs.get(fontName, resolve);\n      });\n    }\n  }, {\n    key: \"alignTextItem\",\n    value: function alignTextItem() {\n      var _this2 = this;\n\n      var element = this.item;\n\n      if (!element) {\n        return;\n      }\n\n      element.style.transform = '';\n      var _this$props3 = this.props,\n          fontName = _this$props3.fontName,\n          scale = _this$props3.scale,\n          width = _this$props3.width;\n      element.style.fontFamily = \"\".concat(fontName, \", sans-serif\");\n      this.getFontData(fontName).then(function (fontData) {\n        var fallbackFontName = fontData ? fontData.fallbackName : 'sans-serif';\n        element.style.fontFamily = \"\".concat(fontName, \", \").concat(fallbackFontName);\n        var targetWidth = width * scale;\n\n        var actualWidth = _this2.getElementWidth(element);\n\n        var transform = \"scaleX(\".concat(targetWidth / actualWidth, \")\");\n        var ascent = fontData ? fontData.ascent : 0;\n\n        if (ascent) {\n          transform += \" translateY(\".concat((1 - ascent) * 100, \"%)\");\n        }\n\n        element.style.transform = transform;\n        element.style.WebkitTransform = transform;\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this3 = this;\n\n      var fontSize = this.fontSize,\n          top = this.top,\n          left = this.left;\n      var _this$props4 = this.props,\n          customTextRenderer = _this$props4.customTextRenderer,\n          scale = _this$props4.scale,\n          text = _this$props4.str;\n      return /*#__PURE__*/React.createElement(\"span\", {\n        ref: function ref(_ref) {\n          _this3.item = _ref;\n        },\n        style: {\n          height: '1em',\n          fontFamily: 'sans-serif',\n          fontSize: \"\".concat(fontSize * scale, \"px\"),\n          position: 'absolute',\n          top: \"\".concat(top * scale, \"px\"),\n          left: \"\".concat(left * scale, \"px\"),\n          transformOrigin: 'left bottom',\n          whiteSpace: 'pre',\n          pointerEvents: 'all'\n        }\n      }, customTextRenderer ? customTextRenderer(this.props) : text);\n    }\n  }]);\n\n  return TextLayerItemInternal;\n}(PureComponent);\nTextLayerItemInternal.propTypes = {\n  customTextRenderer: PropTypes.func,\n  fontName: PropTypes.string.isRequired,\n  itemIndex: PropTypes.number.isRequired,\n  page: isPage.isRequired,\n  rotate: isRotate,\n  scale: PropTypes.number,\n  str: PropTypes.string.isRequired,\n  transform: PropTypes.arrayOf(PropTypes.number).isRequired,\n  width: PropTypes.number.isRequired\n};\nexport default function TextLayerItem(props) {\n  return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(TextLayerItemInternal, _extends({}, context, props));\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport PageContext from '../PageContext';\nimport TextLayerItem from './TextLayerItem';\nimport { cancelRunningTask } from '../shared/utils';\nimport { isPage, isRotate } from '../shared/propTypes';\nexport var TextLayerInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(TextLayerInternal, _PureComponent);\n\n  var _super = _createSuper(TextLayerInternal);\n\n  function TextLayerInternal() {\n    var _this;\n\n    _classCallCheck(this, TextLayerInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      textItems: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"loadTextItems\", function () {\n      var page = _this.props.page;\n      var cancellable = makeCancellable(page.getTextContent());\n      _this.runningTask = cancellable;\n      cancellable.promise.then(function (_ref) {\n        var textItems = _ref.items;\n\n        _this.setState({\n          textItems: textItems\n        }, _this.onLoadSuccess);\n      })[\"catch\"](function (error) {\n        _this.onLoadError(error);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n      var onGetTextSuccess = _this.props.onGetTextSuccess;\n      var textItems = _this.state.textItems;\n      if (onGetTextSuccess) onGetTextSuccess(textItems);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n      _this.setState({\n        textItems: false\n      });\n\n      warning(error);\n      var onGetTextError = _this.props.onGetTextError;\n      if (onGetTextError) onGetTextError(error);\n    });\n\n    return _this;\n  }\n\n  _createClass(TextLayerInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var page = this.props.page;\n      invariant(page, 'Attempted to load page text content, but no page was specified.');\n      this.loadTextItems();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var page = this.props.page;\n\n      if (prevProps.page && page !== prevProps.page) {\n        this.loadTextItems();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      cancelRunningTask(this.runningTask);\n    }\n  }, {\n    key: \"unrotatedViewport\",\n    get: function get() {\n      var _this$props = this.props,\n          page = _this$props.page,\n          scale = _this$props.scale;\n      return page.getViewport({\n        scale: scale\n      });\n    }\n    /**\n     * It might happen that the page is rotated by default. In such cases, we shouldn't rotate\n     * text content.\n     */\n\n  }, {\n    key: \"rotate\",\n    get: function get() {\n      var _this$props2 = this.props,\n          page = _this$props2.page,\n          rotate = _this$props2.rotate;\n      return rotate - page.rotate;\n    }\n  }, {\n    key: \"renderTextItems\",\n    value: function renderTextItems() {\n      var textItems = this.state.textItems;\n\n      if (!textItems) {\n        return null;\n      }\n\n      return textItems.map(function (textItem, itemIndex) {\n        return /*#__PURE__*/React.createElement(TextLayerItem // eslint-disable-next-line react/no-array-index-key\n        , _extends({\n          key: itemIndex,\n          itemIndex: itemIndex\n        }, textItem));\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var viewport = this.unrotatedViewport,\n          rotate = this.rotate;\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: \"react-pdf__Page__textContent\",\n        style: {\n          position: 'absolute',\n          top: '50%',\n          left: '50%',\n          width: \"\".concat(viewport.width, \"px\"),\n          height: \"\".concat(viewport.height, \"px\"),\n          color: 'transparent',\n          transform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n          WebkitTransform: \"translate(-50%, -50%) rotate(\".concat(rotate, \"deg)\"),\n          pointerEvents: 'none'\n        }\n      }, this.renderTextItems());\n    }\n  }]);\n\n  return TextLayerInternal;\n}(PureComponent);\nTextLayerInternal.propTypes = {\n  onGetTextError: PropTypes.func,\n  onGetTextSuccess: PropTypes.func,\n  page: isPage.isRequired,\n  rotate: isRotate,\n  scale: PropTypes.number\n};\nexport default function TextLayer(props) {\n  return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(TextLayerInternal, _extends({}, context, props));\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport DocumentContext from '../DocumentContext';\nimport PageContext from '../PageContext';\nimport { cancelRunningTask } from '../shared/utils';\nimport { isLinkService, isPage, isRotate } from '../shared/propTypes';\nexport var AnnotationLayerInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(AnnotationLayerInternal, _PureComponent);\n\n  var _super = _createSuper(AnnotationLayerInternal);\n\n  function AnnotationLayerInternal() {\n    var _this;\n\n    _classCallCheck(this, AnnotationLayerInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      annotations: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"loadAnnotations\", function () {\n      var page = _this.props.page;\n      var cancellable = makeCancellable(page.getAnnotations());\n      _this.runningTask = cancellable;\n      cancellable.promise.then(function (annotations) {\n        _this.setState({\n          annotations: annotations\n        }, _this.onLoadSuccess);\n      })[\"catch\"](function (error) {\n        _this.onLoadError(error);\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n      var onGetAnnotationsSuccess = _this.props.onGetAnnotationsSuccess;\n      var annotations = _this.state.annotations;\n      if (onGetAnnotationsSuccess) onGetAnnotationsSuccess(annotations);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n      _this.setState({\n        annotations: false\n      });\n\n      warning(error);\n      var onGetAnnotationsError = _this.props.onGetAnnotationsError;\n      if (onGetAnnotationsError) onGetAnnotationsError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onRenderSuccess\", function () {\n      var onRenderAnnotationLayerSuccess = _this.props.onRenderAnnotationLayerSuccess;\n      if (onRenderAnnotationLayerSuccess) onRenderAnnotationLayerSuccess();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onRenderError\", function (error) {\n      warning(error);\n      var onRenderAnnotationLayerError = _this.props.onRenderAnnotationLayerError;\n      if (onRenderAnnotationLayerError) onRenderAnnotationLayerError(error);\n    });\n\n    return _this;\n  }\n\n  _createClass(AnnotationLayerInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var page = this.props.page;\n      invariant(page, 'Attempted to load page annotations, but no page was specified.');\n      this.loadAnnotations();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          page = _this$props.page,\n          renderForms = _this$props.renderForms;\n\n      if (prevProps.page && page !== prevProps.page || renderForms !== prevProps.renderForms) {\n        this.loadAnnotations();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      cancelRunningTask(this.runningTask);\n    }\n  }, {\n    key: \"viewport\",\n    get: function get() {\n      var _this$props2 = this.props,\n          page = _this$props2.page,\n          rotate = _this$props2.rotate,\n          scale = _this$props2.scale;\n      return page.getViewport({\n        scale: scale,\n        rotation: rotate\n      });\n    }\n  }, {\n    key: \"renderAnnotationLayer\",\n    value: function renderAnnotationLayer() {\n      var annotations = this.state.annotations;\n\n      if (!annotations) {\n        return;\n      }\n\n      var _this$props3 = this.props,\n          imageResourcesPath = _this$props3.imageResourcesPath,\n          linkService = _this$props3.linkService,\n          page = _this$props3.page,\n          renderForms = _this$props3.renderForms;\n      var viewport = this.viewport.clone({\n        dontFlip: true\n      });\n      var parameters = {\n        annotations: annotations,\n        div: this.annotationLayer,\n        imageResourcesPath: imageResourcesPath,\n        linkService: linkService,\n        page: page,\n        renderForms: renderForms,\n        viewport: viewport\n      };\n      this.annotationLayer.innerHTML = '';\n\n      try {\n        pdfjs.AnnotationLayer.render(parameters);\n        this.onRenderSuccess();\n      } catch (error) {\n        this.onRenderError(error);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: \"react-pdf__Page__annotations annotationLayer\",\n        ref: function ref(_ref) {\n          _this2.annotationLayer = _ref;\n        }\n      }, this.renderAnnotationLayer());\n    }\n  }]);\n\n  return AnnotationLayerInternal;\n}(PureComponent);\nAnnotationLayerInternal.propTypes = {\n  imageResourcesPath: PropTypes.string,\n  linkService: isLinkService.isRequired,\n  onGetAnnotationsError: PropTypes.func,\n  onGetAnnotationsSuccess: PropTypes.func,\n  onRenderAnnotationLayerError: PropTypes.func,\n  onRenderAnnotationLayerSuccess: PropTypes.func,\n  page: isPage,\n  renderForms: PropTypes.bool,\n  rotate: isRotate,\n  scale: PropTypes.number\n};\n\nvar AnnotationLayer = function AnnotationLayer(props) {\n  return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (documentContext) {\n    return /*#__PURE__*/React.createElement(PageContext.Consumer, null, function (pageContext) {\n      return /*#__PURE__*/React.createElement(AnnotationLayerInternal, _extends({}, documentContext, pageContext, props));\n    });\n  });\n};\n\nexport default AnnotationLayer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport mergeClassNames from 'merge-class-names';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport DocumentContext from './DocumentContext';\nimport PageContext from './PageContext';\nimport Message from './Message';\nimport PageCanvas from './Page/PageCanvas';\nimport PageSVG from './Page/PageSVG';\nimport TextLayer from './Page/TextLayer';\nimport AnnotationLayer from './Page/AnnotationLayer';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils';\nimport { eventProps, isClassName, isPageIndex, isPageNumber, isPdf, isRef, isRenderMode, isRotate } from './shared/propTypes';\nvar defaultScale = 1;\nexport var PageInternal = /*#__PURE__*/function (_PureComponent) {\n  _inherits(PageInternal, _PureComponent);\n\n  var _super = _createSuper(PageInternal);\n\n  function PageInternal() {\n    var _this;\n\n    _classCallCheck(this, PageInternal);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      page: null\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadSuccess\", function () {\n      var _this$props = _this.props,\n          onLoadSuccess = _this$props.onLoadSuccess,\n          registerPage = _this$props.registerPage;\n      var page = _this.state.page;\n      if (onLoadSuccess) onLoadSuccess(makePageCallback(page, _this.scale));\n      if (registerPage) registerPage(_this.pageIndex, _this.ref);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"onLoadError\", function (error) {\n      _this.setState({\n        page: false\n      });\n\n      warning(error);\n      var onLoadError = _this.props.onLoadError;\n      if (onLoadError) onLoadError(error);\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"loadPage\", function () {\n      var pdf = _this.props.pdf;\n\n      var pageNumber = _this.getPageNumber();\n\n      if (!pageNumber) {\n        return;\n      }\n\n      _this.setState(function (prevState) {\n        if (!prevState.page) {\n          return null;\n        }\n\n        return {\n          page: null\n        };\n      });\n\n      var cancellable = makeCancellable(pdf.getPage(pageNumber));\n      _this.runningTask = cancellable;\n      cancellable.promise.then(function (page) {\n        _this.setState({\n          page: page\n        }, _this.onLoadSuccess);\n      })[\"catch\"](function (error) {\n        _this.onLoadError(error);\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(PageInternal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var pdf = this.props.pdf;\n      invariant(pdf, 'Attempted to load a page, but no document was specified.');\n      this.loadPage();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var pdf = this.props.pdf;\n\n      if (prevProps.pdf && pdf !== prevProps.pdf || this.getPageNumber() !== this.getPageNumber(prevProps)) {\n        var unregisterPage = this.props.unregisterPage;\n        if (unregisterPage) unregisterPage(this.getPageIndex(prevProps));\n        this.loadPage();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      var unregisterPage = this.props.unregisterPage;\n      if (unregisterPage) unregisterPage(this.pageIndex);\n      cancelRunningTask(this.runningTask);\n    }\n  }, {\n    key: \"childContext\",\n    get: function get() {\n      var page = this.state.page;\n\n      if (!page) {\n        return {};\n      }\n\n      var _this$props2 = this.props,\n          canvasBackground = _this$props2.canvasBackground,\n          customTextRenderer = _this$props2.customTextRenderer,\n          onGetAnnotationsError = _this$props2.onGetAnnotationsError,\n          onGetAnnotationsSuccess = _this$props2.onGetAnnotationsSuccess,\n          onGetTextError = _this$props2.onGetTextError,\n          onGetTextSuccess = _this$props2.onGetTextSuccess,\n          onRenderAnnotationLayerError = _this$props2.onRenderAnnotationLayerError,\n          onRenderAnnotationLayerSuccess = _this$props2.onRenderAnnotationLayerSuccess,\n          onRenderError = _this$props2.onRenderError,\n          onRenderSuccess = _this$props2.onRenderSuccess,\n          renderForms = _this$props2.renderForms,\n          renderInteractiveForms = _this$props2.renderInteractiveForms;\n      return {\n        canvasBackground: canvasBackground,\n        customTextRenderer: customTextRenderer,\n        onGetAnnotationsError: onGetAnnotationsError,\n        onGetAnnotationsSuccess: onGetAnnotationsSuccess,\n        onGetTextError: onGetTextError,\n        onGetTextSuccess: onGetTextSuccess,\n        onRenderAnnotationLayerError: onRenderAnnotationLayerError,\n        onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccess,\n        onRenderError: onRenderError,\n        onRenderSuccess: onRenderSuccess,\n        page: page,\n        renderForms: renderForms !== null && renderForms !== void 0 ? renderForms : renderInteractiveForms,\n        // For backward compatibility\n        rotate: this.rotate,\n        scale: this.scale\n      };\n    }\n    /**\n     * Called when a page is loaded successfully\n     */\n\n  }, {\n    key: \"getPageIndex\",\n    value: function getPageIndex() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n      if (isProvided(props.pageNumber)) {\n        return props.pageNumber - 1;\n      }\n\n      if (isProvided(props.pageIndex)) {\n        return props.pageIndex;\n      }\n\n      return null;\n    }\n  }, {\n    key: \"getPageNumber\",\n    value: function getPageNumber() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n      if (isProvided(props.pageNumber)) {\n        return props.pageNumber;\n      }\n\n      if (isProvided(props.pageIndex)) {\n        return props.pageIndex + 1;\n      }\n\n      return null;\n    }\n  }, {\n    key: \"pageIndex\",\n    get: function get() {\n      return this.getPageIndex();\n    }\n  }, {\n    key: \"pageNumber\",\n    get: function get() {\n      return this.getPageNumber();\n    }\n  }, {\n    key: \"rotate\",\n    get: function get() {\n      var rotate = this.props.rotate;\n\n      if (isProvided(rotate)) {\n        return rotate;\n      }\n\n      var page = this.state.page;\n\n      if (!page) {\n        return null;\n      }\n\n      return page.rotate;\n    }\n  }, {\n    key: \"scale\",\n    get: function get() {\n      var page = this.state.page;\n\n      if (!page) {\n        return null;\n      }\n\n      var _this$props3 = this.props,\n          scale = _this$props3.scale,\n          width = _this$props3.width,\n          height = _this$props3.height;\n      var rotate = this.rotate; // Be default, we'll render page at 100% * scale width.\n\n      var pageScale = 1; // Passing scale explicitly null would cause the page not to render\n\n      var scaleWithDefault = scale === null ? defaultScale : scale; // If width/height is defined, calculate the scale of the page so it could be of desired width.\n\n      if (width || height) {\n        var viewport = page.getViewport({\n          scale: 1,\n          rotation: rotate\n        });\n        pageScale = width ? width / viewport.width : height / viewport.height;\n      }\n\n      return scaleWithDefault * pageScale;\n    }\n  }, {\n    key: \"eventProps\",\n    get: function get() {\n      var _this2 = this;\n\n      return makeEventProps(this.props, function () {\n        var page = _this2.state.page;\n\n        if (!page) {\n          return page;\n        }\n\n        return makePageCallback(page, _this2.scale);\n      });\n    }\n  }, {\n    key: \"pageKey\",\n    get: function get() {\n      var page = this.state.page;\n      return \"\".concat(page.pageIndex, \"@\").concat(this.scale, \"/\").concat(this.rotate);\n    }\n  }, {\n    key: \"pageKeyNoScale\",\n    get: function get() {\n      var page = this.state.page;\n      return \"\".concat(page.pageIndex, \"/\").concat(this.rotate);\n    }\n  }, {\n    key: \"renderMainLayer\",\n    value: function renderMainLayer() {\n      var _this$props4 = this.props,\n          canvasRef = _this$props4.canvasRef,\n          renderMode = _this$props4.renderMode;\n\n      switch (renderMode) {\n        case 'none':\n          return null;\n\n        case 'svg':\n          return /*#__PURE__*/React.createElement(PageSVG, {\n            key: \"\".concat(this.pageKeyNoScale, \"_svg\")\n          });\n\n        case 'canvas':\n        default:\n          return /*#__PURE__*/React.createElement(PageCanvas, {\n            key: \"\".concat(this.pageKey, \"_canvas\"),\n            canvasRef: canvasRef\n          });\n      }\n    }\n  }, {\n    key: \"renderTextLayer\",\n    value: function renderTextLayer() {\n      var renderTextLayer = this.props.renderTextLayer;\n\n      if (!renderTextLayer) {\n        return null;\n      }\n\n      return /*#__PURE__*/React.createElement(TextLayer, {\n        key: \"\".concat(this.pageKey, \"_text\")\n      });\n    }\n  }, {\n    key: \"renderAnnotationLayer\",\n    value: function renderAnnotationLayer() {\n      var renderAnnotationLayer = this.props.renderAnnotationLayer;\n\n      if (!renderAnnotationLayer) {\n        return null;\n      }\n      /**\n       * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n       * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n       */\n\n\n      return /*#__PURE__*/React.createElement(AnnotationLayer, {\n        key: \"\".concat(this.pageKey, \"_annotations\")\n      });\n    }\n  }, {\n    key: \"renderChildren\",\n    value: function renderChildren() {\n      var children = this.props.children;\n      return /*#__PURE__*/React.createElement(PageContext.Provider, {\n        value: this.childContext\n      }, this.renderMainLayer(), this.renderTextLayer(), this.renderAnnotationLayer(), children);\n    }\n  }, {\n    key: \"renderContent\",\n    value: function renderContent() {\n      var pageNumber = this.pageNumber;\n      var pdf = this.props.pdf;\n      var page = this.state.page;\n\n      if (!pageNumber) {\n        var noData = this.props.noData;\n        return /*#__PURE__*/React.createElement(Message, {\n          type: \"no-data\"\n        }, typeof noData === 'function' ? noData() : noData);\n      }\n\n      if (pdf === null || page === null) {\n        var loading = this.props.loading;\n        return /*#__PURE__*/React.createElement(Message, {\n          type: \"loading\"\n        }, typeof loading === 'function' ? loading() : loading);\n      }\n\n      if (pdf === false || page === false) {\n        var error = this.props.error;\n        return /*#__PURE__*/React.createElement(Message, {\n          type: \"error\"\n        }, typeof error === 'function' ? error() : error);\n      }\n\n      return this.renderChildren();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var pageNumber = this.pageNumber;\n      var _this$props5 = this.props,\n          className = _this$props5.className,\n          inputRef = _this$props5.inputRef;\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        className: mergeClassNames('react-pdf__Page', className),\n        \"data-page-number\": pageNumber,\n        ref: mergeRefs(inputRef, this.ref),\n        style: {\n          position: 'relative'\n        }\n      }, this.eventProps), this.renderContent());\n    }\n  }]);\n\n  return PageInternal;\n}(PureComponent);\nPageInternal.defaultProps = {\n  error: 'Failed to load the page.',\n  loading: 'Loading page…',\n  noData: 'No page specified.',\n  renderAnnotationLayer: true,\n  renderForms: false,\n  renderMode: 'canvas',\n  renderTextLayer: true,\n  scale: defaultScale\n};\nvar isFunctionOrNode = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\nPageInternal.propTypes = _objectSpread(_objectSpread({}, eventProps), {}, {\n  canvasBackground: PropTypes.string,\n  children: PropTypes.node,\n  className: isClassName,\n  customTextRenderer: PropTypes.func,\n  error: isFunctionOrNode,\n  height: PropTypes.number,\n  imageResourcesPath: PropTypes.string,\n  inputRef: isRef,\n  loading: isFunctionOrNode,\n  noData: isFunctionOrNode,\n  onGetTextError: PropTypes.func,\n  onGetTextSuccess: PropTypes.func,\n  onLoadError: PropTypes.func,\n  onLoadSuccess: PropTypes.func,\n  onRenderError: PropTypes.func,\n  onRenderSuccess: PropTypes.func,\n  pageIndex: isPageIndex,\n  pageNumber: isPageNumber,\n  pdf: isPdf,\n  registerPage: PropTypes.func,\n  renderAnnotationLayer: PropTypes.bool,\n  renderForms: PropTypes.bool,\n  renderInteractiveForms: PropTypes.bool,\n  // For backward compatibility\n  renderMode: isRenderMode,\n  renderTextLayer: PropTypes.bool,\n  rotate: isRotate,\n  scale: PropTypes.number,\n  unregisterPage: PropTypes.func,\n  width: PropTypes.number\n});\n\nfunction Page(props, ref) {\n  return /*#__PURE__*/React.createElement(DocumentContext.Consumer, null, function (context) {\n    return /*#__PURE__*/React.createElement(PageInternal, _extends({\n      ref: ref\n    }, context, props));\n  });\n}\n\nexport default /*#__PURE__*/React.forwardRef(Page);","import * as pdfjs from 'pdfjs-dist/legacy/build/pdf';\nimport Document from './Document';\nimport Outline from './Outline';\nimport Page from './Page';\nimport { displayWorkerWarning } from './shared/utils';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.js';\nexport { pdfjs, Document, Outline, Page };","import Orderable from \"./models/Orderable\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getOrderableTests = (id: number) => ObservableFromFetch<Orderable>(`Results/OrderableTest?id=${id}`)\r\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n  var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n  for (var i = 0; i < scripts.length; i++) {\n    var script = scripts[i];\n\n    if (!V3_URL_REGEX.test(script.src)) {\n      continue;\n    }\n\n    return script;\n  }\n\n  return null;\n};\n\nvar injectScript = function injectScript(params) {\n  var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n  var script = document.createElement('script');\n  script.src = \"\".concat(V3_URL).concat(queryString);\n  var headOrBody = document.head || document.body;\n\n  if (!headOrBody) {\n    throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n  }\n\n  headOrBody.appendChild(script);\n  return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n  if (!stripe || !stripe._registerWrapper) {\n    return;\n  }\n\n  stripe._registerWrapper({\n    name: 'stripe-js',\n    version: \"1.29.0\",\n    startTime: startTime\n  });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n  // Ensure that we only attempt to load Stripe.js at most once\n  if (stripePromise !== null) {\n    return stripePromise;\n  }\n\n  stripePromise = new Promise(function (resolve, reject) {\n    if (typeof window === 'undefined') {\n      // Resolve to null when imported server side. This makes the module\n      // safe to import in an isomorphic code base.\n      resolve(null);\n      return;\n    }\n\n    if (window.Stripe && params) {\n      console.warn(EXISTING_SCRIPT_MESSAGE);\n    }\n\n    if (window.Stripe) {\n      resolve(window.Stripe);\n      return;\n    }\n\n    try {\n      var script = findScript();\n\n      if (script && params) {\n        console.warn(EXISTING_SCRIPT_MESSAGE);\n      } else if (!script) {\n        script = injectScript(params);\n      }\n\n      script.addEventListener('load', function () {\n        if (window.Stripe) {\n          resolve(window.Stripe);\n        } else {\n          reject(new Error('Stripe.js not available'));\n        }\n      });\n      script.addEventListener('error', function () {\n        reject(new Error('Failed to load Stripe.js'));\n      });\n    } catch (error) {\n      reject(error);\n      return;\n    }\n  });\n  return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n  if (maybeStripe === null) {\n    return null;\n  }\n\n  var stripe = maybeStripe.apply(undefined, args);\n  registerWrapper(stripe, startTime);\n  return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n  return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n  if (!loadCalled) {\n    console.warn(err);\n  }\n});\nvar loadStripe = function loadStripe() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  loadCalled = true;\n  var startTime = Date.now();\n  return stripePromise$1.then(function (maybeStripe) {\n    return initStripe(maybeStripe, args, startTime);\n  });\n};\n\nexport { loadStripe };\n","export const formatter = new Intl.NumberFormat('en-US', {\r\n  style: 'currency',\r\n  currency: 'USD',\r\n})\r\n\r\nexport default function FormatCurrency(value: number) {\r\n  return formatter.format(value)\r\n}\r\n","import React, { FormEvent, useEffect, useState } from \"react\"\r\nimport { PaymentElement, useStripe, useElements } from \"@stripe/react-stripe-js\"\r\nimport { Button, Col, Form, Row, Spinner } from \"react-bootstrap\"\r\nimport OrderableTest from \"../../../api/models/OrderableTest\"\r\nimport { confirmPaymentIntent } from \"../../../api/PaymentIntent\"\r\nimport { APIError } from \"../../../api/ObservableFromFetch\"\r\nimport { toast } from \"react-toastify\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport FormatCurrency from \"../../../formatters/FormatCurrency\"\r\n\r\nexport interface CheckoutFormProps {\r\n  testEventId: number\r\n  items: OrderableTest[]\r\n  payment?: boolean\r\n  onCancel?: () => void\r\n  onComplete?: () => void\r\n}\r\n\r\nexport default function CheckoutForm(props: CheckoutFormProps) {\r\n  const { t } = useTranslation()\r\n  const stripe = useStripe()\r\n  const elements = useElements()\r\n\r\n  const [message, setMessage] = useState<string | undefined>()\r\n  const [loading, setLoading] = useState(false)\r\n  const [complete, setComplete] = useState(false)\r\n\r\n  useEffect(() => {\r\n    if (!stripe) {\r\n      return\r\n    }\r\n\r\n    const clientSecret = new URLSearchParams(window.location.search).get(\"payment_intent_client_secret\")\r\n\r\n    if (!clientSecret) {\r\n      return\r\n    }\r\n\r\n    stripe.retrievePaymentIntent(clientSecret).then(({ paymentIntent }) => {\r\n      switch (paymentIntent?.status) {\r\n        case \"succeeded\":\r\n          setMessage(\"Payment succeeded!\")\r\n          break\r\n        case \"processing\":\r\n          setMessage(\"Your payment is processing.\")\r\n          break\r\n        case \"requires_payment_method\":\r\n          setMessage(\"Your payment was not successful, please try again.\")\r\n          break\r\n        default:\r\n          setMessage(\"Something went wrong.\")\r\n          break\r\n      }\r\n    })\r\n  }, [stripe])\r\n\r\n  const handleSubmit = async (e: FormEvent<HTMLFormElement>) => {\r\n    e.preventDefault()\r\n\r\n    setMessage(\"\")\r\n\r\n    if (!stripe || !elements) {\r\n      // Stripe.js has not yet loaded.\r\n      // Make sure to disable form submission until Stripe.js has loaded.\r\n      return\r\n    }\r\n\r\n    setLoading(true)\r\n\r\n    const { paymentIntent, error } = await stripe.confirmPayment({\r\n      elements,\r\n      redirect: \"if_required\",\r\n      confirmParams: {\r\n        return_url: window.location.href,\r\n      },\r\n    })\r\n\r\n    if (paymentIntent?.status === \"succeeded\") {\r\n      setComplete(true)\r\n      confirmPaymentIntent({ items: props.items, testEventId: props.testEventId, paymentIntentId: paymentIntent.id }).subscribe({\r\n        next: () => props.onComplete && props.onComplete(),\r\n        error: (e: APIError) => toast.error(t(e.message, { data: e.data }))\r\n      })\r\n    }\r\n\r\n    if (error) {\r\n      setMessage(error.message)\r\n    }\r\n\r\n    setLoading(false)\r\n  }\r\n\r\n  const amount = props.items.reduce((acc, item) => acc + item.price, 0)\r\n\r\n  return (\r\n    <Form onSubmit={handleSubmit}>\r\n      <Row className=\"mb-2\">\r\n        <Col>{t(\"order.total\")}:</Col>\r\n        <Col className=\"col-auto\">{FormatCurrency(amount)}</Col>\r\n      </Row>\r\n      <Row>\r\n        <Col>\r\n          {props.payment && <PaymentElement id=\"payment-element\" />}\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-2\">\r\n        <Col className=\"me-auto col-auto\">\r\n          {!complete && <Button variant=\"secondary\" onClick={props.onCancel}>{t(\"order.cancel\")}</Button>}\r\n        </Col>\r\n        <Col className=\"col-auto\">\r\n          {!complete && <Button type=\"submit\" disabled={loading || !stripe || !elements}>\r\n            {t(\"order.purchase\")}\r\n            {loading && <Spinner animation=\"border\" size=\"sm\" className=\"mx-1\" />}\r\n          </Button>}\r\n        </Col>\r\n      </Row>\r\n      {message && <Row className=\"mt-2\"><Col className=\"col-auto\"><div className=\"text-danger\">{message}</div></Col></Row>}\r\n    </Form>\r\n  )\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar CheckCircleFill = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z\"\n  }));\n});\nCheckCircleFill.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nCheckCircleFill.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default CheckCircleFill;","import State from \"./models/State\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getStates = () => ObservableFromFetch<State[]>(`State`)\r\n","import * as React from \"react\"\r\nimport { useReducer, useState } from \"react\"\r\nimport { Row, Col, Form, Button } from \"react-bootstrap\"\r\nimport { toast } from \"react-toastify\"\r\nimport { saveAddress } from \"../../../api/Address\"\r\nimport Address from \"../../../api/models/Address\"\r\nimport State from \"../../../api/models/State\"\r\nimport { APIError } from \"../../../api/ObservableFromFetch\"\r\nimport { getStates } from \"../../../api/States\"\r\nimport { useTranslationWithRef } from \"../../../hooks/useTranslationWithRef\"\r\nimport DataLoader from \"../../DataLoader\"\r\n\r\nexport interface AddressProps {\r\n  address?: Address\r\n  testEventId: number\r\n  onCancel: () => void\r\n  onSubmit: () => void\r\n}\r\n\r\nexport default function AddressForm(props: AddressProps) {\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const emptyAddress: Address = { address1: \"\", city: \"\", state: \"\", zip: \"\" }\r\n  const [address, setAddress] = useState<Address>(props.address || emptyAddress)\r\n  const [states, setStates] = useReducer((state: DataLoader<State>, newState: Partial<DataLoader<State>>) => ({ ...state, ...newState }), { loading: false, loaded: false, data: [] })\r\n  const [touched, setTouched] = useState<string[]>([])\r\n  const setField = (field: keyof Address, value: string) => {\r\n    setAddress({ ...address, [field]: value })\r\n    setTouched([...touched, field])\r\n  }\r\n\r\n  React.useEffect(() => {\r\n    setStates({ loading: true })\r\n\r\n    const subscription = getStates().subscribe({\r\n      next: (result: State[]) => {\r\n        setStates({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setStates({ loading: false })\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [translationRef])\r\n\r\n  function handleSubmit() {\r\n    address && saveAddress(props.testEventId, address).subscribe({\r\n      next: () => props.onSubmit(),\r\n      error: (e: APIError) => toast.error(t(e.message, { data: e.data }))\r\n    })\r\n  }\r\n\r\n  const validationClassName = (value: string, field: keyof Address) => touched.includes(field) ? value ? \"valid\" : \"is-invalid\" : \"\"\r\n  const formValid = address.address1 && address.city && address.state && address.zip\r\n\r\n  return (<>\r\n    <Row className=\"mb-2\">\r\n      <Col>{t(\"order.address.title\")}</Col>\r\n    </Row>\r\n    <Form.Label htmlFor=\"Address1\">{t(\"order.address.address1\")}</Form.Label>\r\n    <Form.Control required type=\"text\" value={address.address1} onBlur={() => setTouched([...touched, \"address1\"])} onChange={e => setField(\"address1\", e.target.value)} className={validationClassName(address.address1, \"address1\")} />\r\n    <Form.Label htmlFor=\"Address2\">{t(\"order.address.address2\")}</Form.Label>\r\n    <Form.Control type=\"text\" value={address.address2} onBlur={() => setTouched([...touched, \"address2\"])} onChange={e => setField(\"address2\", e.target.value)} />\r\n    <Form.Label htmlFor=\"City\">{t(\"order.address.city\")}</Form.Label>\r\n    <Form.Control required type=\"text\" value={address.city} onBlur={() => setTouched([...touched, \"city\"])} onChange={e => setField(\"city\", e.target.value)} className={validationClassName(address.city, \"city\")} />\r\n    <Row>\r\n      <Col md={9}>\r\n        <Form.Label htmlFor=\"State\">{t(\"order.address.state\")}</Form.Label>\r\n        <Form.Select required aria-label={t(\"order.address.state\")} value={address.state} onBlur={() => setTouched([...touched, \"state\"])} onChange={e => setField(\"state\", e.target.value)} className={validationClassName(address.state, \"state\")}>\r\n          {states.data.map(state => <option key={state.code} value={state.code}>{state.name}</option>)}\r\n        </Form.Select>\r\n      </Col>\r\n      <Col md={3} className=\"ps-0\">\r\n        <Form.Label htmlFor=\"Zip\">{t(\"order.address.zip\")}</Form.Label>\r\n        <Form.Control required maxLength={5} type=\"text\" defaultValue={address.zip} onBlur={() => setTouched([...touched, \"zip\"])} onChange={e => setField(\"zip\", e.target.value)} className={validationClassName(address.zip, \"zip\")} />\r\n      </Col>\r\n    </Row>\r\n    <Row className=\"mt-2\">\r\n      <Col className=\"me-auto col-auto\">\r\n        <Button variant=\"secondary\" onClick={props.onCancel}>{t(\"order.cancel\")}</Button>\r\n      </Col>\r\n      <Col className=\"col-auto\">\r\n        <Button type=\"submit\" onClick={handleSubmit} disabled={!formValid}>{t(\"order.purchase\")}</Button>\r\n      </Col>\r\n    </Row>\r\n  </>)\r\n}","import Address from \"./models/Address\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const saveAddress = (testEventId: number, address: Address) => ObservableFromFetch<void>(`Results/UpdateAddress?testEventId=${testEventId}`, JSON.stringify(address))\r\n","import { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const saveConsent = (testEventId: number, consentId: number) => ObservableFromFetch<void>(`Results/UpdateConsent?testEventId=${testEventId}&consentId=${consentId}`, undefined, \"post\")\r\n","import { Elements } from \"@stripe/react-stripe-js\"\r\nimport { loadStripe } from \"@stripe/stripe-js\"\r\nimport * as React from \"react\"\r\nimport { useEffect, useMemo, useState } from \"react\"\r\nimport { Modal, Col, Row, Form, Button, Container } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport OrderableTest from \"../../../api/models/OrderableTest\"\r\nimport { APIError } from \"../../../api/ObservableFromFetch\"\r\nimport { confirmPaymentIntent, createPaymentIntent, PaymentIntentResponse } from \"../../../api/PaymentIntent\"\r\nimport FormatCurrency from \"../../../formatters/FormatCurrency\"\r\nimport { useStripeStore } from \"../../../stores/StoreProvider\"\r\nimport CheckoutForm from \"./CheckoutForm\"\r\nimport { CheckCircleFill } from \"react-bootstrap-icons\"\r\nimport { observer } from \"mobx-react-lite\"\r\nimport AddressForm from \"./AddressForm\"\r\nimport Address from \"../../../api/models/Address\"\r\nimport ConsentForm from \"./ConsentForm\"\r\n\r\nexport interface OrderTestProps {\r\n  address?: Address\r\n  testEventId: number\r\n  tests: OrderableTest[]\r\n  onClose: () => void\r\n}\r\n\r\nenum OrderStep {\r\n  Cart = \"cart\",\r\n  Consent = \"consent\",\r\n  Address = \"address\",\r\n  Checkout = \"checkout\",\r\n  OrderStatus = \"order\",\r\n}\r\n\r\nexport function OrderTest(props: OrderTestProps) {\r\n  const stripeStore = useStripeStore()\r\n  const { t } = useTranslation()\r\n  const [step, setStep] = useState(OrderStep.Cart)\r\n  const blankSelection = new Array(props.tests.length).fill(false)\r\n  const [selected, setSelected] = useState<boolean[]>(blankSelection)\r\n  const [paymentRequired, setPaymentRequired] = useState(false)\r\n  const stripePromise = useMemo(() => stripeStore.loaded ? loadStripe(stripeStore.publishableKey) : null, [stripeStore.publishableKey, stripeStore.loaded])\r\n  const [clientSecret, setClientSecret] = useState(\"\")\r\n  const appearance = {\r\n    theme: 'stripe' as const\r\n  }\r\n  const options = {\r\n    clientSecret,\r\n    appearance,\r\n  }\r\n\r\n  const selectedTests = () => props.tests.filter((_, index) => selected[index])\r\n  const selectedConsents = () => selectedTests().map(t => t.consent)\r\n  const selectedConsent = selectedConsents().filter(c => !!c)[0]\r\n\r\n  useEffect(() => {\r\n    stripeStore.load()\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    setSelected(new Array(props.tests.length).fill(false))\r\n  }, [props.tests])\r\n\r\n  useEffect(() => {\r\n    if (step === OrderStep.Checkout) {\r\n      const subscription = createPaymentIntent({ items: selectedTests(), testEventId: props.testEventId }).subscribe({\r\n        next: (result: PaymentIntentResponse) => {\r\n          if (!result.valid) {\r\n            return\r\n          }\r\n          setClientSecret(result.clientSecret)\r\n          setPaymentRequired(result.paymentRequired)\r\n          if (!result.paymentRequired) {\r\n            const order = confirmPaymentIntent({ items: selectedTests(), testEventId: props.testEventId }).subscribe({\r\n              next: () => setStep(OrderStep.OrderStatus),\r\n              error: (e: APIError) => toast.error(t(e.message, { data: e.data }))\r\n            })\r\n            return () => order.unsubscribe()\r\n          }\r\n        },\r\n        error: (e: APIError) => toast.error(t(e.message, { data: e.data }))\r\n      })\r\n      return () => subscription.unsubscribe()\r\n    }\r\n  }, [step])\r\n\r\n  const handleChange = (index: number) => setSelected(selected.map((item, i) => i === index ? !item : item))\r\n\r\n  return (<>\r\n    <Modal backdrop=\"static\" show onHide={() => props.onClose()} dialogClassName={step === OrderStep.Consent ? \"modal-xl\" : \"\"}>\r\n      <Modal.Header closeButton />\r\n      <Modal.Body>\r\n        <Container>\r\n        {step === OrderStep.Cart && <>\r\n          <Row>\r\n            <Col>{t(\"order.availableTests\")}</Col>\r\n          </Row>\r\n          {props.tests && props.tests.map((test, index) => <Row key={test.testCode}>\r\n            <Col md={1}><Form.Check id={test.testCode} checked={!!selected[index]} onChange={() => handleChange(index)} /></Col>\r\n            <Col><Form.Label htmlFor={test.testCode}>{`${test.testCode} - ${test.description}`}</Form.Label></Col>\r\n            <Col md={2}>{FormatCurrency(test.price)}</Col>\r\n          </Row>)}\r\n          <Row className=\"align-items-center\">\r\n            <Col className=\"me-auto col-auto\">\r\n              {t(\"order.total\")}: {FormatCurrency(selectedTests().reduce((acc, item) => acc + item.price, 0))}\r\n            </Col>\r\n            <Col className=\"col-auto p-2\">\r\n              <Button disabled={selected.every(i => i === false)} onClick={() => setStep(selectedConsent ? OrderStep.Consent : OrderStep.Address)}>{t(\"order.purchase\")}</Button>\r\n            </Col>\r\n          </Row>\r\n        </>}\r\n        {step === OrderStep.Consent && selectedConsent && <ConsentForm consent={selectedConsent} testEventId={props.testEventId} onCancel={() => { setSelected(blankSelection); setStep(OrderStep.Cart) }} onSubmit={() => setStep(OrderStep.Address)} />}\r\n        {step === OrderStep.Address && <AddressForm address={props.address} onCancel={() => setStep(OrderStep.Cart)} testEventId={props.testEventId} onSubmit={() => setStep(OrderStep.Checkout)} />}\r\n        {step === OrderStep.Checkout && <>\r\n          {paymentRequired && clientSecret && stripePromise && <Elements options={options} stripe={stripePromise}>\r\n            <CheckoutForm payment={paymentRequired} testEventId={props.testEventId} items={selectedTests()} onCancel={() => props.onClose()} onComplete={() => setStep(OrderStep.OrderStatus)} />\r\n          </Elements>}\r\n        </>}\r\n        {step === OrderStep.OrderStatus && <>\r\n          <Row className=\"align-items-center\">\r\n            <Col className=\"col-auto\"><CheckCircleFill size={48} className=\"text-success\" /></Col>\r\n            <Col className=\"text-success\">{t(\"order.success\")}</Col>\r\n          </Row>\r\n          <Row className=\"mt-2\">\r\n            <Col></Col>\r\n            <Col className=\"col-auto\">\r\n              <Button onClick={props.onClose}>{t(\"order.close\")}</Button>\r\n            </Col>\r\n          </Row>\r\n        </>}\r\n        </Container>\r\n      </Modal.Body>\r\n    </Modal>\r\n  </>)\r\n}\r\n\r\nexport default observer(OrderTest)\r\n","export const WELLNESS = \"wellness\"\r\nexport const HEALTH_CONFIRM = \"healthconfirm\"\r\nexport const VERIZON = \"verizon\"\r\nexport const BLUESTONE = \"bluestone\"\r\nexport const ALL_IMPLEMENTATIONS = [WELLNESS, HEALTH_CONFIRM, VERIZON, BLUESTONE] as const\r\n\r\nexport type Implementation = typeof ALL_IMPLEMENTATIONS[number]","import React, { useEffect, useState } from \"react\"\r\nimport { Button, Col, Form, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport Consent from \"../../../api/models/Consent\"\r\nimport { saveConsent } from \"../../../api/Consent\"\r\nimport { APIError } from \"../../../api/ObservableFromFetch\"\r\nimport { toast } from \"react-toastify\"\r\nimport { BLUESTONE, Implementation } from \"../../../api/models/registration/Implementation\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport interface ConsentFormProps {\r\n  title?: string\r\n  consent: Consent\r\n  implementation?: Implementation\r\n  testEventId?: number\r\n  onCancel: () => void\r\n  onSubmit: () => void\r\n  onChange?: (accepted: boolean) => void\r\n  initialAccepted?: boolean\r\n}\r\n\r\nexport default function ConsentForm(props: ConsentFormProps) {\r\n  const isBluestone = props.implementation === BLUESTONE\r\n  const { t } = useTranslation()\r\n  const consentText = props.consent.text\r\n  const secondaryConsentText = props.consent.secondaryText\r\n  const initialAccepted = props.initialAccepted ?? false\r\n  const [accepted, setAccepted] = useState(initialAccepted)\r\n  const [acceptedBluestone, setAcceptedBluestone] = useState(!isBluestone || initialAccepted)\r\n  const [acceptedSecondary, setAcceptedSecondary] = useState(initialAccepted)\r\n  const acceptedAll = accepted && acceptedBluestone && (!secondaryConsentText || acceptedSecondary)\r\n\r\n  useEffect(() => {\r\n    props.onChange && props.onChange(accepted && acceptedBluestone && (!secondaryConsentText || acceptedSecondary))\r\n  }, [accepted, acceptedBluestone, secondaryConsentText, acceptedSecondary])\r\n\r\n  function handleSubmit() {\r\n    props.testEventId ? saveConsent(props.testEventId, props.consent.consentId).subscribe({\r\n      next: () => props.onSubmit(),\r\n      error: (e: APIError) => toast.error(t(e.message, { data: e.data }))\r\n    }) : props.onSubmit()\r\n  }\r\n\r\n  return (<>\r\n    {props.title && <Row><Col><h2 className=\"text-primary\">{props.title}</h2></Col></Row>}\r\n    <Row>\r\n      <Col>\r\n        {!!consentText && <div dangerouslySetInnerHTML={{ __html: sanitize(consentText) }} />}\r\n      </Col>\r\n    </Row>\r\n    {isBluestone && <Row className=\"\">\r\n      <Col>\r\n        <Form.Check id=\"accept_bluestone\" inline checked={acceptedBluestone} onChange={() => setAcceptedBluestone(!acceptedBluestone) }/>\r\n        <Form.Label htmlFor=\"accept_bluestone\" className=\"fw-bold text-uppercase\">{t(\"consent.atLeast18\")}</Form.Label>\r\n      </Col>\r\n    </Row>}\r\n    <Row className=\"mb-4\">\r\n      <Col>\r\n        <Form.Check id=\"accept\" inline checked={accepted} onChange={() => setAccepted(!accepted) }/>\r\n        <Form.Label htmlFor=\"accept\" className=\"fw-bold text-uppercase\">{t([`consent.accept_${props.implementation}`, \"consent.accept\"])}</Form.Label>\r\n      </Col>\r\n    </Row>\r\n    {accepted && acceptedBluestone && !!secondaryConsentText && <>\r\n    {<div dangerouslySetInnerHTML={{ __html: sanitize(secondaryConsentText) }} />}\r\n    <Row className=\"mb-4\">\r\n      <Col>\r\n        <Form.Check id=\"secondary\" inline checked={acceptedSecondary} onChange={() => setAcceptedSecondary(!acceptedSecondary) }/>\r\n        <Form.Label htmlFor=\"secondary\" className=\"fw-bold text-uppercase\">{t(\"consent.accept\")}</Form.Label>\r\n      </Col>\r\n    </Row></>}\r\n    {props.testEventId && <Row>\r\n      <Col className=\"me-auto col-auto\">\r\n        <Button variant=\"secondary\" onClick={props.onCancel}>{t(\"consent.back\")}</Button>\r\n      </Col>\r\n      <Col className=\"col-auto\">\r\n        <Button type=\"submit\" onClick={handleSubmit} disabled={!acceptedAll}>{t(\"consent.next\")}</Button>\r\n      </Col>\r\n    </Row>}\r\n  </>)\r\n}\r\n","import React, { useEffect, useState } from \"react\"\r\nimport { toast } from \"react-toastify\"\r\nimport Address from \"../../api/models/Address\"\r\nimport Orderable from \"../../api/models/Orderable\"\r\nimport OrderableTest from \"../../api/models/OrderableTest\"\r\nimport { getOrderableTests } from \"../../api/OrderableTests\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\nimport OrderTest from \"./Modals/OrderTest\"\r\n\r\nexport interface OrderTestCheckerProps {\r\n  testEventId: number\r\n}\r\n\r\nexport default function OrderTestChecker(props: OrderTestCheckerProps) {\r\n  const [translationRef] = useTranslationWithRef()\r\n  const [showOrderable, setShowOrderable] = useState(false)\r\n  const [orderableTests, setOrderableTests] = useState<OrderableTest[]>([])\r\n  const [address, setAddress] = useState<Address>()\r\n\r\n  useEffect(() => {\r\n    var timeout: NodeJS.Timeout\r\n    const subscription = getOrderableTests(props.testEventId).subscribe({\r\n      next: (result: Orderable) => {\r\n        setOrderableTests(result.items || [])\r\n        setAddress(result.address)\r\n        if (result.items.length) {\r\n          timeout = setTimeout(() => {\r\n            if (document.activeElement instanceof HTMLElement) {\r\n              (document.activeElement as HTMLElement).blur()\r\n            }\r\n            setShowOrderable(true)\r\n          }, result.delay * 1000)\r\n        }\r\n      },\r\n      error: e => toast.error(translationRef.current(e.message, { data: e.data }))\r\n    })\r\n    return () => {\r\n      subscription.unsubscribe()\r\n      clearTimeout(timeout)\r\n    }\r\n  }, [props.testEventId, translationRef])\r\n\r\n  return <>\r\n    {showOrderable &&\r\n      <OrderTest testEventId={props.testEventId} tests={orderableTests} address={address} onClose={() => setShowOrderable(false)} />}\r\n  </>\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Printer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var color = _ref.color,\n      size = _ref.size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 16 16\",\n    width: size,\n    height: size,\n    fill: color\n  }, rest), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z\"\n  }));\n});\nPrinter.propTypes = {\n  color: PropTypes.string,\n  size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nPrinter.defaultProps = {\n  color: 'currentColor',\n  size: '1em'\n};\nexport default Printer;","import React, { useCallback, useEffect, useState } from \"react\"\r\nimport { Button, Form, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { GetCoverLetter, SetCoverLetter } from \"../api/CoverLetter\"\r\nimport TestEvent from \"../api/models/TestEvent\"\r\nimport { SubHeader } from \"./Layout/SubHeader\"\r\nimport RangeReport from \"./Results/RangeReport\"\r\nimport ReportSelection, { Mode } from \"./Results/ReportSelection\"\r\nimport TextReport from \"./Results/TextReport\"\r\nimport HistoryReport from \"./Results/HistoryReport\"\r\nimport { Document, DocumentProps, Page, pdfjs } from \"react-pdf\"\r\nimport { setViewed } from \"../api/TestEvent\"\r\nimport OrderTestChecker from \"./Results/OrderTestChecker\"\r\nimport { Printer } from \"react-bootstrap-icons\"\r\nimport printPdf from \"../utils/PrintPdf\"\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`\r\ntype LoadCallback = Required<DocumentProps>['onLoadSuccess']\r\n\r\nexport default function Results() {\r\n  const { t } = useTranslation()\r\n  const [reportMode, setReportMode] = useState(Mode.Interactive)\r\n  const [selectedTestEvent, setSelectedTestEvent] = useState<TestEvent>()\r\n  const [showCoverLetter, setShowCoverLetter] = useState(false)\r\n  const [pdfContent, setPdfContent] = useState(\"\")\r\n  const [viewedCoverLetter, setViewedCoverLetter] = useState(false)\r\n  const [pageCount, setPageCount] = useState<number>(0)\r\n  const onDocumentLoadSuccess: LoadCallback = useCallback((pdf) => {\r\n    setPageCount(pdf.numPages)\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    if (selectedTestEvent && !selectedTestEvent?.disableCoverSheet) {\r\n      const subscription = GetCoverLetter(selectedTestEvent.testEventId).subscribe({\r\n        next: (result: string) => {\r\n          if (result.length > 0) {\r\n            setPdfContent(result)\r\n            setShowCoverLetter(true)\r\n          }\r\n        },\r\n        error: e => toast.error(t(e.message, { data: e.data }))\r\n      })\r\n      return () => subscription.unsubscribe()\r\n    }\r\n  }, [selectedTestEvent])\r\n\r\n  useEffect(() => {\r\n    if (selectedTestEvent && viewedCoverLetter && !showCoverLetter) {\r\n      const subscription = SetCoverLetter(selectedTestEvent.testEventId).subscribe({\r\n        next: () => setViewedCoverLetter(false)\r\n      })\r\n      return () => subscription.unsubscribe()\r\n    }\r\n  }, [selectedTestEvent, viewedCoverLetter, showCoverLetter])\r\n\r\n  useEffect(() => {\r\n    if (selectedTestEvent && !selectedTestEvent.viewed) {\r\n      setViewed(selectedTestEvent.testEventId).subscribe({\r\n        next: () => { selectedTestEvent.viewed = true },\r\n        error: e => toast.error(t(e.message, { data: e.data }))\r\n      })\r\n    }\r\n  }, [selectedTestEvent])\r\n  \r\n  return (<>\r\n    <SubHeader>\r\n      <ReportSelection mode={reportMode} testEvent={selectedTestEvent} onChangeReportMode={setReportMode}\r\n        onChangeTestEvent={(e) => { setSelectedTestEvent(e); setViewedCoverLetter(false) }} />\r\n    </SubHeader>\r\n    {reportMode === Mode.Interactive && selectedTestEvent && <RangeReport testEvent={selectedTestEvent} />}\r\n    {reportMode === Mode.Interpretive && selectedTestEvent && <TextReport testEvent={selectedTestEvent} />}\r\n    {/*showCoverLetter && <CoverLetter content={pdfContent} onHide={() => setShowCoverLetter(false)} />*/}\r\n    {reportMode === Mode.History && selectedTestEvent && <HistoryReport />}\r\n    {showCoverLetter && <Modal show size=\"lg\" fullscreen=\"lg-down\" backdrop=\"static\" onHide={() => setShowCoverLetter(false)} animation={false}>\r\n      <Modal.Header>\r\n        <Button variant=\"secondary\" size=\"sm\" onClick={() => printPdf(pdfContent, \"CoverLetter\")}><Printer />{t(\"print\")}</Button>\r\n        <Form.Check inline id=\"viewedCoverLetter\" type=\"checkbox\" className=\"fw-bold ms-3 h5\" label={t(\"dontShowAgain\")} checked={viewedCoverLetter}\r\n                    onChange={(e: React.ChangeEvent<HTMLInputElement>) => setViewedCoverLetter(e.target.checked)} />    \r\n        <Button className=\"btn-secondary\" onClick={() => setShowCoverLetter(false)}>{t(\"registration.button.close\")}</Button>   \r\n      </Modal.Header>\r\n      <Modal.Body className=\"p-0\">\r\n        <Document file={`data:application/pdf;base64,${pdfContent}`} onLoadSuccess={onDocumentLoadSuccess}>\r\n          {Array.from(new Array(pageCount), (_, index) => (\r\n            <Page key={`page_${index + 1}`} pageNumber={index + 1} className=\"text-center\" width={798} />\r\n          ))}\r\n        </Document>\r\n      </Modal.Body>\r\n    </Modal>}\r\n    {selectedTestEvent && <OrderTestChecker testEventId={selectedTestEvent.testEventId} />}\r\n  </>)\r\n}\r\n","import { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const GetCoverLetter = (testEventId: number) => ObservableFromFetch<string>(`Results/CoverLetter?id=${testEventId}`)\r\nexport const SetCoverLetter = (testEventId: number) => ObservableFromFetch<void>('Results/CoverLetter', testEventId.toString() )","import Consent from \"./models/Consent\"\r\nimport BarcodeRequest from \"./models/registration/BarcodeRequest\"\r\nimport BarcodeResponse from \"./models/registration/BarcodeResponse\"\r\nimport ConsentRequest from \"./models/registration/ConsentRequest\"\r\nimport DemographicsConfigurationRequest from \"./models/registration/DemographicsConfigurationRequest\"\r\nimport DemographicsConfigurationResponse from \"./models/registration/DemographicsConfigurationResponse\"\r\nimport DonorData from \"./models/registration/DonorData\"\r\nimport DonorDataRequest from \"./models/registration/DonorDataRequest\"\r\nimport EmployeeRequest from \"./models/registration/EmployeeRequest\"\r\nimport EmployeeResponse from \"./models/registration/EmployeeResponse\"\r\nimport SaveRequest from \"./models/registration/SaveRequest\"\r\nimport SaveResponse from \"./models/registration/SaveResponse\"\r\nimport VerifyRequest from \"./models/registration/VerifyRequest\"\r\nimport VerifyResponse from \"./models/registration/VerifyResponse\"\r\nimport QuestionRequest from \"./models/registration/QuestionRequest\"\r\nimport QuestionResponse from \"./models/registration/QuestionResponse\"\r\nimport InstructionRequest from \"./models/registration/InstructionRequest\"\r\nimport InstructionResponse from \"./models/registration/InstructionResponse\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\nimport ActivateRequest from \"./models/registration/ActivateRequest\"\r\nimport ActivateResponse from \"./models/registration/ActivateResponse\"\r\n\r\nexport const getBarcode = (params: BarcodeRequest) => ObservableFromFetch<BarcodeResponse>(\"Registration/Barcode\", JSON.stringify(params))\r\nexport const getConsent = (params: ConsentRequest) => ObservableFromFetch<Consent>(\"Registration/Consent\", JSON.stringify(params))\r\nexport const searchEmployee = (params: EmployeeRequest) => ObservableFromFetch<EmployeeResponse>(\"Registration/Demographics/Search\", JSON.stringify(params))\r\nexport const verifyEmployee = (params: VerifyRequest) => ObservableFromFetch<VerifyResponse>(\"Registration/Demographics/Verify\", JSON.stringify(params))\r\nexport const getDonor = () => ObservableFromFetch<VerifyResponse>(\"Registration/Demographics/Donor\")\r\nexport const getDonorData = (params: DonorDataRequest) => ObservableFromFetch<DonorData>(\"Registration/Demographics/Donor\", JSON.stringify(params))\r\nexport const getConfiguration = (params: DemographicsConfigurationRequest) => ObservableFromFetch<DemographicsConfigurationResponse>(\"Registration/Demographics/Configuration\", JSON.stringify(params))\r\nexport const getQuestions = (params: QuestionRequest) => ObservableFromFetch<QuestionResponse[]>(\"Registration/Questions\", JSON.stringify(params))\r\nexport const getInstructions = (params: InstructionRequest) => ObservableFromFetch<InstructionResponse>(\"Registration/Instruction\", JSON.stringify(params))\r\nexport const finalize = (params: SaveRequest) => ObservableFromFetch<SaveResponse>(\"Registration/Finalize\", JSON.stringify(params))\r\nexport const activate = (params: ActivateRequest) => ObservableFromFetch<ActivateResponse>(\"Registration/Shipping\", JSON.stringify(params))\r\n\r\n","export function fixProto(target, prototype) {\n    var setPrototypeOf = Object.setPrototypeOf;\n    setPrototypeOf\n        ? setPrototypeOf(target, prototype)\n        : (target.__proto__ = prototype);\n}\nexport function fixStack(target, fn) {\n    if (fn === void 0) { fn = target.constructor; }\n    var captureStackTrace = Error.captureStackTrace;\n    captureStackTrace && captureStackTrace(target, fn);\n}\n//# sourceMappingURL=utils.js.map","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { fixProto, fixStack } from './utils';\nvar CustomError = (function (_super) {\n    __extends(CustomError, _super);\n    function CustomError(message, options) {\n        var _newTarget = this.constructor;\n        var _this = _super.call(this, message, options) || this;\n        Object.defineProperty(_this, 'name', {\n            value: _newTarget.name,\n            enumerable: false,\n            configurable: true,\n        });\n        fixProto(_this, _newTarget.prototype);\n        fixStack(_this);\n        return _this;\n    }\n    return CustomError;\n}(Error));\nexport { CustomError };\n//# sourceMappingURL=custom-error.js.map","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * Encapsulates a type of hint that a caller may pass to a barcode reader to help it\n * more quickly or accurately decode it. It is up to implementations to decide what,\n * if anything, to do with the information that is supplied.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n * @see Reader#decode(BinaryBitmap,java.util.Map)\n */\nvar DecodeHintType;\n(function (DecodeHintType) {\n    /**\n     * Unspecified, application-specific hint. Maps to an unspecified {@link Object}.\n     */\n    DecodeHintType[DecodeHintType[\"OTHER\"] = 0] = \"OTHER\"; /*(Object.class)*/\n    /**\n     * Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;\n     * use {@link Boolean#TRUE}.\n     */\n    DecodeHintType[DecodeHintType[\"PURE_BARCODE\"] = 1] = \"PURE_BARCODE\"; /*(Void.class)*/\n    /**\n     * Image is known to be of one of a few possible formats.\n     * Maps to a {@link List} of {@link BarcodeFormat}s.\n     */\n    DecodeHintType[DecodeHintType[\"POSSIBLE_FORMATS\"] = 2] = \"POSSIBLE_FORMATS\"; /*(List.class)*/\n    /**\n     * Spend more time to try to find a barcode; optimize for accuracy, not speed.\n     * Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n     */\n    DecodeHintType[DecodeHintType[\"TRY_HARDER\"] = 3] = \"TRY_HARDER\"; /*(Void.class)*/\n    /**\n     * Specifies what character encoding to use when decoding, where applicable (type String)\n     */\n    DecodeHintType[DecodeHintType[\"CHARACTER_SET\"] = 4] = \"CHARACTER_SET\"; /*(String.class)*/\n    /**\n     * Allowed lengths of encoded data -- reject anything else. Maps to an {@code Int32Array}.\n     */\n    DecodeHintType[DecodeHintType[\"ALLOWED_LENGTHS\"] = 5] = \"ALLOWED_LENGTHS\"; /*(Int32Array.class)*/\n    /**\n     * Assume Code 39 codes employ a check digit. Doesn't matter what it maps to;\n     * use {@link Boolean#TRUE}.\n     */\n    DecodeHintType[DecodeHintType[\"ASSUME_CODE_39_CHECK_DIGIT\"] = 6] = \"ASSUME_CODE_39_CHECK_DIGIT\"; /*(Void.class)*/\n    /**\n     * Assume the barcode is being processed as a GS1 barcode, and modify behavior as needed.\n     * For example this affects FNC1 handling for Code 128 (aka GS1-128). Doesn't matter what it maps to;\n     * use {@link Boolean#TRUE}.\n     */\n    DecodeHintType[DecodeHintType[\"ASSUME_GS1\"] = 7] = \"ASSUME_GS1\"; /*(Void.class)*/\n    /**\n     * If true, return the start and end digits in a Codabar barcode instead of stripping them. They\n     * are alpha, whereas the rest are numeric. By default, they are stripped, but this causes them\n     * to not be. Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n     */\n    DecodeHintType[DecodeHintType[\"RETURN_CODABAR_START_END\"] = 8] = \"RETURN_CODABAR_START_END\"; /*(Void.class)*/\n    /**\n     * The caller needs to be notified via callback when a possible {@link ResultPoint}\n     * is found. Maps to a {@link ResultPointCallback}.\n     */\n    DecodeHintType[DecodeHintType[\"NEED_RESULT_POINT_CALLBACK\"] = 9] = \"NEED_RESULT_POINT_CALLBACK\"; /*(ResultPointCallback.class)*/\n    /**\n     * Allowed extension lengths for EAN or UPC barcodes. Other formats will ignore this.\n     * Maps to an {@code Int32Array} of the allowed extension lengths, for example [2], [5], or [2, 5].\n     * If it is optional to have an extension, do not set this hint. If this is set,\n     * and a UPC or EAN barcode is found but an extension is not, then no result will be returned\n     * at all.\n     */\n    DecodeHintType[DecodeHintType[\"ALLOWED_EAN_EXTENSIONS\"] = 10] = \"ALLOWED_EAN_EXTENSIONS\"; /*(Int32Array.class)*/\n    // End of enumeration values.\n    /**\n     * Data type the hint is expecting.\n     * Among the possible values the {@link Void} stands out as being used for\n     * hints that do not expect a value to be supplied (flag hints). Such hints\n     * will possibly have their value ignored, or replaced by a\n     * {@link Boolean#TRUE}. Hint suppliers should probably use\n     * {@link Boolean#TRUE} as directed by the actual hint documentation.\n     */\n    // private valueType: Class<?>\n    // DecodeHintType(valueType: Class<?>) {\n    //   this.valueType = valueType\n    // }\n    // public getValueType(): Class<?> {\n    //   return valueType\n    // }\n})(DecodeHintType || (DecodeHintType = {}));\nexport default DecodeHintType;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { CustomError } from 'ts-custom-error';\n/**\n * Custom Error class of type Exception.\n */\nvar Exception = /** @class */ (function (_super) {\n    __extends(Exception, _super);\n    /**\n     * Allows Exception to be constructed directly\n     * with some message and prototype definition.\n     */\n    function Exception(message) {\n        if (message === void 0) { message = undefined; }\n        var _this = _super.call(this, message) || this;\n        _this.message = message;\n        return _this;\n    }\n    Exception.prototype.getKind = function () {\n        var ex = this.constructor;\n        return ex.kind;\n    };\n    /**\n     * It's typed as string so it can be extended and overriden.\n     */\n    Exception.kind = 'Exception';\n    return Exception;\n}(CustomError));\nexport default Exception;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ArgumentException = /** @class */ (function (_super) {\n    __extends(ArgumentException, _super);\n    function ArgumentException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ArgumentException.kind = 'ArgumentException';\n    return ArgumentException;\n}(Exception));\nexport default ArgumentException;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar IllegalArgumentException = /** @class */ (function (_super) {\n    __extends(IllegalArgumentException, _super);\n    function IllegalArgumentException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IllegalArgumentException.kind = 'IllegalArgumentException';\n    return IllegalArgumentException;\n}(Exception));\nexport default IllegalArgumentException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from './IllegalArgumentException';\nvar BinaryBitmap = /** @class */ (function () {\n    function BinaryBitmap(binarizer) {\n        this.binarizer = binarizer;\n        if (binarizer === null) {\n            throw new IllegalArgumentException('Binarizer must be non-null.');\n        }\n    }\n    /**\n     * @return The width of the bitmap.\n     */\n    BinaryBitmap.prototype.getWidth = function () {\n        return this.binarizer.getWidth();\n    };\n    /**\n     * @return The height of the bitmap.\n     */\n    BinaryBitmap.prototype.getHeight = function () {\n        return this.binarizer.getHeight();\n    };\n    /**\n     * Converts one row of luminance data to 1 bit data. May actually do the conversion, or return\n     * cached data. Callers should assume this method is expensive and call it as seldom as possible.\n     * This method is intended for decoding 1D barcodes and may choose to apply sharpening.\n     *\n     * @param y The row to fetch, which must be in [0, bitmap height)\n     * @param row An optional preallocated array. If null or too small, it will be ignored.\n     *            If used, the Binarizer will call BitArray.clear(). Always use the returned object.\n     * @return The array of bits for this row (true means black).\n     * @throws NotFoundException if row can't be binarized\n     */\n    BinaryBitmap.prototype.getBlackRow = function (y /*int*/, row) {\n        return this.binarizer.getBlackRow(y, row);\n    };\n    /**\n     * Converts a 2D array of luminance data to 1 bit. As above, assume this method is expensive\n     * and do not call it repeatedly. This method is intended for decoding 2D barcodes and may or\n     * may not apply sharpening. Therefore, a row from this matrix may not be identical to one\n     * fetched using getBlackRow(), so don't mix and match between them.\n     *\n     * @return The 2D array of bits for the image (true means black).\n     * @throws NotFoundException if image can't be binarized to make a matrix\n     */\n    BinaryBitmap.prototype.getBlackMatrix = function () {\n        // The matrix is created on demand the first time it is requested, then cached. There are two\n        // reasons for this:\n        // 1. This work will never be done if the caller only installs 1D Reader objects, or if a\n        //    1D Reader finds a barcode before the 2D Readers run.\n        // 2. This work will only be done once even if the caller installs multiple 2D Readers.\n        if (this.matrix === null || this.matrix === undefined) {\n            this.matrix = this.binarizer.getBlackMatrix();\n        }\n        return this.matrix;\n    };\n    /**\n     * @return Whether this bitmap can be cropped.\n     */\n    BinaryBitmap.prototype.isCropSupported = function () {\n        return this.binarizer.getLuminanceSource().isCropSupported();\n    };\n    /**\n     * Returns a new object with cropped image data. Implementations may keep a reference to the\n     * original data rather than a copy. Only callable if isCropSupported() is true.\n     *\n     * @param left The left coordinate, which must be in [0,getWidth())\n     * @param top The top coordinate, which must be in [0,getHeight())\n     * @param width The width of the rectangle to crop.\n     * @param height The height of the rectangle to crop.\n     * @return A cropped version of this object.\n     */\n    BinaryBitmap.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        var newSource = this.binarizer.getLuminanceSource().crop(left, top, width, height);\n        return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n    };\n    /**\n     * @return Whether this bitmap supports counter-clockwise rotation.\n     */\n    BinaryBitmap.prototype.isRotateSupported = function () {\n        return this.binarizer.getLuminanceSource().isRotateSupported();\n    };\n    /**\n     * Returns a new object with rotated image data by 90 degrees counterclockwise.\n     * Only callable if {@link #isRotateSupported()} is true.\n     *\n     * @return A rotated version of this object.\n     */\n    BinaryBitmap.prototype.rotateCounterClockwise = function () {\n        var newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise();\n        return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n    };\n    /**\n     * Returns a new object with rotated image data by 45 degrees counterclockwise.\n     * Only callable if {@link #isRotateSupported()} is true.\n     *\n     * @return A rotated version of this object.\n     */\n    BinaryBitmap.prototype.rotateCounterClockwise45 = function () {\n        var newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise45();\n        return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n    };\n    /*@Override*/\n    BinaryBitmap.prototype.toString = function () {\n        try {\n            return this.getBlackMatrix().toString();\n        }\n        catch (e /*: NotFoundException*/) {\n            return '';\n        }\n    };\n    return BinaryBitmap;\n}());\nexport default BinaryBitmap;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ChecksumException = /** @class */ (function (_super) {\n    __extends(ChecksumException, _super);\n    function ChecksumException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ChecksumException.getChecksumInstance = function () {\n        return new ChecksumException();\n    };\n    ChecksumException.kind = 'ChecksumException';\n    return ChecksumException;\n}(Exception));\nexport default ChecksumException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * This class hierarchy provides a set of methods to convert luminance data to 1 bit data.\n * It allows the algorithm to vary polymorphically, for example allowing a very expensive\n * thresholding technique for servers and a fast one for mobile. It also permits the implementation\n * to vary, e.g. a JNI version for Android and a Java fallback version for other platforms.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar Binarizer = /** @class */ (function () {\n    function Binarizer(source) {\n        this.source = source;\n    }\n    Binarizer.prototype.getLuminanceSource = function () {\n        return this.source;\n    };\n    Binarizer.prototype.getWidth = function () {\n        return this.source.getWidth();\n    };\n    Binarizer.prototype.getHeight = function () {\n        return this.source.getHeight();\n    };\n    return Binarizer;\n}());\nexport default Binarizer;\n","var System = /** @class */ (function () {\n    function System() {\n    }\n    // public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)\n    /**\n     * Makes a copy of a array.\n     */\n    System.arraycopy = function (src, srcPos, dest, destPos, length) {\n        // TODO: better use split or set?\n        while (length--) {\n            dest[destPos++] = src[srcPos++];\n        }\n    };\n    /**\n     * Returns the current time in milliseconds.\n     */\n    System.currentTimeMillis = function () {\n        return Date.now();\n    };\n    return System;\n}());\nexport default System;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar IndexOutOfBoundsException = /** @class */ (function (_super) {\n    __extends(IndexOutOfBoundsException, _super);\n    function IndexOutOfBoundsException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IndexOutOfBoundsException.kind = 'IndexOutOfBoundsException';\n    return IndexOutOfBoundsException;\n}(Exception));\nexport default IndexOutOfBoundsException;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport IndexOutOfBoundsException from './IndexOutOfBoundsException';\n/**\n * Custom Error class of type Exception.\n */\nvar ArrayIndexOutOfBoundsException = /** @class */ (function (_super) {\n    __extends(ArrayIndexOutOfBoundsException, _super);\n    function ArrayIndexOutOfBoundsException(index, message) {\n        if (index === void 0) { index = undefined; }\n        if (message === void 0) { message = undefined; }\n        var _this = _super.call(this, message) || this;\n        _this.index = index;\n        _this.message = message;\n        return _this;\n    }\n    ArrayIndexOutOfBoundsException.kind = 'ArrayIndexOutOfBoundsException';\n    return ArrayIndexOutOfBoundsException;\n}(IndexOutOfBoundsException));\nexport default ArrayIndexOutOfBoundsException;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport System from './System';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport ArrayIndexOutOfBoundsException from '../ArrayIndexOutOfBoundsException';\nvar Arrays = /** @class */ (function () {\n    function Arrays() {\n    }\n    /**\n     * Assigns the specified int value to each element of the specified array\n     * of ints.\n     *\n     * @param a the array to be filled\n     * @param val the value to be stored in all elements of the array\n     */\n    Arrays.fill = function (a, val) {\n        for (var i = 0, len = a.length; i < len; i++)\n            a[i] = val;\n    };\n    /**\n     * Assigns the specified int value to each element of the specified\n     * range of the specified array of ints.  The range to be filled\n     * extends from index {@code fromIndex}, inclusive, to index\n     * {@code toIndex}, exclusive.  (If {@code fromIndex==toIndex}, the\n     * range to be filled is empty.)\n     *\n     * @param a the array to be filled\n     * @param fromIndex the index of the first element (inclusive) to be\n     *        filled with the specified value\n     * @param toIndex the index of the last element (exclusive) to be\n     *        filled with the specified value\n     * @param val the value to be stored in all elements of the array\n     * @throws IllegalArgumentException if {@code fromIndex > toIndex}\n     * @throws ArrayIndexOutOfBoundsException if {@code fromIndex < 0} or\n     *         {@code toIndex > a.length}\n     */\n    Arrays.fillWithin = function (a, fromIndex, toIndex, val) {\n        Arrays.rangeCheck(a.length, fromIndex, toIndex);\n        for (var i = fromIndex; i < toIndex; i++)\n            a[i] = val;\n    };\n    /**\n     * Checks that {@code fromIndex} and {@code toIndex} are in\n     * the range and throws an exception if they aren't.\n     */\n    Arrays.rangeCheck = function (arrayLength, fromIndex, toIndex) {\n        if (fromIndex > toIndex) {\n            throw new IllegalArgumentException('fromIndex(' + fromIndex + ') > toIndex(' + toIndex + ')');\n        }\n        if (fromIndex < 0) {\n            throw new ArrayIndexOutOfBoundsException(fromIndex);\n        }\n        if (toIndex > arrayLength) {\n            throw new ArrayIndexOutOfBoundsException(toIndex);\n        }\n    };\n    Arrays.asList = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        return args;\n    };\n    Arrays.create = function (rows, cols, value) {\n        var arr = Array.from({ length: rows });\n        return arr.map(function (x) { return Array.from({ length: cols }).fill(value); });\n    };\n    Arrays.createInt32Array = function (rows, cols, value) {\n        var arr = Array.from({ length: rows });\n        return arr.map(function (x) { return Int32Array.from({ length: cols }).fill(value); });\n    };\n    Arrays.equals = function (first, second) {\n        if (!first) {\n            return false;\n        }\n        if (!second) {\n            return false;\n        }\n        if (!first.length) {\n            return false;\n        }\n        if (!second.length) {\n            return false;\n        }\n        if (first.length !== second.length) {\n            return false;\n        }\n        for (var i = 0, length_1 = first.length; i < length_1; i++) {\n            if (first[i] !== second[i]) {\n                return false;\n            }\n        }\n        return true;\n    };\n    Arrays.hashCode = function (a) {\n        var e_1, _a;\n        if (a === null) {\n            return 0;\n        }\n        var result = 1;\n        try {\n            for (var a_1 = __values(a), a_1_1 = a_1.next(); !a_1_1.done; a_1_1 = a_1.next()) {\n                var element = a_1_1.value;\n                result = 31 * result + element;\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (a_1_1 && !a_1_1.done && (_a = a_1.return)) _a.call(a_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return result;\n    };\n    Arrays.fillUint8Array = function (a, value) {\n        for (var i = 0; i !== a.length; i++) {\n            a[i] = value;\n        }\n    };\n    Arrays.copyOf = function (original, newLength) {\n        return original.slice(0, newLength);\n    };\n    Arrays.copyOfUint8Array = function (original, newLength) {\n        if (original.length <= newLength) {\n            var newArray = new Uint8Array(newLength);\n            newArray.set(original);\n            return newArray;\n        }\n        return original.slice(0, newLength);\n    };\n    Arrays.copyOfRange = function (original, from, to) {\n        var newLength = to - from;\n        var copy = new Int32Array(newLength);\n        System.arraycopy(original, from, copy, 0, newLength);\n        return copy;\n    };\n    /*\n    * Returns the index of of the element in a sorted array or (-n-1) where n is the insertion point\n    * for the new element.\n    * Parameters:\n    *     ar - A sorted array\n    *     el - An element to search for\n    *     comparator - A comparator function. The function takes two arguments: (a, b) and returns:\n    *        a negative number  if a is less than b;\n    *        0 if a is equal to b;\n    *        a positive number of a is greater than b.\n    * The array may contain duplicate elements. If there are more than one equal elements in the array,\n    * the returned value can be the index of any one of the equal elements.\n    *\n    * http://jsfiddle.net/aryzhov/pkfst550/\n    */\n    Arrays.binarySearch = function (ar, el, comparator) {\n        if (undefined === comparator) {\n            comparator = Arrays.numberComparator;\n        }\n        var m = 0;\n        var n = ar.length - 1;\n        while (m <= n) {\n            var k = (n + m) >> 1;\n            var cmp = comparator(el, ar[k]);\n            if (cmp > 0) {\n                m = k + 1;\n            }\n            else if (cmp < 0) {\n                n = k - 1;\n            }\n            else {\n                return k;\n            }\n        }\n        return -m - 1;\n    };\n    Arrays.numberComparator = function (a, b) {\n        return a - b;\n    };\n    return Arrays;\n}());\nexport default Arrays;\n","/**\n * Ponyfill for Java's Integer class.\n */\nvar Integer = /** @class */ (function () {\n    function Integer() {\n    }\n    Integer.numberOfTrailingZeros = function (i) {\n        var y;\n        if (i === 0)\n            return 32;\n        var n = 31;\n        y = i << 16;\n        if (y !== 0) {\n            n -= 16;\n            i = y;\n        }\n        y = i << 8;\n        if (y !== 0) {\n            n -= 8;\n            i = y;\n        }\n        y = i << 4;\n        if (y !== 0) {\n            n -= 4;\n            i = y;\n        }\n        y = i << 2;\n        if (y !== 0) {\n            n -= 2;\n            i = y;\n        }\n        return n - ((i << 1) >>> 31);\n    };\n    Integer.numberOfLeadingZeros = function (i) {\n        // HD, Figure 5-6\n        if (i === 0) {\n            return 32;\n        }\n        var n = 1;\n        if (i >>> 16 === 0) {\n            n += 16;\n            i <<= 16;\n        }\n        if (i >>> 24 === 0) {\n            n += 8;\n            i <<= 8;\n        }\n        if (i >>> 28 === 0) {\n            n += 4;\n            i <<= 4;\n        }\n        if (i >>> 30 === 0) {\n            n += 2;\n            i <<= 2;\n        }\n        n -= i >>> 31;\n        return n;\n    };\n    Integer.toHexString = function (i) {\n        return i.toString(16);\n    };\n    Integer.toBinaryString = function (intNumber) {\n        return String(parseInt(String(intNumber), 2));\n    };\n    // Returns the number of one-bits in the two's complement binary representation of the specified int value. This function is sometimes referred to as the population count.\n    // Returns:\n    // the number of one-bits in the two's complement binary representation of the specified int value.\n    Integer.bitCount = function (i) {\n        // HD, Figure 5-2\n        i = i - ((i >>> 1) & 0x55555555);\n        i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n        i = (i + (i >>> 4)) & 0x0f0f0f0f;\n        i = i + (i >>> 8);\n        i = i + (i >>> 16);\n        return i & 0x3f;\n    };\n    Integer.truncDivision = function (dividend, divisor) {\n        return Math.trunc(dividend / divisor);\n    };\n    /**\n     * Converts A string to an integer.\n     * @param s A string to convert into a number.\n     * @param radix A value between 2 and 36 that specifies the base of the number in numString. If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal. All other strings are considered decimal.\n     */\n    Integer.parseInt = function (num, radix) {\n        if (radix === void 0) { radix = undefined; }\n        return parseInt(num, radix);\n    };\n    Integer.MIN_VALUE_32_BITS = -2147483648;\n    Integer.MAX_VALUE = Number.MAX_SAFE_INTEGER;\n    return Integer;\n}());\nexport default Integer;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport Arrays from '../util/Arrays';\nimport Integer from '../util/Integer';\nimport System from '../util/System';\n/**\n * <p>A simple, fast array of bits, represented compactly by an array of ints internally.</p>\n *\n * @author Sean Owen\n */\nvar BitArray /*implements Cloneable*/ = /** @class */ (function () {\n    // public constructor() {\n    //   this.size = 0\n    //   this.bits = new Int32Array(1)\n    // }\n    // public constructor(size?: number /*int*/) {\n    //   if (undefined === size) {\n    //     this.size = 0\n    //   } else {\n    //     this.size = size\n    //   }\n    //   this.bits = this.makeArray(size)\n    // }\n    // For testing only\n    function BitArray(size /*int*/, bits) {\n        if (undefined === size) {\n            this.size = 0;\n            this.bits = new Int32Array(1);\n        }\n        else {\n            this.size = size;\n            if (undefined === bits || null === bits) {\n                this.bits = BitArray.makeArray(size);\n            }\n            else {\n                this.bits = bits;\n            }\n        }\n    }\n    BitArray.prototype.getSize = function () {\n        return this.size;\n    };\n    BitArray.prototype.getSizeInBytes = function () {\n        return Math.floor((this.size + 7) / 8);\n    };\n    BitArray.prototype.ensureCapacity = function (size /*int*/) {\n        if (size > this.bits.length * 32) {\n            var newBits = BitArray.makeArray(size);\n            System.arraycopy(this.bits, 0, newBits, 0, this.bits.length);\n            this.bits = newBits;\n        }\n    };\n    /**\n     * @param i bit to get\n     * @return true iff bit i is set\n     */\n    BitArray.prototype.get = function (i /*int*/) {\n        return (this.bits[Math.floor(i / 32)] & (1 << (i & 0x1F))) !== 0;\n    };\n    /**\n     * Sets bit i.\n     *\n     * @param i bit to set\n     */\n    BitArray.prototype.set = function (i /*int*/) {\n        this.bits[Math.floor(i / 32)] |= 1 << (i & 0x1F);\n    };\n    /**\n     * Flips bit i.\n     *\n     * @param i bit to set\n     */\n    BitArray.prototype.flip = function (i /*int*/) {\n        this.bits[Math.floor(i / 32)] ^= 1 << (i & 0x1F);\n    };\n    /**\n     * @param from first bit to check\n     * @return index of first bit that is set, starting from the given index, or size if none are set\n     *  at or beyond this given index\n     * @see #getNextUnset(int)\n     */\n    BitArray.prototype.getNextSet = function (from /*int*/) {\n        var size = this.size;\n        if (from >= size) {\n            return size;\n        }\n        var bits = this.bits;\n        var bitsOffset = Math.floor(from / 32);\n        var currentBits = bits[bitsOffset];\n        // mask off lesser bits first\n        currentBits &= ~((1 << (from & 0x1F)) - 1);\n        var length = bits.length;\n        while (currentBits === 0) {\n            if (++bitsOffset === length) {\n                return size;\n            }\n            currentBits = bits[bitsOffset];\n        }\n        var result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);\n        return result > size ? size : result;\n    };\n    /**\n     * @param from index to start looking for unset bit\n     * @return index of next unset bit, or {@code size} if none are unset until the end\n     * @see #getNextSet(int)\n     */\n    BitArray.prototype.getNextUnset = function (from /*int*/) {\n        var size = this.size;\n        if (from >= size) {\n            return size;\n        }\n        var bits = this.bits;\n        var bitsOffset = Math.floor(from / 32);\n        var currentBits = ~bits[bitsOffset];\n        // mask off lesser bits first\n        currentBits &= ~((1 << (from & 0x1F)) - 1);\n        var length = bits.length;\n        while (currentBits === 0) {\n            if (++bitsOffset === length) {\n                return size;\n            }\n            currentBits = ~bits[bitsOffset];\n        }\n        var result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);\n        return result > size ? size : result;\n    };\n    /**\n     * Sets a block of 32 bits, starting at bit i.\n     *\n     * @param i first bit to set\n     * @param newBits the new value of the next 32 bits. Note again that the least-significant bit\n     * corresponds to bit i, the next-least-significant to i+1, and so on.\n     */\n    BitArray.prototype.setBulk = function (i /*int*/, newBits /*int*/) {\n        this.bits[Math.floor(i / 32)] = newBits;\n    };\n    /**\n     * Sets a range of bits.\n     *\n     * @param start start of range, inclusive.\n     * @param end end of range, exclusive\n     */\n    BitArray.prototype.setRange = function (start /*int*/, end /*int*/) {\n        if (end < start || start < 0 || end > this.size) {\n            throw new IllegalArgumentException();\n        }\n        if (end === start) {\n            return;\n        }\n        end--; // will be easier to treat this as the last actually set bit -- inclusive\n        var firstInt = Math.floor(start / 32);\n        var lastInt = Math.floor(end / 32);\n        var bits = this.bits;\n        for (var i = firstInt; i <= lastInt; i++) {\n            var firstBit = i > firstInt ? 0 : start & 0x1F;\n            var lastBit = i < lastInt ? 31 : end & 0x1F;\n            // Ones from firstBit to lastBit, inclusive\n            var mask = (2 << lastBit) - (1 << firstBit);\n            bits[i] |= mask;\n        }\n    };\n    /**\n     * Clears all bits (sets to false).\n     */\n    BitArray.prototype.clear = function () {\n        var max = this.bits.length;\n        var bits = this.bits;\n        for (var i = 0; i < max; i++) {\n            bits[i] = 0;\n        }\n    };\n    /**\n     * Efficient method to check if a range of bits is set, or not set.\n     *\n     * @param start start of range, inclusive.\n     * @param end end of range, exclusive\n     * @param value if true, checks that bits in range are set, otherwise checks that they are not set\n     * @return true iff all bits are set or not set in range, according to value argument\n     * @throws IllegalArgumentException if end is less than start or the range is not contained in the array\n     */\n    BitArray.prototype.isRange = function (start /*int*/, end /*int*/, value) {\n        if (end < start || start < 0 || end > this.size) {\n            throw new IllegalArgumentException();\n        }\n        if (end === start) {\n            return true; // empty range matches\n        }\n        end--; // will be easier to treat this as the last actually set bit -- inclusive\n        var firstInt = Math.floor(start / 32);\n        var lastInt = Math.floor(end / 32);\n        var bits = this.bits;\n        for (var i = firstInt; i <= lastInt; i++) {\n            var firstBit = i > firstInt ? 0 : start & 0x1F;\n            var lastBit = i < lastInt ? 31 : end & 0x1F;\n            // Ones from firstBit to lastBit, inclusive\n            var mask = (2 << lastBit) - (1 << firstBit) & 0xFFFFFFFF;\n            // TYPESCRIPTPORT: & 0xFFFFFFFF added to discard anything after 32 bits, as ES has 53 bits\n            // Return false if we're looking for 1s and the masked bits[i] isn't all 1s (is: that,\n            // equals the mask, or we're looking for 0s and the masked portion is not all 0s\n            if ((bits[i] & mask) !== (value ? mask : 0)) {\n                return false;\n            }\n        }\n        return true;\n    };\n    BitArray.prototype.appendBit = function (bit) {\n        this.ensureCapacity(this.size + 1);\n        if (bit) {\n            this.bits[Math.floor(this.size / 32)] |= 1 << (this.size & 0x1F);\n        }\n        this.size++;\n    };\n    /**\n     * Appends the least-significant bits, from value, in order from most-significant to\n     * least-significant. For example, appending 6 bits from 0x000001E will append the bits\n     * 0, 1, 1, 1, 1, 0 in that order.\n     *\n     * @param value {@code int} containing bits to append\n     * @param numBits bits from value to append\n     */\n    BitArray.prototype.appendBits = function (value /*int*/, numBits /*int*/) {\n        if (numBits < 0 || numBits > 32) {\n            throw new IllegalArgumentException('Num bits must be between 0 and 32');\n        }\n        this.ensureCapacity(this.size + numBits);\n        // const appendBit = this.appendBit;\n        for (var numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) {\n            this.appendBit(((value >> (numBitsLeft - 1)) & 0x01) === 1);\n        }\n    };\n    BitArray.prototype.appendBitArray = function (other) {\n        var otherSize = other.size;\n        this.ensureCapacity(this.size + otherSize);\n        // const appendBit = this.appendBit;\n        for (var i = 0; i < otherSize; i++) {\n            this.appendBit(other.get(i));\n        }\n    };\n    BitArray.prototype.xor = function (other) {\n        if (this.size !== other.size) {\n            throw new IllegalArgumentException('Sizes don\\'t match');\n        }\n        var bits = this.bits;\n        for (var i = 0, length_1 = bits.length; i < length_1; i++) {\n            // The last int could be incomplete (i.e. not have 32 bits in\n            // it) but there is no problem since 0 XOR 0 == 0.\n            bits[i] ^= other.bits[i];\n        }\n    };\n    /**\n     *\n     * @param bitOffset first bit to start writing\n     * @param array array to write into. Bytes are written most-significant byte first. This is the opposite\n     *  of the internal representation, which is exposed by {@link #getBitArray()}\n     * @param offset position in array to start writing\n     * @param numBytes how many bytes to write\n     */\n    BitArray.prototype.toBytes = function (bitOffset /*int*/, array, offset /*int*/, numBytes /*int*/) {\n        for (var i = 0; i < numBytes; i++) {\n            var theByte = 0;\n            for (var j = 0; j < 8; j++) {\n                if (this.get(bitOffset)) {\n                    theByte |= 1 << (7 - j);\n                }\n                bitOffset++;\n            }\n            array[offset + i] = /*(byte)*/ theByte;\n        }\n    };\n    /**\n     * @return underlying array of ints. The first element holds the first 32 bits, and the least\n     *         significant bit is bit 0.\n     */\n    BitArray.prototype.getBitArray = function () {\n        return this.bits;\n    };\n    /**\n     * Reverses all bits in the array.\n     */\n    BitArray.prototype.reverse = function () {\n        var newBits = new Int32Array(this.bits.length);\n        // reverse all int's first\n        var len = Math.floor((this.size - 1) / 32);\n        var oldBitsLen = len + 1;\n        var bits = this.bits;\n        for (var i = 0; i < oldBitsLen; i++) {\n            var x = bits[i];\n            x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1);\n            x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2);\n            x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4);\n            x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8);\n            x = ((x >> 16) & 0x0000ffff) | ((x & 0x0000ffff) << 16);\n            newBits[len - i] = /*(int)*/ x;\n        }\n        // now correct the int's if the bit size isn't a multiple of 32\n        if (this.size !== oldBitsLen * 32) {\n            var leftOffset = oldBitsLen * 32 - this.size;\n            var currentInt = newBits[0] >>> leftOffset;\n            for (var i = 1; i < oldBitsLen; i++) {\n                var nextInt = newBits[i];\n                currentInt |= nextInt << (32 - leftOffset);\n                newBits[i - 1] = currentInt;\n                currentInt = nextInt >>> leftOffset;\n            }\n            newBits[oldBitsLen - 1] = currentInt;\n        }\n        this.bits = newBits;\n    };\n    BitArray.makeArray = function (size /*int*/) {\n        return new Int32Array(Math.floor((size + 31) / 32));\n    };\n    /*@Override*/\n    BitArray.prototype.equals = function (o) {\n        if (!(o instanceof BitArray)) {\n            return false;\n        }\n        var other = o;\n        return this.size === other.size && Arrays.equals(this.bits, other.bits);\n    };\n    /*@Override*/\n    BitArray.prototype.hashCode = function () {\n        return 31 * this.size + Arrays.hashCode(this.bits);\n    };\n    /*@Override*/\n    BitArray.prototype.toString = function () {\n        var result = '';\n        for (var i = 0, size = this.size; i < size; i++) {\n            if ((i & 0x07) === 0) {\n                result += ' ';\n            }\n            result += this.get(i) ? 'X' : '.';\n        }\n        return result;\n    };\n    /*@Override*/\n    BitArray.prototype.clone = function () {\n        return new BitArray(this.size, this.bits.slice());\n    };\n    return BitArray;\n}());\nexport default BitArray;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.common {*/\nimport FormatException from '../FormatException';\n/*import java.util.HashMap;*/\n/*import java.util.Map;*/\nexport var CharacterSetValueIdentifiers;\n(function (CharacterSetValueIdentifiers) {\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp437\"] = 0] = \"Cp437\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_1\"] = 1] = \"ISO8859_1\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_2\"] = 2] = \"ISO8859_2\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_3\"] = 3] = \"ISO8859_3\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_4\"] = 4] = \"ISO8859_4\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_5\"] = 5] = \"ISO8859_5\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_6\"] = 6] = \"ISO8859_6\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_7\"] = 7] = \"ISO8859_7\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_8\"] = 8] = \"ISO8859_8\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_9\"] = 9] = \"ISO8859_9\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_10\"] = 10] = \"ISO8859_10\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_11\"] = 11] = \"ISO8859_11\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_13\"] = 12] = \"ISO8859_13\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_14\"] = 13] = \"ISO8859_14\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_15\"] = 14] = \"ISO8859_15\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_16\"] = 15] = \"ISO8859_16\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"SJIS\"] = 16] = \"SJIS\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1250\"] = 17] = \"Cp1250\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1251\"] = 18] = \"Cp1251\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1252\"] = 19] = \"Cp1252\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1256\"] = 20] = \"Cp1256\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UnicodeBigUnmarked\"] = 21] = \"UnicodeBigUnmarked\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UTF8\"] = 22] = \"UTF8\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ASCII\"] = 23] = \"ASCII\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Big5\"] = 24] = \"Big5\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"GB18030\"] = 25] = \"GB18030\";\n    CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"EUC_KR\"] = 26] = \"EUC_KR\";\n})(CharacterSetValueIdentifiers || (CharacterSetValueIdentifiers = {}));\n/**\n * Encapsulates a Character Set ECI, according to \"Extended Channel Interpretations\" 5.3.1.1\n * of ISO 18004.\n *\n * @author Sean Owen\n */\nvar CharacterSetECI = /** @class */ (function () {\n    function CharacterSetECI(valueIdentifier, valuesParam, name) {\n        var e_1, _a;\n        var otherEncodingNames = [];\n        for (var _i = 3; _i < arguments.length; _i++) {\n            otherEncodingNames[_i - 3] = arguments[_i];\n        }\n        this.valueIdentifier = valueIdentifier;\n        this.name = name;\n        if (typeof valuesParam === 'number') {\n            this.values = Int32Array.from([valuesParam]);\n        }\n        else {\n            this.values = valuesParam;\n        }\n        this.otherEncodingNames = otherEncodingNames;\n        CharacterSetECI.VALUE_IDENTIFIER_TO_ECI.set(valueIdentifier, this);\n        CharacterSetECI.NAME_TO_ECI.set(name, this);\n        var values = this.values;\n        for (var i = 0, length_1 = values.length; i !== length_1; i++) {\n            var v = values[i];\n            CharacterSetECI.VALUES_TO_ECI.set(v, this);\n        }\n        try {\n            for (var otherEncodingNames_1 = __values(otherEncodingNames), otherEncodingNames_1_1 = otherEncodingNames_1.next(); !otherEncodingNames_1_1.done; otherEncodingNames_1_1 = otherEncodingNames_1.next()) {\n                var otherName = otherEncodingNames_1_1.value;\n                CharacterSetECI.NAME_TO_ECI.set(otherName, this);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (otherEncodingNames_1_1 && !otherEncodingNames_1_1.done && (_a = otherEncodingNames_1.return)) _a.call(otherEncodingNames_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    }\n    // CharacterSetECI(value: number /*int*/) {\n    //   this(new Int32Array {value})\n    // }\n    // CharacterSetECI(value: number /*int*/, String... otherEncodingNames) {\n    //   this.values = new Int32Array {value}\n    //   this.otherEncodingNames = otherEncodingNames\n    // }\n    // CharacterSetECI(values: Int32Array, String... otherEncodingNames) {\n    //   this.values = values\n    //   this.otherEncodingNames = otherEncodingNames\n    // }\n    CharacterSetECI.prototype.getValueIdentifier = function () {\n        return this.valueIdentifier;\n    };\n    CharacterSetECI.prototype.getName = function () {\n        return this.name;\n    };\n    CharacterSetECI.prototype.getValue = function () {\n        return this.values[0];\n    };\n    /**\n     * @param value character set ECI value\n     * @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but\n     *   unsupported\n     * @throws FormatException if ECI value is invalid\n     */\n    CharacterSetECI.getCharacterSetECIByValue = function (value /*int*/) {\n        if (value < 0 || value >= 900) {\n            throw new FormatException('incorect value');\n        }\n        var characterSet = CharacterSetECI.VALUES_TO_ECI.get(value);\n        if (undefined === characterSet) {\n            throw new FormatException('incorect value');\n        }\n        return characterSet;\n    };\n    /**\n     * @param name character set ECI encoding name\n     * @return CharacterSetECI representing ECI for character encoding, or null if it is legal\n     *   but unsupported\n     */\n    CharacterSetECI.getCharacterSetECIByName = function (name) {\n        var characterSet = CharacterSetECI.NAME_TO_ECI.get(name);\n        if (undefined === characterSet) {\n            throw new FormatException('incorect value');\n        }\n        return characterSet;\n    };\n    CharacterSetECI.prototype.equals = function (o) {\n        if (!(o instanceof CharacterSetECI)) {\n            return false;\n        }\n        var other = o;\n        return this.getName() === other.getName();\n    };\n    CharacterSetECI.VALUE_IDENTIFIER_TO_ECI = new Map();\n    CharacterSetECI.VALUES_TO_ECI = new Map();\n    CharacterSetECI.NAME_TO_ECI = new Map();\n    // Enum name is a Java encoding valid for java.lang and java.io\n    // TYPESCRIPTPORT: changed the main label for ISO as the TextEncoder did not recognized them in the form from java\n    // (eg ISO8859_1 must be ISO88591 or ISO8859-1 or ISO-8859-1)\n    // later on: well, except 16 wich does not work with ISO885916 so used ISO-8859-1 form for default\n    CharacterSetECI.Cp437 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp437, Int32Array.from([0, 2]), 'Cp437');\n    CharacterSetECI.ISO8859_1 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_1, Int32Array.from([1, 3]), 'ISO-8859-1', 'ISO88591', 'ISO8859_1');\n    CharacterSetECI.ISO8859_2 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_2, 4, 'ISO-8859-2', 'ISO88592', 'ISO8859_2');\n    CharacterSetECI.ISO8859_3 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_3, 5, 'ISO-8859-3', 'ISO88593', 'ISO8859_3');\n    CharacterSetECI.ISO8859_4 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_4, 6, 'ISO-8859-4', 'ISO88594', 'ISO8859_4');\n    CharacterSetECI.ISO8859_5 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_5, 7, 'ISO-8859-5', 'ISO88595', 'ISO8859_5');\n    CharacterSetECI.ISO8859_6 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_6, 8, 'ISO-8859-6', 'ISO88596', 'ISO8859_6');\n    CharacterSetECI.ISO8859_7 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_7, 9, 'ISO-8859-7', 'ISO88597', 'ISO8859_7');\n    CharacterSetECI.ISO8859_8 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_8, 10, 'ISO-8859-8', 'ISO88598', 'ISO8859_8');\n    CharacterSetECI.ISO8859_9 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_9, 11, 'ISO-8859-9', 'ISO88599', 'ISO8859_9');\n    CharacterSetECI.ISO8859_10 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_10, 12, 'ISO-8859-10', 'ISO885910', 'ISO8859_10');\n    CharacterSetECI.ISO8859_11 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_11, 13, 'ISO-8859-11', 'ISO885911', 'ISO8859_11');\n    CharacterSetECI.ISO8859_13 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_13, 15, 'ISO-8859-13', 'ISO885913', 'ISO8859_13');\n    CharacterSetECI.ISO8859_14 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_14, 16, 'ISO-8859-14', 'ISO885914', 'ISO8859_14');\n    CharacterSetECI.ISO8859_15 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_15, 17, 'ISO-8859-15', 'ISO885915', 'ISO8859_15');\n    CharacterSetECI.ISO8859_16 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_16, 18, 'ISO-8859-16', 'ISO885916', 'ISO8859_16');\n    CharacterSetECI.SJIS = new CharacterSetECI(CharacterSetValueIdentifiers.SJIS, 20, 'SJIS', 'Shift_JIS');\n    CharacterSetECI.Cp1250 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1250, 21, 'Cp1250', 'windows-1250');\n    CharacterSetECI.Cp1251 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1251, 22, 'Cp1251', 'windows-1251');\n    CharacterSetECI.Cp1252 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1252, 23, 'Cp1252', 'windows-1252');\n    CharacterSetECI.Cp1256 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1256, 24, 'Cp1256', 'windows-1256');\n    CharacterSetECI.UnicodeBigUnmarked = new CharacterSetECI(CharacterSetValueIdentifiers.UnicodeBigUnmarked, 25, 'UnicodeBigUnmarked', 'UTF-16BE', 'UnicodeBig');\n    CharacterSetECI.UTF8 = new CharacterSetECI(CharacterSetValueIdentifiers.UTF8, 26, 'UTF8', 'UTF-8');\n    CharacterSetECI.ASCII = new CharacterSetECI(CharacterSetValueIdentifiers.ASCII, Int32Array.from([27, 170]), 'ASCII', 'US-ASCII');\n    CharacterSetECI.Big5 = new CharacterSetECI(CharacterSetValueIdentifiers.Big5, 28, 'Big5');\n    CharacterSetECI.GB18030 = new CharacterSetECI(CharacterSetValueIdentifiers.GB18030, 29, 'GB18030', 'GB2312', 'EUC_CN', 'GBK');\n    CharacterSetECI.EUC_KR = new CharacterSetECI(CharacterSetValueIdentifiers.EUC_KR, 30, 'EUC_KR', 'EUC-KR');\n    return CharacterSetECI;\n}());\nexport default CharacterSetECI;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar FormatException = /** @class */ (function (_super) {\n    __extends(FormatException, _super);\n    function FormatException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    FormatException.getFormatInstance = function () {\n        return new FormatException();\n    };\n    FormatException.kind = 'FormatException';\n    return FormatException;\n}(Exception));\nexport default FormatException;\n","/*\n * Direct port to TypeScript of ZXing by Adrian Toșcă\n */\n/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * Enumerates barcode formats known to this package. Please keep alphabetized.\n *\n * @author Sean Owen\n */\nvar BarcodeFormat;\n(function (BarcodeFormat) {\n    /** Aztec 2D barcode format. */\n    BarcodeFormat[BarcodeFormat[\"AZTEC\"] = 0] = \"AZTEC\";\n    /** CODABAR 1D format. */\n    BarcodeFormat[BarcodeFormat[\"CODABAR\"] = 1] = \"CODABAR\";\n    /** Code 39 1D format. */\n    BarcodeFormat[BarcodeFormat[\"CODE_39\"] = 2] = \"CODE_39\";\n    /** Code 93 1D format. */\n    BarcodeFormat[BarcodeFormat[\"CODE_93\"] = 3] = \"CODE_93\";\n    /** Code 128 1D format. */\n    BarcodeFormat[BarcodeFormat[\"CODE_128\"] = 4] = \"CODE_128\";\n    /** Data Matrix 2D barcode format. */\n    BarcodeFormat[BarcodeFormat[\"DATA_MATRIX\"] = 5] = \"DATA_MATRIX\";\n    /** EAN-8 1D format. */\n    BarcodeFormat[BarcodeFormat[\"EAN_8\"] = 6] = \"EAN_8\";\n    /** EAN-13 1D format. */\n    BarcodeFormat[BarcodeFormat[\"EAN_13\"] = 7] = \"EAN_13\";\n    /** ITF (Interleaved Two of Five) 1D format. */\n    BarcodeFormat[BarcodeFormat[\"ITF\"] = 8] = \"ITF\";\n    /** MaxiCode 2D barcode format. */\n    BarcodeFormat[BarcodeFormat[\"MAXICODE\"] = 9] = \"MAXICODE\";\n    /** PDF417 format. */\n    BarcodeFormat[BarcodeFormat[\"PDF_417\"] = 10] = \"PDF_417\";\n    /** QR Code 2D barcode format. */\n    BarcodeFormat[BarcodeFormat[\"QR_CODE\"] = 11] = \"QR_CODE\";\n    /** RSS 14 */\n    BarcodeFormat[BarcodeFormat[\"RSS_14\"] = 12] = \"RSS_14\";\n    /** RSS EXPANDED */\n    BarcodeFormat[BarcodeFormat[\"RSS_EXPANDED\"] = 13] = \"RSS_EXPANDED\";\n    /** UPC-A 1D format. */\n    BarcodeFormat[BarcodeFormat[\"UPC_A\"] = 14] = \"UPC_A\";\n    /** UPC-E 1D format. */\n    BarcodeFormat[BarcodeFormat[\"UPC_E\"] = 15] = \"UPC_E\";\n    /** UPC/EAN extension format. Not a stand-alone format. */\n    BarcodeFormat[BarcodeFormat[\"UPC_EAN_EXTENSION\"] = 16] = \"UPC_EAN_EXTENSION\";\n})(BarcodeFormat || (BarcodeFormat = {}));\nexport default BarcodeFormat;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar UnsupportedOperationException = /** @class */ (function (_super) {\n    __extends(UnsupportedOperationException, _super);\n    function UnsupportedOperationException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    UnsupportedOperationException.kind = 'UnsupportedOperationException';\n    return UnsupportedOperationException;\n}(Exception));\nexport default UnsupportedOperationException;\n","import UnsupportedOperationException from '../UnsupportedOperationException';\nimport CharacterSetECI from '../common/CharacterSetECI';\n/**\n * Responsible for en/decoding strings.\n */\nvar StringEncoding = /** @class */ (function () {\n    function StringEncoding() {\n    }\n    /**\n     * Decodes some Uint8Array to a string format.\n     */\n    StringEncoding.decode = function (bytes, encoding) {\n        var encodingName = this.encodingName(encoding);\n        if (this.customDecoder) {\n            return this.customDecoder(bytes, encodingName);\n        }\n        // Increases browser support.\n        if (typeof TextDecoder === 'undefined' || this.shouldDecodeOnFallback(encodingName)) {\n            return this.decodeFallback(bytes, encodingName);\n        }\n        return new TextDecoder(encodingName).decode(bytes);\n    };\n    /**\n     * Checks if the decoding method should use the fallback for decoding\n     * once Node TextDecoder doesn't support all encoding formats.\n     *\n     * @param encodingName\n     */\n    StringEncoding.shouldDecodeOnFallback = function (encodingName) {\n        return !StringEncoding.isBrowser() && encodingName === 'ISO-8859-1';\n    };\n    /**\n     * Encodes some string into a Uint8Array.\n     */\n    StringEncoding.encode = function (s, encoding) {\n        var encodingName = this.encodingName(encoding);\n        if (this.customEncoder) {\n            return this.customEncoder(s, encodingName);\n        }\n        // Increases browser support.\n        if (typeof TextEncoder === 'undefined') {\n            return this.encodeFallback(s);\n        }\n        // TextEncoder only encodes to UTF8 by default as specified by encoding.spec.whatwg.org\n        return new TextEncoder().encode(s);\n    };\n    StringEncoding.isBrowser = function () {\n        return (typeof window !== 'undefined' && {}.toString.call(window) === '[object Window]');\n    };\n    /**\n     * Returns the string value from some encoding character set.\n     */\n    StringEncoding.encodingName = function (encoding) {\n        return typeof encoding === 'string'\n            ? encoding\n            : encoding.getName();\n    };\n    /**\n     * Returns character set from some encoding character set.\n     */\n    StringEncoding.encodingCharacterSet = function (encoding) {\n        if (encoding instanceof CharacterSetECI) {\n            return encoding;\n        }\n        return CharacterSetECI.getCharacterSetECIByName(encoding);\n    };\n    /**\n     * Runs a fallback for the native decoding funcion.\n     */\n    StringEncoding.decodeFallback = function (bytes, encoding) {\n        var characterSet = this.encodingCharacterSet(encoding);\n        if (StringEncoding.isDecodeFallbackSupported(characterSet)) {\n            var s = '';\n            for (var i = 0, length_1 = bytes.length; i < length_1; i++) {\n                var h = bytes[i].toString(16);\n                if (h.length < 2) {\n                    h = '0' + h;\n                }\n                s += '%' + h;\n            }\n            return decodeURIComponent(s);\n        }\n        if (characterSet.equals(CharacterSetECI.UnicodeBigUnmarked)) {\n            return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n        }\n        throw new UnsupportedOperationException(\"Encoding \" + this.encodingName(encoding) + \" not supported by fallback.\");\n    };\n    StringEncoding.isDecodeFallbackSupported = function (characterSet) {\n        return characterSet.equals(CharacterSetECI.UTF8) ||\n            characterSet.equals(CharacterSetECI.ISO8859_1) ||\n            characterSet.equals(CharacterSetECI.ASCII);\n    };\n    /**\n     * Runs a fallback for the native encoding funcion.\n     *\n     * @see https://stackoverflow.com/a/17192845/4367683\n     */\n    StringEncoding.encodeFallback = function (s) {\n        var encodedURIstring = btoa(unescape(encodeURIComponent(s)));\n        var charList = encodedURIstring.split('');\n        var uintArray = [];\n        for (var i = 0; i < charList.length; i++) {\n            uintArray.push(charList[i].charCodeAt(0));\n        }\n        return new Uint8Array(uintArray);\n    };\n    return StringEncoding;\n}());\nexport default StringEncoding;\n","/*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.nio.charset.Charset;*/\n/*import java.util.Map;*/\nimport DecodeHintType from '../DecodeHintType';\nimport CharacterSetECI from './CharacterSetECI';\nimport StringEncoding from '../util/StringEncoding';\n/**\n * Common string-related functions.\n *\n * @author Sean Owen\n * @author Alex Dupre\n */\nvar StringUtils = /** @class */ (function () {\n    function StringUtils() {\n    }\n    // SHIFT_JIS.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING) ||\n    // EUC_JP.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING);\n    StringUtils.castAsNonUtf8Char = function (code, encoding) {\n        if (encoding === void 0) { encoding = null; }\n        // ISO 8859-1 is the Java default as UTF-8 is JavaScripts\n        // you can see this method as a Java version of String.fromCharCode\n        var e = encoding ? encoding.getName() : this.ISO88591;\n        // use passed format (fromCharCode will return UTF8 encoding)\n        return StringEncoding.decode(new Uint8Array([code]), e);\n    };\n    /**\n     * @param bytes bytes encoding a string, whose encoding should be guessed\n     * @param hints decode hints if applicable\n     * @return name of guessed encoding; at the moment will only guess one of:\n     *  {@link #SHIFT_JIS}, {@link #UTF8}, {@link #ISO88591}, or the platform\n     *  default encoding if none of these can possibly be correct\n     */\n    StringUtils.guessEncoding = function (bytes, hints) {\n        if (hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType.CHARACTER_SET)) {\n            return hints.get(DecodeHintType.CHARACTER_SET).toString();\n        }\n        // For now, merely tries to distinguish ISO-8859-1, UTF-8 and Shift_JIS,\n        // which should be by far the most common encodings.\n        var length = bytes.length;\n        var canBeISO88591 = true;\n        var canBeShiftJIS = true;\n        var canBeUTF8 = true;\n        var utf8BytesLeft = 0;\n        // int utf8LowChars = 0\n        var utf2BytesChars = 0;\n        var utf3BytesChars = 0;\n        var utf4BytesChars = 0;\n        var sjisBytesLeft = 0;\n        // int sjisLowChars = 0\n        var sjisKatakanaChars = 0;\n        // int sjisDoubleBytesChars = 0\n        var sjisCurKatakanaWordLength = 0;\n        var sjisCurDoubleBytesWordLength = 0;\n        var sjisMaxKatakanaWordLength = 0;\n        var sjisMaxDoubleBytesWordLength = 0;\n        // int isoLowChars = 0\n        // int isoHighChars = 0\n        var isoHighOther = 0;\n        var utf8bom = bytes.length > 3 &&\n            bytes[0] === /*(byte) */ 0xEF &&\n            bytes[1] === /*(byte) */ 0xBB &&\n            bytes[2] === /*(byte) */ 0xBF;\n        for (var i = 0; i < length && (canBeISO88591 || canBeShiftJIS || canBeUTF8); i++) {\n            var value = bytes[i] & 0xFF;\n            // UTF-8 stuff\n            if (canBeUTF8) {\n                if (utf8BytesLeft > 0) {\n                    if ((value & 0x80) === 0) {\n                        canBeUTF8 = false;\n                    }\n                    else {\n                        utf8BytesLeft--;\n                    }\n                }\n                else if ((value & 0x80) !== 0) {\n                    if ((value & 0x40) === 0) {\n                        canBeUTF8 = false;\n                    }\n                    else {\n                        utf8BytesLeft++;\n                        if ((value & 0x20) === 0) {\n                            utf2BytesChars++;\n                        }\n                        else {\n                            utf8BytesLeft++;\n                            if ((value & 0x10) === 0) {\n                                utf3BytesChars++;\n                            }\n                            else {\n                                utf8BytesLeft++;\n                                if ((value & 0x08) === 0) {\n                                    utf4BytesChars++;\n                                }\n                                else {\n                                    canBeUTF8 = false;\n                                }\n                            }\n                        }\n                    }\n                } // else {\n                // utf8LowChars++\n                // }\n            }\n            // ISO-8859-1 stuff\n            if (canBeISO88591) {\n                if (value > 0x7F && value < 0xA0) {\n                    canBeISO88591 = false;\n                }\n                else if (value > 0x9F) {\n                    if (value < 0xC0 || value === 0xD7 || value === 0xF7) {\n                        isoHighOther++;\n                    } // else {\n                    // isoHighChars++\n                    // }\n                } // else {\n                // isoLowChars++\n                // }\n            }\n            // Shift_JIS stuff\n            if (canBeShiftJIS) {\n                if (sjisBytesLeft > 0) {\n                    if (value < 0x40 || value === 0x7F || value > 0xFC) {\n                        canBeShiftJIS = false;\n                    }\n                    else {\n                        sjisBytesLeft--;\n                    }\n                }\n                else if (value === 0x80 || value === 0xA0 || value > 0xEF) {\n                    canBeShiftJIS = false;\n                }\n                else if (value > 0xA0 && value < 0xE0) {\n                    sjisKatakanaChars++;\n                    sjisCurDoubleBytesWordLength = 0;\n                    sjisCurKatakanaWordLength++;\n                    if (sjisCurKatakanaWordLength > sjisMaxKatakanaWordLength) {\n                        sjisMaxKatakanaWordLength = sjisCurKatakanaWordLength;\n                    }\n                }\n                else if (value > 0x7F) {\n                    sjisBytesLeft++;\n                    // sjisDoubleBytesChars++\n                    sjisCurKatakanaWordLength = 0;\n                    sjisCurDoubleBytesWordLength++;\n                    if (sjisCurDoubleBytesWordLength > sjisMaxDoubleBytesWordLength) {\n                        sjisMaxDoubleBytesWordLength = sjisCurDoubleBytesWordLength;\n                    }\n                }\n                else {\n                    // sjisLowChars++\n                    sjisCurKatakanaWordLength = 0;\n                    sjisCurDoubleBytesWordLength = 0;\n                }\n            }\n        }\n        if (canBeUTF8 && utf8BytesLeft > 0) {\n            canBeUTF8 = false;\n        }\n        if (canBeShiftJIS && sjisBytesLeft > 0) {\n            canBeShiftJIS = false;\n        }\n        // Easy -- if there is BOM or at least 1 valid not-single byte character (and no evidence it can't be UTF-8), done\n        if (canBeUTF8 && (utf8bom || utf2BytesChars + utf3BytesChars + utf4BytesChars > 0)) {\n            return StringUtils.UTF8;\n        }\n        // Easy -- if assuming Shift_JIS or at least 3 valid consecutive not-ascii characters (and no evidence it can't be), done\n        if (canBeShiftJIS && (StringUtils.ASSUME_SHIFT_JIS || sjisMaxKatakanaWordLength >= 3 || sjisMaxDoubleBytesWordLength >= 3)) {\n            return StringUtils.SHIFT_JIS;\n        }\n        // Distinguishing Shift_JIS and ISO-8859-1 can be a little tough for short words. The crude heuristic is:\n        // - If we saw\n        //   - only two consecutive katakana chars in the whole text, or\n        //   - at least 10% of bytes that could be \"upper\" not-alphanumeric Latin1,\n        // - then we conclude Shift_JIS, else ISO-8859-1\n        if (canBeISO88591 && canBeShiftJIS) {\n            return (sjisMaxKatakanaWordLength === 2 && sjisKatakanaChars === 2) || isoHighOther * 10 >= length\n                ? StringUtils.SHIFT_JIS : StringUtils.ISO88591;\n        }\n        // Otherwise, try in order ISO-8859-1, Shift JIS, UTF-8 and fall back to default platform encoding\n        if (canBeISO88591) {\n            return StringUtils.ISO88591;\n        }\n        if (canBeShiftJIS) {\n            return StringUtils.SHIFT_JIS;\n        }\n        if (canBeUTF8) {\n            return StringUtils.UTF8;\n        }\n        // Otherwise, we take a wild guess with platform encoding\n        return StringUtils.PLATFORM_DEFAULT_ENCODING;\n    };\n    /**\n     *\n     * @see https://stackoverflow.com/a/13439711/4367683\n     *\n     * @param append The new string to append.\n     * @param args Argumets values to be formated.\n     */\n    StringUtils.format = function (append) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        var i = -1;\n        function callback(exp, p0, p1, p2, p3, p4) {\n            if (exp === '%%')\n                return '%';\n            if (args[++i] === undefined)\n                return undefined;\n            exp = p2 ? parseInt(p2.substr(1)) : undefined;\n            var base = p3 ? parseInt(p3.substr(1)) : undefined;\n            var val;\n            switch (p4) {\n                case 's':\n                    val = args[i];\n                    break;\n                case 'c':\n                    val = args[i][0];\n                    break;\n                case 'f':\n                    val = parseFloat(args[i]).toFixed(exp);\n                    break;\n                case 'p':\n                    val = parseFloat(args[i]).toPrecision(exp);\n                    break;\n                case 'e':\n                    val = parseFloat(args[i]).toExponential(exp);\n                    break;\n                case 'x':\n                    val = parseInt(args[i]).toString(base ? base : 16);\n                    break;\n                case 'd':\n                    val = parseFloat(parseInt(args[i], base ? base : 10).toPrecision(exp)).toFixed(0);\n                    break;\n            }\n            val = typeof val === 'object' ? JSON.stringify(val) : (+val).toString(base);\n            var size = parseInt(p1); /* padding size */\n            var ch = p1 && (p1[0] + '') === '0' ? '0' : ' '; /* isnull? */\n            while (val.length < size)\n                val = p0 !== undefined ? val + ch : ch + val; /* isminus? */\n            return val;\n        }\n        var regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;\n        return append.replace(regex, callback);\n    };\n    /**\n     *\n     */\n    StringUtils.getBytes = function (str, encoding) {\n        return StringEncoding.encode(str, encoding);\n    };\n    /**\n     * Returns the charcode at the specified index or at index zero.\n     */\n    StringUtils.getCharCode = function (str, index) {\n        if (index === void 0) { index = 0; }\n        return str.charCodeAt(index);\n    };\n    /**\n     * Returns char for given charcode\n     */\n    StringUtils.getCharAt = function (charCode) {\n        return String.fromCharCode(charCode);\n    };\n    StringUtils.SHIFT_JIS = CharacterSetECI.SJIS.getName(); // \"SJIS\"\n    StringUtils.GB2312 = 'GB2312';\n    StringUtils.ISO88591 = CharacterSetECI.ISO8859_1.getName(); // \"ISO8859_1\"\n    StringUtils.EUC_JP = 'EUC_JP';\n    StringUtils.UTF8 = CharacterSetECI.UTF8.getName(); // \"UTF8\"\n    StringUtils.PLATFORM_DEFAULT_ENCODING = StringUtils.UTF8; // \"UTF8\"//Charset.defaultCharset().name()\n    StringUtils.ASSUME_SHIFT_JIS = false;\n    return StringUtils;\n}());\nexport default StringUtils;\n","import StringUtils from '../common/StringUtils';\nvar StringBuilder = /** @class */ (function () {\n    function StringBuilder(value) {\n        if (value === void 0) { value = ''; }\n        this.value = value;\n    }\n    StringBuilder.prototype.enableDecoding = function (encoding) {\n        this.encoding = encoding;\n        return this;\n    };\n    StringBuilder.prototype.append = function (s) {\n        if (typeof s === 'string') {\n            this.value += s.toString();\n        }\n        else if (this.encoding) {\n            // use passed format (fromCharCode will return UTF8 encoding)\n            this.value += StringUtils.castAsNonUtf8Char(s, this.encoding);\n        }\n        else {\n            // correctly converts from UTF-8, but not other encodings\n            this.value += String.fromCharCode(s);\n        }\n        return this;\n    };\n    StringBuilder.prototype.appendChars = function (str, offset, len) {\n        for (var i = offset; offset < offset + len; i++) {\n            this.append(str[i]);\n        }\n        return this;\n    };\n    StringBuilder.prototype.length = function () {\n        return this.value.length;\n    };\n    StringBuilder.prototype.charAt = function (n) {\n        return this.value.charAt(n);\n    };\n    StringBuilder.prototype.deleteCharAt = function (n) {\n        this.value = this.value.substr(0, n) + this.value.substring(n + 1);\n    };\n    StringBuilder.prototype.setCharAt = function (n, c) {\n        this.value = this.value.substr(0, n) + c + this.value.substr(n + 1);\n    };\n    StringBuilder.prototype.substring = function (start, end) {\n        return this.value.substring(start, end);\n    };\n    /**\n     * @note helper method for RSS Expanded\n     */\n    StringBuilder.prototype.setLengthToZero = function () {\n        this.value = '';\n    };\n    StringBuilder.prototype.toString = function () {\n        return this.value;\n    };\n    StringBuilder.prototype.insert = function (n, c) {\n        this.value = this.value.substr(0, n) + c + this.value.substr(n + c.length);\n    };\n    return StringBuilder;\n}());\nexport default StringBuilder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nimport BitArray from './BitArray';\nimport System from '../util/System';\nimport Arrays from '../util/Arrays';\nimport StringBuilder from '../util/StringBuilder';\nimport IllegalArgumentException from '../IllegalArgumentException';\n/**\n * <p>Represents a 2D matrix of bits. In function arguments below, and throughout the common\n * module, x is the column position, and y is the row position. The ordering is always x, y.\n * The origin is at the top-left.</p>\n *\n * <p>Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins\n * with a new int. This is done intentionally so that we can copy out a row into a BitArray very\n * efficiently.</p>\n *\n * <p>The ordering of bits is row-major. Within each int, the least significant bits are used first,\n * meaning they represent lower x values. This is compatible with BitArray's implementation.</p>\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar BitMatrix /*implements Cloneable*/ = /** @class */ (function () {\n    /**\n     * Creates an empty square {@link BitMatrix}.\n     *\n     * @param dimension height and width\n     */\n    // public constructor(dimension: number /*int*/) {\n    //   this(dimension, dimension)\n    // }\n    /**\n     * Creates an empty {@link BitMatrix}.\n     *\n     * @param width bit matrix width\n     * @param height bit matrix height\n     */\n    // public constructor(width: number /*int*/, height: number /*int*/) {\n    //   if (width < 1 || height < 1) {\n    //     throw new IllegalArgumentException(\"Both dimensions must be greater than 0\")\n    //   }\n    //   this.width = width\n    //   this.height = height\n    //   this.rowSize = (width + 31) / 32\n    //   bits = new int[rowSize * height];\n    // }\n    function BitMatrix(width /*int*/, height /*int*/, rowSize /*int*/, bits) {\n        this.width = width;\n        this.height = height;\n        this.rowSize = rowSize;\n        this.bits = bits;\n        if (undefined === height || null === height) {\n            height = width;\n        }\n        this.height = height;\n        if (width < 1 || height < 1) {\n            throw new IllegalArgumentException('Both dimensions must be greater than 0');\n        }\n        if (undefined === rowSize || null === rowSize) {\n            rowSize = Math.floor((width + 31) / 32);\n        }\n        this.rowSize = rowSize;\n        if (undefined === bits || null === bits) {\n            this.bits = new Int32Array(this.rowSize * this.height);\n        }\n    }\n    /**\n     * Interprets a 2D array of booleans as a {@link BitMatrix}, where \"true\" means an \"on\" bit.\n     *\n     * @function parse\n     * @param image bits of the image, as a row-major 2D array. Elements are arrays representing rows\n     * @return {@link BitMatrix} representation of image\n     */\n    BitMatrix.parseFromBooleanArray = function (image) {\n        var height = image.length;\n        var width = image[0].length;\n        var bits = new BitMatrix(width, height);\n        for (var i = 0; i < height; i++) {\n            var imageI = image[i];\n            for (var j = 0; j < width; j++) {\n                if (imageI[j]) {\n                    bits.set(j, i);\n                }\n            }\n        }\n        return bits;\n    };\n    /**\n     *\n     * @function parse\n     * @param stringRepresentation\n     * @param setString\n     * @param unsetString\n     */\n    BitMatrix.parseFromString = function (stringRepresentation, setString, unsetString) {\n        if (stringRepresentation === null) {\n            throw new IllegalArgumentException('stringRepresentation cannot be null');\n        }\n        var bits = new Array(stringRepresentation.length);\n        var bitsPos = 0;\n        var rowStartPos = 0;\n        var rowLength = -1;\n        var nRows = 0;\n        var pos = 0;\n        while (pos < stringRepresentation.length) {\n            if (stringRepresentation.charAt(pos) === '\\n' ||\n                stringRepresentation.charAt(pos) === '\\r') {\n                if (bitsPos > rowStartPos) {\n                    if (rowLength === -1) {\n                        rowLength = bitsPos - rowStartPos;\n                    }\n                    else if (bitsPos - rowStartPos !== rowLength) {\n                        throw new IllegalArgumentException('row lengths do not match');\n                    }\n                    rowStartPos = bitsPos;\n                    nRows++;\n                }\n                pos++;\n            }\n            else if (stringRepresentation.substring(pos, pos + setString.length) === setString) {\n                pos += setString.length;\n                bits[bitsPos] = true;\n                bitsPos++;\n            }\n            else if (stringRepresentation.substring(pos, pos + unsetString.length) === unsetString) {\n                pos += unsetString.length;\n                bits[bitsPos] = false;\n                bitsPos++;\n            }\n            else {\n                throw new IllegalArgumentException('illegal character encountered: ' + stringRepresentation.substring(pos));\n            }\n        }\n        // no EOL at end?\n        if (bitsPos > rowStartPos) {\n            if (rowLength === -1) {\n                rowLength = bitsPos - rowStartPos;\n            }\n            else if (bitsPos - rowStartPos !== rowLength) {\n                throw new IllegalArgumentException('row lengths do not match');\n            }\n            nRows++;\n        }\n        var matrix = new BitMatrix(rowLength, nRows);\n        for (var i = 0; i < bitsPos; i++) {\n            if (bits[i]) {\n                matrix.set(Math.floor(i % rowLength), Math.floor(i / rowLength));\n            }\n        }\n        return matrix;\n    };\n    /**\n     * <p>Gets the requested bit, where true means black.</p>\n     *\n     * @param x The horizontal component (i.e. which column)\n     * @param y The vertical component (i.e. which row)\n     * @return value of given bit in matrix\n     */\n    BitMatrix.prototype.get = function (x /*int*/, y /*int*/) {\n        var offset = y * this.rowSize + Math.floor(x / 32);\n        return ((this.bits[offset] >>> (x & 0x1f)) & 1) !== 0;\n    };\n    /**\n     * <p>Sets the given bit to true.</p>\n     *\n     * @param x The horizontal component (i.e. which column)\n     * @param y The vertical component (i.e. which row)\n     */\n    BitMatrix.prototype.set = function (x /*int*/, y /*int*/) {\n        var offset = y * this.rowSize + Math.floor(x / 32);\n        this.bits[offset] |= (1 << (x & 0x1f)) & 0xFFFFFFFF;\n    };\n    BitMatrix.prototype.unset = function (x /*int*/, y /*int*/) {\n        var offset = y * this.rowSize + Math.floor(x / 32);\n        this.bits[offset] &= ~((1 << (x & 0x1f)) & 0xFFFFFFFF);\n    };\n    /**\n     * <p>Flips the given bit.</p>\n     *\n     * @param x The horizontal component (i.e. which column)\n     * @param y The vertical component (i.e. which row)\n     */\n    BitMatrix.prototype.flip = function (x /*int*/, y /*int*/) {\n        var offset = y * this.rowSize + Math.floor(x / 32);\n        this.bits[offset] ^= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n    };\n    /**\n     * Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding\n     * mask bit is set.\n     *\n     * @param mask XOR mask\n     */\n    BitMatrix.prototype.xor = function (mask) {\n        if (this.width !== mask.getWidth() || this.height !== mask.getHeight()\n            || this.rowSize !== mask.getRowSize()) {\n            throw new IllegalArgumentException('input matrix dimensions do not match');\n        }\n        var rowArray = new BitArray(Math.floor(this.width / 32) + 1);\n        var rowSize = this.rowSize;\n        var bits = this.bits;\n        for (var y = 0, height = this.height; y < height; y++) {\n            var offset = y * rowSize;\n            var row = mask.getRow(y, rowArray).getBitArray();\n            for (var x = 0; x < rowSize; x++) {\n                bits[offset + x] ^= row[x];\n            }\n        }\n    };\n    /**\n     * Clears all bits (sets to false).\n     */\n    BitMatrix.prototype.clear = function () {\n        var bits = this.bits;\n        var max = bits.length;\n        for (var i = 0; i < max; i++) {\n            bits[i] = 0;\n        }\n    };\n    /**\n     * <p>Sets a square region of the bit matrix to true.</p>\n     *\n     * @param left The horizontal position to begin at (inclusive)\n     * @param top The vertical position to begin at (inclusive)\n     * @param width The width of the region\n     * @param height The height of the region\n     */\n    BitMatrix.prototype.setRegion = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        if (top < 0 || left < 0) {\n            throw new IllegalArgumentException('Left and top must be nonnegative');\n        }\n        if (height < 1 || width < 1) {\n            throw new IllegalArgumentException('Height and width must be at least 1');\n        }\n        var right = left + width;\n        var bottom = top + height;\n        if (bottom > this.height || right > this.width) {\n            throw new IllegalArgumentException('The region must fit inside the matrix');\n        }\n        var rowSize = this.rowSize;\n        var bits = this.bits;\n        for (var y = top; y < bottom; y++) {\n            var offset = y * rowSize;\n            for (var x = left; x < right; x++) {\n                bits[offset + Math.floor(x / 32)] |= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n            }\n        }\n    };\n    /**\n     * A fast method to retrieve one row of data from the matrix as a BitArray.\n     *\n     * @param y The row to retrieve\n     * @param row An optional caller-allocated BitArray, will be allocated if null or too small\n     * @return The resulting BitArray - this reference should always be used even when passing\n     *         your own row\n     */\n    BitMatrix.prototype.getRow = function (y /*int*/, row) {\n        if (row === null || row === undefined || row.getSize() < this.width) {\n            row = new BitArray(this.width);\n        }\n        else {\n            row.clear();\n        }\n        var rowSize = this.rowSize;\n        var bits = this.bits;\n        var offset = y * rowSize;\n        for (var x = 0; x < rowSize; x++) {\n            row.setBulk(x * 32, bits[offset + x]);\n        }\n        return row;\n    };\n    /**\n     * @param y row to set\n     * @param row {@link BitArray} to copy from\n     */\n    BitMatrix.prototype.setRow = function (y /*int*/, row) {\n        System.arraycopy(row.getBitArray(), 0, this.bits, y * this.rowSize, this.rowSize);\n    };\n    /**\n     * Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees\n     */\n    BitMatrix.prototype.rotate180 = function () {\n        var width = this.getWidth();\n        var height = this.getHeight();\n        var topRow = new BitArray(width);\n        var bottomRow = new BitArray(width);\n        for (var i = 0, length_1 = Math.floor((height + 1) / 2); i < length_1; i++) {\n            topRow = this.getRow(i, topRow);\n            bottomRow = this.getRow(height - 1 - i, bottomRow);\n            topRow.reverse();\n            bottomRow.reverse();\n            this.setRow(i, bottomRow);\n            this.setRow(height - 1 - i, topRow);\n        }\n    };\n    /**\n     * This is useful in detecting the enclosing rectangle of a 'pure' barcode.\n     *\n     * @return {@code left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white\n     */\n    BitMatrix.prototype.getEnclosingRectangle = function () {\n        var width = this.width;\n        var height = this.height;\n        var rowSize = this.rowSize;\n        var bits = this.bits;\n        var left = width;\n        var top = height;\n        var right = -1;\n        var bottom = -1;\n        for (var y = 0; y < height; y++) {\n            for (var x32 = 0; x32 < rowSize; x32++) {\n                var theBits = bits[y * rowSize + x32];\n                if (theBits !== 0) {\n                    if (y < top) {\n                        top = y;\n                    }\n                    if (y > bottom) {\n                        bottom = y;\n                    }\n                    if (x32 * 32 < left) {\n                        var bit = 0;\n                        while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n                            bit++;\n                        }\n                        if ((x32 * 32 + bit) < left) {\n                            left = x32 * 32 + bit;\n                        }\n                    }\n                    if (x32 * 32 + 31 > right) {\n                        var bit = 31;\n                        while ((theBits >>> bit) === 0) {\n                            bit--;\n                        }\n                        if ((x32 * 32 + bit) > right) {\n                            right = x32 * 32 + bit;\n                        }\n                    }\n                }\n            }\n        }\n        if (right < left || bottom < top) {\n            return null;\n        }\n        return Int32Array.from([left, top, right - left + 1, bottom - top + 1]);\n    };\n    /**\n     * This is useful in detecting a corner of a 'pure' barcode.\n     *\n     * @return {@code x,y} coordinate of top-left-most 1 bit, or null if it is all white\n     */\n    BitMatrix.prototype.getTopLeftOnBit = function () {\n        var rowSize = this.rowSize;\n        var bits = this.bits;\n        var bitsOffset = 0;\n        while (bitsOffset < bits.length && bits[bitsOffset] === 0) {\n            bitsOffset++;\n        }\n        if (bitsOffset === bits.length) {\n            return null;\n        }\n        var y = bitsOffset / rowSize;\n        var x = (bitsOffset % rowSize) * 32;\n        var theBits = bits[bitsOffset];\n        var bit = 0;\n        while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n            bit++;\n        }\n        x += bit;\n        return Int32Array.from([x, y]);\n    };\n    BitMatrix.prototype.getBottomRightOnBit = function () {\n        var rowSize = this.rowSize;\n        var bits = this.bits;\n        var bitsOffset = bits.length - 1;\n        while (bitsOffset >= 0 && bits[bitsOffset] === 0) {\n            bitsOffset--;\n        }\n        if (bitsOffset < 0) {\n            return null;\n        }\n        var y = Math.floor(bitsOffset / rowSize);\n        var x = Math.floor(bitsOffset % rowSize) * 32;\n        var theBits = bits[bitsOffset];\n        var bit = 31;\n        while ((theBits >>> bit) === 0) {\n            bit--;\n        }\n        x += bit;\n        return Int32Array.from([x, y]);\n    };\n    /**\n     * @return The width of the matrix\n     */\n    BitMatrix.prototype.getWidth = function () {\n        return this.width;\n    };\n    /**\n     * @return The height of the matrix\n     */\n    BitMatrix.prototype.getHeight = function () {\n        return this.height;\n    };\n    /**\n     * @return The row size of the matrix\n     */\n    BitMatrix.prototype.getRowSize = function () {\n        return this.rowSize;\n    };\n    /*@Override*/\n    BitMatrix.prototype.equals = function (o) {\n        if (!(o instanceof BitMatrix)) {\n            return false;\n        }\n        var other = o;\n        return this.width === other.width && this.height === other.height && this.rowSize === other.rowSize &&\n            Arrays.equals(this.bits, other.bits);\n    };\n    /*@Override*/\n    BitMatrix.prototype.hashCode = function () {\n        var hash = this.width;\n        hash = 31 * hash + this.width;\n        hash = 31 * hash + this.height;\n        hash = 31 * hash + this.rowSize;\n        hash = 31 * hash + Arrays.hashCode(this.bits);\n        return hash;\n    };\n    /**\n     * @return string representation using \"X\" for set and \" \" for unset bits\n     */\n    /*@Override*/\n    // public toString(): string {\n    //   return toString(\": \"X, \"  \")\n    // }\n    /**\n     * @param setString representation of a set bit\n     * @param unsetString representation of an unset bit\n     * @return string representation of entire matrix utilizing given strings\n     */\n    // public toString(setString: string = \"X \", unsetString: string = \"  \"): string {\n    //   return this.buildToString(setString, unsetString, \"\\n\")\n    // }\n    /**\n     * @param setString representation of a set bit\n     * @param unsetString representation of an unset bit\n     * @param lineSeparator newline character in string representation\n     * @return string representation of entire matrix utilizing given strings and line separator\n     * @deprecated call {@link #toString(String,String)} only, which uses \\n line separator always\n     */\n    // @Deprecated\n    BitMatrix.prototype.toString = function (setString, unsetString, lineSeparator) {\n        if (setString === void 0) { setString = 'X '; }\n        if (unsetString === void 0) { unsetString = '  '; }\n        if (lineSeparator === void 0) { lineSeparator = '\\n'; }\n        return this.buildToString(setString, unsetString, lineSeparator);\n    };\n    BitMatrix.prototype.buildToString = function (setString, unsetString, lineSeparator) {\n        var result = new StringBuilder();\n        // result.append(lineSeparator);\n        for (var y = 0, height = this.height; y < height; y++) {\n            for (var x = 0, width = this.width; x < width; x++) {\n                result.append(this.get(x, y) ? setString : unsetString);\n            }\n            result.append(lineSeparator);\n        }\n        return result.toString();\n    };\n    /*@Override*/\n    BitMatrix.prototype.clone = function () {\n        return new BitMatrix(this.width, this.height, this.rowSize, this.bits.slice());\n    };\n    return BitMatrix;\n}());\nexport default BitMatrix;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar NotFoundException = /** @class */ (function (_super) {\n    __extends(NotFoundException, _super);\n    function NotFoundException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    NotFoundException.getNotFoundInstance = function () {\n        return new NotFoundException();\n    };\n    NotFoundException.kind = 'NotFoundException';\n    return NotFoundException;\n}(Exception));\nexport default NotFoundException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.common {*/\nimport Binarizer from '../Binarizer';\nimport BitArray from './BitArray';\nimport BitMatrix from './BitMatrix';\nimport NotFoundException from '../NotFoundException';\n/**\n * This Binarizer implementation uses the old ZXing global histogram approach. It is suitable\n * for low-end mobile devices which don't have enough CPU or memory to use a local thresholding\n * algorithm. However, because it picks a global black point, it cannot handle difficult shadows\n * and gradients.\n *\n * Faster mobile devices and all desktop applications should probably use HybridBinarizer instead.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\nvar GlobalHistogramBinarizer = /** @class */ (function (_super) {\n    __extends(GlobalHistogramBinarizer, _super);\n    function GlobalHistogramBinarizer(source) {\n        var _this = _super.call(this, source) || this;\n        _this.luminances = GlobalHistogramBinarizer.EMPTY;\n        _this.buckets = new Int32Array(GlobalHistogramBinarizer.LUMINANCE_BUCKETS);\n        return _this;\n    }\n    // Applies simple sharpening to the row data to improve performance of the 1D Readers.\n    /*@Override*/\n    GlobalHistogramBinarizer.prototype.getBlackRow = function (y /*int*/, row) {\n        var source = this.getLuminanceSource();\n        var width = source.getWidth();\n        if (row === undefined || row === null || row.getSize() < width) {\n            row = new BitArray(width);\n        }\n        else {\n            row.clear();\n        }\n        this.initArrays(width);\n        var localLuminances = source.getRow(y, this.luminances);\n        var localBuckets = this.buckets;\n        for (var x = 0; x < width; x++) {\n            localBuckets[(localLuminances[x] & 0xff) >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n        }\n        var blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n        if (width < 3) {\n            // Special case for very small images\n            for (var x = 0; x < width; x++) {\n                if ((localLuminances[x] & 0xff) < blackPoint) {\n                    row.set(x);\n                }\n            }\n        }\n        else {\n            var left = localLuminances[0] & 0xff;\n            var center = localLuminances[1] & 0xff;\n            for (var x = 1; x < width - 1; x++) {\n                var right = localLuminances[x + 1] & 0xff;\n                // A simple -1 4 -1 box filter with a weight of 2.\n                if (((center * 4) - left - right) / 2 < blackPoint) {\n                    row.set(x);\n                }\n                left = center;\n                center = right;\n            }\n        }\n        return row;\n    };\n    // Does not sharpen the data, as this call is intended to only be used by 2D Readers.\n    /*@Override*/\n    GlobalHistogramBinarizer.prototype.getBlackMatrix = function () {\n        var source = this.getLuminanceSource();\n        var width = source.getWidth();\n        var height = source.getHeight();\n        var matrix = new BitMatrix(width, height);\n        // Quickly calculates the histogram by sampling four rows from the image. This proved to be\n        // more robust on the blackbox tests than sampling a diagonal as we used to do.\n        this.initArrays(width);\n        var localBuckets = this.buckets;\n        for (var y = 1; y < 5; y++) {\n            var row = Math.floor((height * y) / 5);\n            var localLuminances_1 = source.getRow(row, this.luminances);\n            var right = Math.floor((width * 4) / 5);\n            for (var x = Math.floor(width / 5); x < right; x++) {\n                var pixel = localLuminances_1[x] & 0xff;\n                localBuckets[pixel >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n            }\n        }\n        var blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n        // We delay reading the entire image luminance until the black point estimation succeeds.\n        // Although we end up reading four rows twice, it is consistent with our motto of\n        // \"fail quickly\" which is necessary for continuous scanning.\n        var localLuminances = source.getMatrix();\n        for (var y = 0; y < height; y++) {\n            var offset = y * width;\n            for (var x = 0; x < width; x++) {\n                var pixel = localLuminances[offset + x] & 0xff;\n                if (pixel < blackPoint) {\n                    matrix.set(x, y);\n                }\n            }\n        }\n        return matrix;\n    };\n    /*@Override*/\n    GlobalHistogramBinarizer.prototype.createBinarizer = function (source) {\n        return new GlobalHistogramBinarizer(source);\n    };\n    GlobalHistogramBinarizer.prototype.initArrays = function (luminanceSize /*int*/) {\n        if (this.luminances.length < luminanceSize) {\n            this.luminances = new Uint8ClampedArray(luminanceSize);\n        }\n        var buckets = this.buckets;\n        for (var x = 0; x < GlobalHistogramBinarizer.LUMINANCE_BUCKETS; x++) {\n            buckets[x] = 0;\n        }\n    };\n    GlobalHistogramBinarizer.estimateBlackPoint = function (buckets) {\n        // Find the tallest peak in the histogram.\n        var numBuckets = buckets.length;\n        var maxBucketCount = 0;\n        var firstPeak = 0;\n        var firstPeakSize = 0;\n        for (var x = 0; x < numBuckets; x++) {\n            if (buckets[x] > firstPeakSize) {\n                firstPeak = x;\n                firstPeakSize = buckets[x];\n            }\n            if (buckets[x] > maxBucketCount) {\n                maxBucketCount = buckets[x];\n            }\n        }\n        // Find the second-tallest peak which is somewhat far from the tallest peak.\n        var secondPeak = 0;\n        var secondPeakScore = 0;\n        for (var x = 0; x < numBuckets; x++) {\n            var distanceToBiggest = x - firstPeak;\n            // Encourage more distant second peaks by multiplying by square of distance.\n            var score = buckets[x] * distanceToBiggest * distanceToBiggest;\n            if (score > secondPeakScore) {\n                secondPeak = x;\n                secondPeakScore = score;\n            }\n        }\n        // Make sure firstPeak corresponds to the black peak.\n        if (firstPeak > secondPeak) {\n            var temp = firstPeak;\n            firstPeak = secondPeak;\n            secondPeak = temp;\n        }\n        // If there is too little contrast in the image to pick a meaningful black point, throw rather\n        // than waste time trying to decode the image, and risk false positives.\n        if (secondPeak - firstPeak <= numBuckets / 16) {\n            throw new NotFoundException();\n        }\n        // Find a valley between them that is low and closer to the white peak.\n        var bestValley = secondPeak - 1;\n        var bestValleyScore = -1;\n        for (var x = secondPeak - 1; x > firstPeak; x--) {\n            var fromFirst = x - firstPeak;\n            var score = fromFirst * fromFirst * (secondPeak - x) * (maxBucketCount - buckets[x]);\n            if (score > bestValleyScore) {\n                bestValley = x;\n                bestValleyScore = score;\n            }\n        }\n        return bestValley << GlobalHistogramBinarizer.LUMINANCE_SHIFT;\n    };\n    GlobalHistogramBinarizer.LUMINANCE_BITS = 5;\n    GlobalHistogramBinarizer.LUMINANCE_SHIFT = 8 - GlobalHistogramBinarizer.LUMINANCE_BITS;\n    GlobalHistogramBinarizer.LUMINANCE_BUCKETS = 1 << GlobalHistogramBinarizer.LUMINANCE_BITS;\n    GlobalHistogramBinarizer.EMPTY = Uint8ClampedArray.from([0]);\n    return GlobalHistogramBinarizer;\n}(Binarizer));\nexport default GlobalHistogramBinarizer;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport GlobalHistogramBinarizer from './GlobalHistogramBinarizer';\nimport BitMatrix from './BitMatrix';\n/**\n * This class implements a local thresholding algorithm, which while slower than the\n * GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for\n * high frequency images of barcodes with black data on white backgrounds. For this application,\n * it does a much better job than a global blackpoint with severe shadows and gradients.\n * However it tends to produce artifacts on lower frequency images and is therefore not\n * a good general purpose binarizer for uses outside ZXing.\n *\n * This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers,\n * and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already\n * inherently local, and only fails for horizontal gradients. We can revisit that problem later,\n * but for now it was not a win to use local blocks for 1D.\n *\n * This Binarizer is the default for the unit tests and the recommended class for library users.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar HybridBinarizer = /** @class */ (function (_super) {\n    __extends(HybridBinarizer, _super);\n    function HybridBinarizer(source) {\n        var _this = _super.call(this, source) || this;\n        _this.matrix = null;\n        return _this;\n    }\n    /**\n     * Calculates the final BitMatrix once for all requests. This could be called once from the\n     * constructor instead, but there are some advantages to doing it lazily, such as making\n     * profiling easier, and not doing heavy lifting when callers don't expect it.\n     */\n    /*@Override*/\n    HybridBinarizer.prototype.getBlackMatrix = function () {\n        if (this.matrix !== null) {\n            return this.matrix;\n        }\n        var source = this.getLuminanceSource();\n        var width = source.getWidth();\n        var height = source.getHeight();\n        if (width >= HybridBinarizer.MINIMUM_DIMENSION && height >= HybridBinarizer.MINIMUM_DIMENSION) {\n            var luminances = source.getMatrix();\n            var subWidth = width >> HybridBinarizer.BLOCK_SIZE_POWER;\n            if ((width & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n                subWidth++;\n            }\n            var subHeight = height >> HybridBinarizer.BLOCK_SIZE_POWER;\n            if ((height & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n                subHeight++;\n            }\n            var blackPoints = HybridBinarizer.calculateBlackPoints(luminances, subWidth, subHeight, width, height);\n            var newMatrix = new BitMatrix(width, height);\n            HybridBinarizer.calculateThresholdForBlock(luminances, subWidth, subHeight, width, height, blackPoints, newMatrix);\n            this.matrix = newMatrix;\n        }\n        else {\n            // If the image is too small, fall back to the global histogram approach.\n            this.matrix = _super.prototype.getBlackMatrix.call(this);\n        }\n        return this.matrix;\n    };\n    /*@Override*/\n    HybridBinarizer.prototype.createBinarizer = function (source) {\n        return new HybridBinarizer(source);\n    };\n    /**\n     * For each block in the image, calculate the average black point using a 5x5 grid\n     * of the blocks around it. Also handles the corner cases (fractional blocks are computed based\n     * on the last pixels in the row/column which are also used in the previous block).\n     */\n    HybridBinarizer.calculateThresholdForBlock = function (luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/, blackPoints, matrix) {\n        var maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n        var maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n        for (var y = 0; y < subHeight; y++) {\n            var yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n            if (yoffset > maxYOffset) {\n                yoffset = maxYOffset;\n            }\n            var top_1 = HybridBinarizer.cap(y, 2, subHeight - 3);\n            for (var x = 0; x < subWidth; x++) {\n                var xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n                if (xoffset > maxXOffset) {\n                    xoffset = maxXOffset;\n                }\n                var left = HybridBinarizer.cap(x, 2, subWidth - 3);\n                var sum = 0;\n                for (var z = -2; z <= 2; z++) {\n                    var blackRow = blackPoints[top_1 + z];\n                    sum += blackRow[left - 2] + blackRow[left - 1] + blackRow[left] + blackRow[left + 1] + blackRow[left + 2];\n                }\n                var average = sum / 25;\n                HybridBinarizer.thresholdBlock(luminances, xoffset, yoffset, average, width, matrix);\n            }\n        }\n    };\n    HybridBinarizer.cap = function (value /*int*/, min /*int*/, max /*int*/) {\n        return value < min ? min : value > max ? max : value;\n    };\n    /**\n     * Applies a single threshold to a block of pixels.\n     */\n    HybridBinarizer.thresholdBlock = function (luminances, xoffset /*int*/, yoffset /*int*/, threshold /*int*/, stride /*int*/, matrix) {\n        for (var y = 0, offset = yoffset * stride + xoffset; y < HybridBinarizer.BLOCK_SIZE; y++, offset += stride) {\n            for (var x = 0; x < HybridBinarizer.BLOCK_SIZE; x++) {\n                // Comparison needs to be <= so that black == 0 pixels are black even if the threshold is 0.\n                if ((luminances[offset + x] & 0xFF) <= threshold) {\n                    matrix.set(xoffset + x, yoffset + y);\n                }\n            }\n        }\n    };\n    /**\n     * Calculates a single black point for each block of pixels and saves it away.\n     * See the following thread for a discussion of this algorithm:\n     *  http://groups.google.com/group/zxing/browse_thread/thread/d06efa2c35a7ddc0\n     */\n    HybridBinarizer.calculateBlackPoints = function (luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/) {\n        var maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n        var maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n        // tslint:disable-next-line:whitespace\n        var blackPoints = new Array(subHeight); // subWidth\n        for (var y = 0; y < subHeight; y++) {\n            blackPoints[y] = new Int32Array(subWidth);\n            var yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n            if (yoffset > maxYOffset) {\n                yoffset = maxYOffset;\n            }\n            for (var x = 0; x < subWidth; x++) {\n                var xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n                if (xoffset > maxXOffset) {\n                    xoffset = maxXOffset;\n                }\n                var sum = 0;\n                var min = 0xFF;\n                var max = 0;\n                for (var yy = 0, offset = yoffset * width + xoffset; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n                    for (var xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n                        var pixel = luminances[offset + xx] & 0xFF;\n                        sum += pixel;\n                        // still looking for good contrast\n                        if (pixel < min) {\n                            min = pixel;\n                        }\n                        if (pixel > max) {\n                            max = pixel;\n                        }\n                    }\n                    // short-circuit min/max tests once dynamic range is met\n                    if (max - min > HybridBinarizer.MIN_DYNAMIC_RANGE) {\n                        // finish the rest of the rows quickly\n                        for (yy++, offset += width; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n                            for (var xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n                                sum += luminances[offset + xx] & 0xFF;\n                            }\n                        }\n                    }\n                }\n                // The default estimate is the average of the values in the block.\n                var average = sum >> (HybridBinarizer.BLOCK_SIZE_POWER * 2);\n                if (max - min <= HybridBinarizer.MIN_DYNAMIC_RANGE) {\n                    // If variation within the block is low, assume this is a block with only light or only\n                    // dark pixels. In that case we do not want to use the average, as it would divide this\n                    // low contrast area into black and white pixels, essentially creating data out of noise.\n                    //\n                    // The default assumption is that the block is light/background. Since no estimate for\n                    // the level of dark pixels exists locally, use half the min for the block.\n                    average = min / 2;\n                    if (y > 0 && x > 0) {\n                        // Correct the \"white background\" assumption for blocks that have neighbors by comparing\n                        // the pixels in this block to the previously calculated black points. This is based on\n                        // the fact that dark barcode symbology is always surrounded by some amount of light\n                        // background for which reasonable black point estimates were made. The bp estimated at\n                        // the boundaries is used for the interior.\n                        // The (min < bp) is arbitrary but works better than other heuristics that were tried.\n                        var averageNeighborBlackPoint = (blackPoints[y - 1][x] + (2 * blackPoints[y][x - 1]) + blackPoints[y - 1][x - 1]) / 4;\n                        if (min < averageNeighborBlackPoint) {\n                            average = averageNeighborBlackPoint;\n                        }\n                    }\n                }\n                blackPoints[y][x] = average;\n            }\n        }\n        return blackPoints;\n    };\n    // This class uses 5x5 blocks to compute local luminance, where each block is 8x8 pixels.\n    // So this is the smallest dimension in each axis we can accept.\n    HybridBinarizer.BLOCK_SIZE_POWER = 3;\n    HybridBinarizer.BLOCK_SIZE = 1 << HybridBinarizer.BLOCK_SIZE_POWER; // ...0100...00\n    HybridBinarizer.BLOCK_SIZE_MASK = HybridBinarizer.BLOCK_SIZE - 1; // ...0011...11\n    HybridBinarizer.MINIMUM_DIMENSION = HybridBinarizer.BLOCK_SIZE * 5;\n    HybridBinarizer.MIN_DYNAMIC_RANGE = 24;\n    return HybridBinarizer;\n}(GlobalHistogramBinarizer));\nexport default HybridBinarizer;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport StringBuilder from './util/StringBuilder';\nimport UnsupportedOperationException from './UnsupportedOperationException';\n/*namespace com.google.zxing {*/\n/**\n * The purpose of this class hierarchy is to abstract different bitmap implementations across\n * platforms into a standard interface for requesting greyscale luminance values. The interface\n * only provides immutable methods; therefore crop and rotation create copies. This is to ensure\n * that one Reader does not modify the original luminance source and leave it in an unknown state\n * for other Readers in the chain.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar LuminanceSource = /** @class */ (function () {\n    function LuminanceSource(width /*int*/, height /*int*/) {\n        this.width = width;\n        this.height = height;\n    }\n    /**\n     * @return The width of the bitmap.\n     */\n    LuminanceSource.prototype.getWidth = function () {\n        return this.width;\n    };\n    /**\n     * @return The height of the bitmap.\n     */\n    LuminanceSource.prototype.getHeight = function () {\n        return this.height;\n    };\n    /**\n     * @return Whether this subclass supports cropping.\n     */\n    LuminanceSource.prototype.isCropSupported = function () {\n        return false;\n    };\n    /**\n     * Returns a new object with cropped image data. Implementations may keep a reference to the\n     * original data rather than a copy. Only callable if isCropSupported() is true.\n     *\n     * @param left The left coordinate, which must be in [0,getWidth())\n     * @param top The top coordinate, which must be in [0,getHeight())\n     * @param width The width of the rectangle to crop.\n     * @param height The height of the rectangle to crop.\n     * @return A cropped version of this object.\n     */\n    LuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        throw new UnsupportedOperationException('This luminance source does not support cropping.');\n    };\n    /**\n     * @return Whether this subclass supports counter-clockwise rotation.\n     */\n    LuminanceSource.prototype.isRotateSupported = function () {\n        return false;\n    };\n    /**\n     * Returns a new object with rotated image data by 90 degrees counterclockwise.\n     * Only callable if {@link #isRotateSupported()} is true.\n     *\n     * @return A rotated version of this object.\n     */\n    LuminanceSource.prototype.rotateCounterClockwise = function () {\n        throw new UnsupportedOperationException('This luminance source does not support rotation by 90 degrees.');\n    };\n    /**\n     * Returns a new object with rotated image data by 45 degrees counterclockwise.\n     * Only callable if {@link #isRotateSupported()} is true.\n     *\n     * @return A rotated version of this object.\n     */\n    LuminanceSource.prototype.rotateCounterClockwise45 = function () {\n        throw new UnsupportedOperationException('This luminance source does not support rotation by 45 degrees.');\n    };\n    /*@Override*/\n    LuminanceSource.prototype.toString = function () {\n        var row = new Uint8ClampedArray(this.width);\n        var result = new StringBuilder();\n        for (var y = 0; y < this.height; y++) {\n            var sourceRow = this.getRow(y, row);\n            for (var x = 0; x < this.width; x++) {\n                var luminance = sourceRow[x] & 0xFF;\n                var c = void 0;\n                if (luminance < 0x40) {\n                    c = '#';\n                }\n                else if (luminance < 0x80) {\n                    c = '+';\n                }\n                else if (luminance < 0xC0) {\n                    c = '.';\n                }\n                else {\n                    c = ' ';\n                }\n                result.append(c);\n            }\n            result.append('\\n');\n        }\n        return result.toString();\n    };\n    return LuminanceSource;\n}());\nexport default LuminanceSource;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport LuminanceSource from './LuminanceSource';\n/*namespace com.google.zxing {*/\n/**\n * A wrapper implementation of {@link LuminanceSource} which inverts the luminances it returns -- black becomes\n * white and vice versa, and each value becomes (255-value).\n *\n * @author Sean Owen\n */\nvar InvertedLuminanceSource = /** @class */ (function (_super) {\n    __extends(InvertedLuminanceSource, _super);\n    function InvertedLuminanceSource(delegate) {\n        var _this = _super.call(this, delegate.getWidth(), delegate.getHeight()) || this;\n        _this.delegate = delegate;\n        return _this;\n    }\n    /*@Override*/\n    InvertedLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n        var sourceRow = this.delegate.getRow(y, row);\n        var width = this.getWidth();\n        for (var i = 0; i < width; i++) {\n            sourceRow[i] = /*(byte)*/ (255 - (sourceRow[i] & 0xFF));\n        }\n        return sourceRow;\n    };\n    /*@Override*/\n    InvertedLuminanceSource.prototype.getMatrix = function () {\n        var matrix = this.delegate.getMatrix();\n        var length = this.getWidth() * this.getHeight();\n        var invertedMatrix = new Uint8ClampedArray(length);\n        for (var i = 0; i < length; i++) {\n            invertedMatrix[i] = /*(byte)*/ (255 - (matrix[i] & 0xFF));\n        }\n        return invertedMatrix;\n    };\n    /*@Override*/\n    InvertedLuminanceSource.prototype.isCropSupported = function () {\n        return this.delegate.isCropSupported();\n    };\n    /*@Override*/\n    InvertedLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        return new InvertedLuminanceSource(this.delegate.crop(left, top, width, height));\n    };\n    /*@Override*/\n    InvertedLuminanceSource.prototype.isRotateSupported = function () {\n        return this.delegate.isRotateSupported();\n    };\n    /**\n     * @return original delegate {@link LuminanceSource} since invert undoes itself\n     */\n    /*@Override*/\n    InvertedLuminanceSource.prototype.invert = function () {\n        return this.delegate;\n    };\n    /*@Override*/\n    InvertedLuminanceSource.prototype.rotateCounterClockwise = function () {\n        return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise());\n    };\n    /*@Override*/\n    InvertedLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n        return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise45());\n    };\n    return InvertedLuminanceSource;\n}(LuminanceSource));\nexport default InvertedLuminanceSource;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport InvertedLuminanceSource from '../core/InvertedLuminanceSource';\nimport LuminanceSource from '../core/LuminanceSource';\nimport IllegalArgumentException from '../core/IllegalArgumentException';\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar HTMLCanvasElementLuminanceSource = /** @class */ (function (_super) {\n    __extends(HTMLCanvasElementLuminanceSource, _super);\n    function HTMLCanvasElementLuminanceSource(canvas) {\n        var _this = _super.call(this, canvas.width, canvas.height) || this;\n        _this.canvas = canvas;\n        _this.tempCanvasElement = null;\n        _this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(canvas);\n        return _this;\n    }\n    HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData = function (canvas) {\n        var imageData = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);\n        return HTMLCanvasElementLuminanceSource.toGrayscaleBuffer(imageData.data, canvas.width, canvas.height);\n    };\n    HTMLCanvasElementLuminanceSource.toGrayscaleBuffer = function (imageBuffer, width, height) {\n        var grayscaleBuffer = new Uint8ClampedArray(width * height);\n        for (var i = 0, j = 0, length_1 = imageBuffer.length; i < length_1; i += 4, j++) {\n            var gray = void 0;\n            var alpha = imageBuffer[i + 3];\n            // The color of fully-transparent pixels is irrelevant. They are often, technically, fully-transparent\n            // black (0 alpha, and then 0 RGB). They are often used, of course as the \"white\" area in a\n            // barcode image. Force any such pixel to be white:\n            if (alpha === 0) {\n                gray = 0xFF;\n            }\n            else {\n                var pixelR = imageBuffer[i];\n                var pixelG = imageBuffer[i + 1];\n                var pixelB = imageBuffer[i + 2];\n                // .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC),\n                // (306*R) >> 10 is approximately equal to R*0.299, and so on.\n                // 0x200 >> 10 is 0.5, it implements rounding.\n                gray = (306 * pixelR +\n                    601 * pixelG +\n                    117 * pixelB +\n                    0x200) >> 10;\n            }\n            grayscaleBuffer[j] = gray;\n        }\n        return grayscaleBuffer;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n        if (y < 0 || y >= this.getHeight()) {\n            throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n        }\n        var width = this.getWidth();\n        var start = y * width;\n        if (row === null) {\n            row = this.buffer.slice(start, start + width);\n        }\n        else {\n            if (row.length < width) {\n                row = new Uint8ClampedArray(width);\n            }\n            // The underlying raster of image consists of bytes with the luminance values\n            // TODO: can avoid set/slice?\n            row.set(this.buffer.slice(start, start + width));\n        }\n        return row;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.getMatrix = function () {\n        return this.buffer;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.isCropSupported = function () {\n        return true;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        _super.prototype.crop.call(this, left, top, width, height);\n        return this;\n    };\n    /**\n     * This is always true, since the image is a gray-scale image.\n     *\n     * @return true\n     */\n    HTMLCanvasElementLuminanceSource.prototype.isRotateSupported = function () {\n        return true;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.rotateCounterClockwise = function () {\n        this.rotate(-90);\n        return this;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n        this.rotate(-45);\n        return this;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.getTempCanvasElement = function () {\n        if (null === this.tempCanvasElement) {\n            var tempCanvasElement = this.canvas.ownerDocument.createElement('canvas');\n            tempCanvasElement.width = this.canvas.width;\n            tempCanvasElement.height = this.canvas.height;\n            this.tempCanvasElement = tempCanvasElement;\n        }\n        return this.tempCanvasElement;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.rotate = function (angle) {\n        var tempCanvasElement = this.getTempCanvasElement();\n        var tempContext = tempCanvasElement.getContext('2d');\n        var angleRadians = angle * HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS;\n        // Calculate and set new dimensions for temp canvas\n        var width = this.canvas.width;\n        var height = this.canvas.height;\n        var newWidth = Math.ceil(Math.abs(Math.cos(angleRadians)) * width + Math.abs(Math.sin(angleRadians)) * height);\n        var newHeight = Math.ceil(Math.abs(Math.sin(angleRadians)) * width + Math.abs(Math.cos(angleRadians)) * height);\n        tempCanvasElement.width = newWidth;\n        tempCanvasElement.height = newHeight;\n        // Draw at center of temp canvas to prevent clipping of image data\n        tempContext.translate(newWidth / 2, newHeight / 2);\n        tempContext.rotate(angleRadians);\n        tempContext.drawImage(this.canvas, width / -2, height / -2);\n        this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(tempCanvasElement);\n        return this;\n    };\n    HTMLCanvasElementLuminanceSource.prototype.invert = function () {\n        return new InvertedLuminanceSource(this);\n    };\n    HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS = Math.PI / 180;\n    return HTMLCanvasElementLuminanceSource;\n}(LuminanceSource));\nexport { HTMLCanvasElementLuminanceSource };\n","/**\n * @deprecated Moving to @zxing/browser\n *\n * Video input device metadata containing the id and label of the device if available.\n */\nvar VideoInputDevice = /** @class */ (function () {\n    /**\n     * Creates an instance of VideoInputDevice.\n     *\n     * @param {string} deviceId the video input device id\n     * @param {string} label the label of the device if available\n     */\n    function VideoInputDevice(deviceId, label, groupId) {\n        this.deviceId = deviceId;\n        this.label = label;\n        /** @inheritdoc */\n        this.kind = 'videoinput';\n        this.groupId = groupId || undefined;\n    }\n    /** @inheritdoc */\n    VideoInputDevice.prototype.toJSON = function () {\n        return {\n            kind: this.kind,\n            groupId: this.groupId,\n            deviceId: this.deviceId,\n            label: this.label,\n        };\n    };\n    return VideoInputDevice;\n}());\nexport { VideoInputDevice };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport ArgumentException from '../core/ArgumentException';\nimport BinaryBitmap from '../core/BinaryBitmap';\nimport ChecksumException from '../core/ChecksumException';\nimport HybridBinarizer from '../core/common/HybridBinarizer';\nimport FormatException from '../core/FormatException';\nimport NotFoundException from '../core/NotFoundException';\nimport { HTMLCanvasElementLuminanceSource } from './HTMLCanvasElementLuminanceSource';\nimport { VideoInputDevice } from './VideoInputDevice';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Base class for browser code reader.\n */\nvar BrowserCodeReader = /** @class */ (function () {\n    /**\n     * Creates an instance of BrowserCodeReader.\n     * @param {Reader} reader The reader instance to decode the barcode\n     * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent successful decode tries\n     *\n     * @memberOf BrowserCodeReader\n     */\n    function BrowserCodeReader(reader, timeBetweenScansMillis, _hints) {\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        this.reader = reader;\n        this.timeBetweenScansMillis = timeBetweenScansMillis;\n        this._hints = _hints;\n        /**\n         * This will break the loop.\n         */\n        this._stopContinuousDecode = false;\n        /**\n         * This will break the loop.\n         */\n        this._stopAsyncDecode = false;\n        /**\n         * Delay time between decode attempts made by the scanner.\n         */\n        this._timeBetweenDecodingAttempts = 0;\n    }\n    Object.defineProperty(BrowserCodeReader.prototype, \"hasNavigator\", {\n        /**\n         * If navigator is present.\n         */\n        get: function () {\n            return typeof navigator !== 'undefined';\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BrowserCodeReader.prototype, \"isMediaDevicesSuported\", {\n        /**\n         * If mediaDevices under navigator is supported.\n         */\n        get: function () {\n            return this.hasNavigator && !!navigator.mediaDevices;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BrowserCodeReader.prototype, \"canEnumerateDevices\", {\n        /**\n         * If enumerateDevices under navigator is supported.\n         */\n        get: function () {\n            return !!(this.isMediaDevicesSuported && navigator.mediaDevices.enumerateDevices);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BrowserCodeReader.prototype, \"timeBetweenDecodingAttempts\", {\n        /** Time between two decoding tries in milli seconds. */\n        get: function () {\n            return this._timeBetweenDecodingAttempts;\n        },\n        /**\n         * Change the time span the decoder waits between two decoding tries.\n         *\n         * @param {number} millis Time between two decoding tries in milli seconds.\n         */\n        set: function (millis) {\n            this._timeBetweenDecodingAttempts = millis < 0 ? 0 : millis;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BrowserCodeReader.prototype, \"hints\", {\n        /**\n         * Sets the hints.\n         */\n        get: function () {\n            return this._hints;\n        },\n        /**\n         * Sets the hints.\n         */\n        set: function (hints) {\n            this._hints = hints || null;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Lists all the available video input devices.\n     */\n    BrowserCodeReader.prototype.listVideoInputDevices = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            var devices, videoDevices, devices_1, devices_1_1, device, kind, deviceId, label, groupId, videoDevice;\n            var e_1, _a;\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0:\n                        if (!this.hasNavigator) {\n                            throw new Error('Can\\'t enumerate devices, navigator is not present.');\n                        }\n                        if (!this.canEnumerateDevices) {\n                            throw new Error('Can\\'t enumerate devices, method not supported.');\n                        }\n                        return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()];\n                    case 1:\n                        devices = _b.sent();\n                        videoDevices = [];\n                        try {\n                            for (devices_1 = __values(devices), devices_1_1 = devices_1.next(); !devices_1_1.done; devices_1_1 = devices_1.next()) {\n                                device = devices_1_1.value;\n                                kind = device.kind === 'video' ? 'videoinput' : device.kind;\n                                if (kind !== 'videoinput') {\n                                    continue;\n                                }\n                                deviceId = device.deviceId || device.id;\n                                label = device.label || \"Video device \" + (videoDevices.length + 1);\n                                groupId = device.groupId;\n                                videoDevice = { deviceId: deviceId, label: label, kind: kind, groupId: groupId };\n                                videoDevices.push(videoDevice);\n                            }\n                        }\n                        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n                        finally {\n                            try {\n                                if (devices_1_1 && !devices_1_1.done && (_a = devices_1.return)) _a.call(devices_1);\n                            }\n                            finally { if (e_1) throw e_1.error; }\n                        }\n                        return [2 /*return*/, videoDevices];\n                }\n            });\n        });\n    };\n    /**\n     * Obtain the list of available devices with type 'videoinput'.\n     *\n     * @returns {Promise<VideoInputDevice[]>} an array of available video input devices\n     *\n     * @memberOf BrowserCodeReader\n     *\n     * @deprecated Use `listVideoInputDevices` instead.\n     */\n    BrowserCodeReader.prototype.getVideoInputDevices = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            var devices;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, this.listVideoInputDevices()];\n                    case 1:\n                        devices = _a.sent();\n                        return [2 /*return*/, devices.map(function (d) { return new VideoInputDevice(d.deviceId, d.label); })];\n                }\n            });\n        });\n    };\n    /**\n     * Let's you find a device using it's Id.\n     */\n    BrowserCodeReader.prototype.findDeviceById = function (deviceId) {\n        return __awaiter(this, void 0, void 0, function () {\n            var devices;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, this.listVideoInputDevices()];\n                    case 1:\n                        devices = _a.sent();\n                        if (!devices) {\n                            return [2 /*return*/, null];\n                        }\n                        return [2 /*return*/, devices.find(function (x) { return x.deviceId === deviceId; })];\n                }\n            });\n        });\n    };\n    /**\n     * Decodes the barcode from the device specified by deviceId while showing the video in the specified video element.\n     *\n     * @param deviceId the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n     * @param video the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     *\n     * @deprecated Use `decodeOnceFromVideoDevice` instead.\n     */\n    BrowserCodeReader.prototype.decodeFromInputVideoDevice = function (deviceId, videoSource) {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, this.decodeOnceFromVideoDevice(deviceId, videoSource)];\n                    case 1: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * In one attempt, tries to decode the barcode from the device specified by deviceId while showing the video in the specified video element.\n     *\n     * @param deviceId the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n     * @param video the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeOnceFromVideoDevice = function (deviceId, videoSource) {\n        return __awaiter(this, void 0, void 0, function () {\n            var videoConstraints, constraints;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        this.reset();\n                        if (!deviceId) {\n                            videoConstraints = { facingMode: 'environment' };\n                        }\n                        else {\n                            videoConstraints = { deviceId: { exact: deviceId } };\n                        }\n                        constraints = { video: videoConstraints };\n                        return [4 /*yield*/, this.decodeOnceFromConstraints(constraints, videoSource)];\n                    case 1: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * In one attempt, tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n     *\n     * @param constraints the media stream constraints to get s valid media stream to decode from\n     * @param video the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeOnceFromConstraints = function (constraints, videoSource) {\n        return __awaiter(this, void 0, void 0, function () {\n            var stream;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];\n                    case 1:\n                        stream = _a.sent();\n                        return [4 /*yield*/, this.decodeOnceFromStream(stream, videoSource)];\n                    case 2: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * In one attempt, tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n     *\n     * @param {MediaStream} [constraints] the media stream constraints to get s valid media stream to decode from\n     * @param {string|HTMLVideoElement} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns {Promise<Result>} The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeOnceFromStream = function (stream, videoSource) {\n        return __awaiter(this, void 0, void 0, function () {\n            var video, result;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        this.reset();\n                        return [4 /*yield*/, this.attachStreamToVideo(stream, videoSource)];\n                    case 1:\n                        video = _a.sent();\n                        return [4 /*yield*/, this.decodeOnce(video)];\n                    case 2:\n                        result = _a.sent();\n                        return [2 /*return*/, result];\n                }\n            });\n        });\n    };\n    /**\n     * Continuously decodes the barcode from the device specified by device while showing the video in the specified video element.\n     *\n     * @param {string|null} [deviceId] the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n     * @param {string|HTMLVideoElement|null} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns {Promise<void>}\n     *\n     * @memberOf BrowserCodeReader\n     *\n     * @deprecated Use `decodeFromVideoDevice` instead.\n     */\n    BrowserCodeReader.prototype.decodeFromInputVideoDeviceContinuously = function (deviceId, videoSource, callbackFn) {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, this.decodeFromVideoDevice(deviceId, videoSource, callbackFn)];\n                    case 1: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * Continuously tries to decode the barcode from the device specified by device while showing the video in the specified video element.\n     *\n     * @param {string|null} [deviceId] the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\n     * @param {string|HTMLVideoElement|null} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns {Promise<void>}\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeFromVideoDevice = function (deviceId, videoSource, callbackFn) {\n        return __awaiter(this, void 0, void 0, function () {\n            var videoConstraints, constraints;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        if (!deviceId) {\n                            videoConstraints = { facingMode: 'environment' };\n                        }\n                        else {\n                            videoConstraints = { deviceId: { exact: deviceId } };\n                        }\n                        constraints = { video: videoConstraints };\n                        return [4 /*yield*/, this.decodeFromConstraints(constraints, videoSource, callbackFn)];\n                    case 1: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * Continuously tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n     *\n     * @param {MediaStream} [constraints] the media stream constraints to get s valid media stream to decode from\n     * @param {string|HTMLVideoElement} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns {Promise<Result>} The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeFromConstraints = function (constraints, videoSource, callbackFn) {\n        return __awaiter(this, void 0, void 0, function () {\n            var stream;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];\n                    case 1:\n                        stream = _a.sent();\n                        return [4 /*yield*/, this.decodeFromStream(stream, videoSource, callbackFn)];\n                    case 2: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * In one attempt, tries to decode the barcode from a stream obtained from the given constraints while showing the video in the specified video element.\n     *\n     * @param {MediaStream} [constraints] the media stream constraints to get s valid media stream to decode from\n     * @param {string|HTMLVideoElement} [video] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\n     * @returns {Promise<Result>} The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeFromStream = function (stream, videoSource, callbackFn) {\n        return __awaiter(this, void 0, void 0, function () {\n            var video;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        this.reset();\n                        return [4 /*yield*/, this.attachStreamToVideo(stream, videoSource)];\n                    case 1:\n                        video = _a.sent();\n                        return [4 /*yield*/, this.decodeContinuously(video, callbackFn)];\n                    case 2: return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    /**\n     * Breaks the decoding loop.\n     */\n    BrowserCodeReader.prototype.stopAsyncDecode = function () {\n        this._stopAsyncDecode = true;\n    };\n    /**\n     * Breaks the decoding loop.\n     */\n    BrowserCodeReader.prototype.stopContinuousDecode = function () {\n        this._stopContinuousDecode = true;\n    };\n    /**\n     * Sets the new stream and request a new decoding-with-delay.\n     *\n     * @param stream The stream to be shown in the video element.\n     * @param decodeFn A callback for the decode method.\n     */\n    BrowserCodeReader.prototype.attachStreamToVideo = function (stream, videoSource) {\n        return __awaiter(this, void 0, void 0, function () {\n            var videoElement;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        videoElement = this.prepareVideoElement(videoSource);\n                        this.addVideoSource(videoElement, stream);\n                        this.videoElement = videoElement;\n                        this.stream = stream;\n                        return [4 /*yield*/, this.playVideoOnLoadAsync(videoElement)];\n                    case 1:\n                        _a.sent();\n                        return [2 /*return*/, videoElement];\n                }\n            });\n        });\n    };\n    /**\n     *\n     * @param videoElement\n     */\n    BrowserCodeReader.prototype.playVideoOnLoadAsync = function (videoElement) {\n        var _this = this;\n        return new Promise(function (resolve, reject) { return _this.playVideoOnLoad(videoElement, function () { return resolve(); }); });\n    };\n    /**\n     * Binds listeners and callbacks to the videoElement.\n     *\n     * @param element\n     * @param callbackFn\n     */\n    BrowserCodeReader.prototype.playVideoOnLoad = function (element, callbackFn) {\n        var _this = this;\n        this.videoEndedListener = function () { return _this.stopStreams(); };\n        this.videoCanPlayListener = function () { return _this.tryPlayVideo(element); };\n        element.addEventListener('ended', this.videoEndedListener);\n        element.addEventListener('canplay', this.videoCanPlayListener);\n        element.addEventListener('playing', callbackFn);\n        // if canplay was already fired, we won't know when to play, so just give it a try\n        this.tryPlayVideo(element);\n    };\n    /**\n     * Checks if the given video element is currently playing.\n     */\n    BrowserCodeReader.prototype.isVideoPlaying = function (video) {\n        return video.currentTime > 0 && !video.paused && !video.ended && video.readyState > 2;\n    };\n    /**\n     * Just tries to play the video and logs any errors.\n     * The play call is only made is the video is not already playing.\n     */\n    BrowserCodeReader.prototype.tryPlayVideo = function (videoElement) {\n        return __awaiter(this, void 0, void 0, function () {\n            var _a;\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0:\n                        if (this.isVideoPlaying(videoElement)) {\n                            console.warn('Trying to play video that is already playing.');\n                            return [2 /*return*/];\n                        }\n                        _b.label = 1;\n                    case 1:\n                        _b.trys.push([1, 3, , 4]);\n                        return [4 /*yield*/, videoElement.play()];\n                    case 2:\n                        _b.sent();\n                        return [3 /*break*/, 4];\n                    case 3:\n                        _a = _b.sent();\n                        console.warn('It was not possible to play the video.');\n                        return [3 /*break*/, 4];\n                    case 4: return [2 /*return*/];\n                }\n            });\n        });\n    };\n    /**\n     * Searches and validates a media element.\n     */\n    BrowserCodeReader.prototype.getMediaElement = function (mediaElementId, type) {\n        var mediaElement = document.getElementById(mediaElementId);\n        if (!mediaElement) {\n            throw new ArgumentException(\"element with id '\" + mediaElementId + \"' not found\");\n        }\n        if (mediaElement.nodeName.toLowerCase() !== type.toLowerCase()) {\n            throw new ArgumentException(\"element with id '\" + mediaElementId + \"' must be an \" + type + \" element\");\n        }\n        return mediaElement;\n    };\n    /**\n     * Decodes the barcode from an image.\n     *\n     * @param {(string|HTMLImageElement)} [source] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\n     * @param {string} [url]\n     * @returns {Promise<Result>} The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeFromImage = function (source, url) {\n        if (!source && !url) {\n            throw new ArgumentException('either imageElement with a src set or an url must be provided');\n        }\n        if (url && !source) {\n            return this.decodeFromImageUrl(url);\n        }\n        return this.decodeFromImageElement(source);\n    };\n    /**\n     * Decodes the barcode from a video.\n     *\n     * @param {(string|HTMLImageElement)} [source] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\n     * @param {string} [url]\n     * @returns {Promise<Result>} The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.decodeFromVideo = function (source, url) {\n        if (!source && !url) {\n            throw new ArgumentException('Either an element with a src set or an URL must be provided');\n        }\n        if (url && !source) {\n            return this.decodeFromVideoUrl(url);\n        }\n        return this.decodeFromVideoElement(source);\n    };\n    /**\n     * Decodes continuously the barcode from a video.\n     *\n     * @param {(string|HTMLImageElement)} [source] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\n     * @param {string} [url]\n     * @returns {Promise<Result>} The decoding result.\n     *\n     * @memberOf BrowserCodeReader\n     *\n     * @experimental\n     */\n    BrowserCodeReader.prototype.decodeFromVideoContinuously = function (source, url, callbackFn) {\n        if (undefined === source && undefined === url) {\n            throw new ArgumentException('Either an element with a src set or an URL must be provided');\n        }\n        if (url && !source) {\n            return this.decodeFromVideoUrlContinuously(url, callbackFn);\n        }\n        return this.decodeFromVideoElementContinuously(source, callbackFn);\n    };\n    /**\n     * Decodes something from an image HTML element.\n     */\n    BrowserCodeReader.prototype.decodeFromImageElement = function (source) {\n        if (!source) {\n            throw new ArgumentException('An image element must be provided.');\n        }\n        this.reset();\n        var element = this.prepareImageElement(source);\n        this.imageElement = element;\n        var task;\n        if (this.isImageLoaded(element)) {\n            task = this.decodeOnce(element, false, true);\n        }\n        else {\n            task = this._decodeOnLoadImage(element);\n        }\n        return task;\n    };\n    /**\n     * Decodes something from an image HTML element.\n     */\n    BrowserCodeReader.prototype.decodeFromVideoElement = function (source) {\n        var element = this._decodeFromVideoElementSetup(source);\n        return this._decodeOnLoadVideo(element);\n    };\n    /**\n     * Decodes something from an image HTML element.\n     */\n    BrowserCodeReader.prototype.decodeFromVideoElementContinuously = function (source, callbackFn) {\n        var element = this._decodeFromVideoElementSetup(source);\n        return this._decodeOnLoadVideoContinuously(element, callbackFn);\n    };\n    /**\n     * Sets up the video source so it can be decoded when loaded.\n     *\n     * @param source The video source element.\n     */\n    BrowserCodeReader.prototype._decodeFromVideoElementSetup = function (source) {\n        if (!source) {\n            throw new ArgumentException('A video element must be provided.');\n        }\n        this.reset();\n        var element = this.prepareVideoElement(source);\n        // defines the video element before starts decoding\n        this.videoElement = element;\n        return element;\n    };\n    /**\n     * Decodes an image from a URL.\n     */\n    BrowserCodeReader.prototype.decodeFromImageUrl = function (url) {\n        if (!url) {\n            throw new ArgumentException('An URL must be provided.');\n        }\n        this.reset();\n        var element = this.prepareImageElement();\n        this.imageElement = element;\n        var decodeTask = this._decodeOnLoadImage(element);\n        element.src = url;\n        return decodeTask;\n    };\n    /**\n     * Decodes an image from a URL.\n     */\n    BrowserCodeReader.prototype.decodeFromVideoUrl = function (url) {\n        if (!url) {\n            throw new ArgumentException('An URL must be provided.');\n        }\n        this.reset();\n        // creates a new element\n        var element = this.prepareVideoElement();\n        var decodeTask = this.decodeFromVideoElement(element);\n        element.src = url;\n        return decodeTask;\n    };\n    /**\n     * Decodes an image from a URL.\n     *\n     * @experimental\n     */\n    BrowserCodeReader.prototype.decodeFromVideoUrlContinuously = function (url, callbackFn) {\n        if (!url) {\n            throw new ArgumentException('An URL must be provided.');\n        }\n        this.reset();\n        // creates a new element\n        var element = this.prepareVideoElement();\n        var decodeTask = this.decodeFromVideoElementContinuously(element, callbackFn);\n        element.src = url;\n        return decodeTask;\n    };\n    BrowserCodeReader.prototype._decodeOnLoadImage = function (element) {\n        var _this = this;\n        return new Promise(function (resolve, reject) {\n            _this.imageLoadedListener = function () { return _this.decodeOnce(element, false, true).then(resolve, reject); };\n            element.addEventListener('load', _this.imageLoadedListener);\n        });\n    };\n    BrowserCodeReader.prototype._decodeOnLoadVideo = function (videoElement) {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: \n                    // plays the video\n                    return [4 /*yield*/, this.playVideoOnLoadAsync(videoElement)];\n                    case 1:\n                        // plays the video\n                        _a.sent();\n                        return [4 /*yield*/, this.decodeOnce(videoElement)];\n                    case 2: \n                    // starts decoding after played the video\n                    return [2 /*return*/, _a.sent()];\n                }\n            });\n        });\n    };\n    BrowserCodeReader.prototype._decodeOnLoadVideoContinuously = function (videoElement, callbackFn) {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: \n                    // plays the video\n                    return [4 /*yield*/, this.playVideoOnLoadAsync(videoElement)];\n                    case 1:\n                        // plays the video\n                        _a.sent();\n                        // starts decoding after played the video\n                        this.decodeContinuously(videoElement, callbackFn);\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    BrowserCodeReader.prototype.isImageLoaded = function (img) {\n        // During the onload event, IE correctly identifies any images that\n        // weren’t downloaded as not complete. Others should too. Gecko-based\n        // browsers act like NS4 in that they report this incorrectly.\n        if (!img.complete) {\n            return false;\n        }\n        // However, they do have two very useful properties: naturalWidth and\n        // naturalHeight. These give the true size of the image. If it failed\n        // to load, either of these should be zero.\n        if (img.naturalWidth === 0) {\n            return false;\n        }\n        // No other way of checking: assume it’s ok.\n        return true;\n    };\n    BrowserCodeReader.prototype.prepareImageElement = function (imageSource) {\n        var imageElement;\n        if (typeof imageSource === 'undefined') {\n            imageElement = document.createElement('img');\n            imageElement.width = 200;\n            imageElement.height = 200;\n        }\n        if (typeof imageSource === 'string') {\n            imageElement = this.getMediaElement(imageSource, 'img');\n        }\n        if (imageSource instanceof HTMLImageElement) {\n            imageElement = imageSource;\n        }\n        return imageElement;\n    };\n    /**\n     * Sets a HTMLVideoElement for scanning or creates a new one.\n     *\n     * @param videoSource The HTMLVideoElement to be set.\n     */\n    BrowserCodeReader.prototype.prepareVideoElement = function (videoSource) {\n        var videoElement;\n        if (!videoSource && typeof document !== 'undefined') {\n            videoElement = document.createElement('video');\n            videoElement.width = 200;\n            videoElement.height = 200;\n        }\n        if (typeof videoSource === 'string') {\n            videoElement = this.getMediaElement(videoSource, 'video');\n        }\n        if (videoSource instanceof HTMLVideoElement) {\n            videoElement = videoSource;\n        }\n        // Needed for iOS 11\n        videoElement.setAttribute('autoplay', 'true');\n        videoElement.setAttribute('muted', 'true');\n        videoElement.setAttribute('playsinline', 'true');\n        return videoElement;\n    };\n    /**\n     * Tries to decode from the video input until it finds some value.\n     */\n    BrowserCodeReader.prototype.decodeOnce = function (element, retryIfNotFound, retryIfChecksumOrFormatError) {\n        var _this = this;\n        if (retryIfNotFound === void 0) { retryIfNotFound = true; }\n        if (retryIfChecksumOrFormatError === void 0) { retryIfChecksumOrFormatError = true; }\n        this._stopAsyncDecode = false;\n        var loop = function (resolve, reject) {\n            if (_this._stopAsyncDecode) {\n                reject(new NotFoundException('Video stream has ended before any code could be detected.'));\n                _this._stopAsyncDecode = undefined;\n                return;\n            }\n            try {\n                var result = _this.decode(element);\n                resolve(result);\n            }\n            catch (e) {\n                var ifNotFound = retryIfNotFound && e instanceof NotFoundException;\n                var isChecksumOrFormatError = e instanceof ChecksumException || e instanceof FormatException;\n                var ifChecksumOrFormat = isChecksumOrFormatError && retryIfChecksumOrFormatError;\n                if (ifNotFound || ifChecksumOrFormat) {\n                    // trying again\n                    return setTimeout(loop, _this._timeBetweenDecodingAttempts, resolve, reject);\n                }\n                reject(e);\n            }\n        };\n        return new Promise(function (resolve, reject) { return loop(resolve, reject); });\n    };\n    /**\n     * Continuously decodes from video input.\n     */\n    BrowserCodeReader.prototype.decodeContinuously = function (element, callbackFn) {\n        var _this = this;\n        this._stopContinuousDecode = false;\n        var loop = function () {\n            if (_this._stopContinuousDecode) {\n                _this._stopContinuousDecode = undefined;\n                return;\n            }\n            try {\n                var result = _this.decode(element);\n                callbackFn(result, null);\n                setTimeout(loop, _this.timeBetweenScansMillis);\n            }\n            catch (e) {\n                callbackFn(null, e);\n                var isChecksumOrFormatError = e instanceof ChecksumException || e instanceof FormatException;\n                var isNotFound = e instanceof NotFoundException;\n                if (isChecksumOrFormatError || isNotFound) {\n                    // trying again\n                    setTimeout(loop, _this._timeBetweenDecodingAttempts);\n                }\n            }\n        };\n        loop();\n    };\n    /**\n     * Gets the BinaryBitmap for ya! (and decodes it)\n     */\n    BrowserCodeReader.prototype.decode = function (element) {\n        // get binary bitmap for decode function\n        var binaryBitmap = this.createBinaryBitmap(element);\n        return this.decodeBitmap(binaryBitmap);\n    };\n    /**\n     * Creates a binaryBitmap based in some image source.\n     *\n     * @param mediaElement HTML element containing drawable image source.\n     */\n    BrowserCodeReader.prototype.createBinaryBitmap = function (mediaElement) {\n        var ctx = this.getCaptureCanvasContext(mediaElement);\n        this.drawImageOnCanvas(ctx, mediaElement);\n        var canvas = this.getCaptureCanvas(mediaElement);\n        var luminanceSource = new HTMLCanvasElementLuminanceSource(canvas);\n        var hybridBinarizer = new HybridBinarizer(luminanceSource);\n        return new BinaryBitmap(hybridBinarizer);\n    };\n    /**\n     *\n     */\n    BrowserCodeReader.prototype.getCaptureCanvasContext = function (mediaElement) {\n        if (!this.captureCanvasContext) {\n            var elem = this.getCaptureCanvas(mediaElement);\n            var ctx = elem.getContext('2d');\n            this.captureCanvasContext = ctx;\n        }\n        return this.captureCanvasContext;\n    };\n    /**\n     *\n     */\n    BrowserCodeReader.prototype.getCaptureCanvas = function (mediaElement) {\n        if (!this.captureCanvas) {\n            var elem = this.createCaptureCanvas(mediaElement);\n            this.captureCanvas = elem;\n        }\n        return this.captureCanvas;\n    };\n    /**\n     * Ovewriting this allows you to manipulate the snapshot image in anyway you want before decode.\n     */\n    BrowserCodeReader.prototype.drawImageOnCanvas = function (canvasElementContext, srcElement) {\n        canvasElementContext.drawImage(srcElement, 0, 0);\n    };\n    /**\n     * Call the encapsulated readers decode\n     */\n    BrowserCodeReader.prototype.decodeBitmap = function (binaryBitmap) {\n        return this.reader.decode(binaryBitmap, this._hints);\n    };\n    /**\n     * 🖌 Prepares the canvas for capture and scan frames.\n     */\n    BrowserCodeReader.prototype.createCaptureCanvas = function (mediaElement) {\n        if (typeof document === 'undefined') {\n            this._destroyCaptureCanvas();\n            return null;\n        }\n        var canvasElement = document.createElement('canvas');\n        var width;\n        var height;\n        if (typeof mediaElement !== 'undefined') {\n            if (mediaElement instanceof HTMLVideoElement) {\n                width = mediaElement.videoWidth;\n                height = mediaElement.videoHeight;\n            }\n            else if (mediaElement instanceof HTMLImageElement) {\n                width = mediaElement.naturalWidth || mediaElement.width;\n                height = mediaElement.naturalHeight || mediaElement.height;\n            }\n        }\n        canvasElement.style.width = width + 'px';\n        canvasElement.style.height = height + 'px';\n        canvasElement.width = width;\n        canvasElement.height = height;\n        return canvasElement;\n    };\n    /**\n     * Stops the continuous scan and cleans the stream.\n     */\n    BrowserCodeReader.prototype.stopStreams = function () {\n        if (this.stream) {\n            this.stream.getVideoTracks().forEach(function (t) { return t.stop(); });\n            this.stream = undefined;\n        }\n        if (this._stopAsyncDecode === false) {\n            this.stopAsyncDecode();\n        }\n        if (this._stopContinuousDecode === false) {\n            this.stopContinuousDecode();\n        }\n    };\n    /**\n     * Resets the code reader to the initial state. Cancels any ongoing barcode scanning from video or camera.\n     *\n     * @memberOf BrowserCodeReader\n     */\n    BrowserCodeReader.prototype.reset = function () {\n        // stops the camera, preview and scan 🔴\n        this.stopStreams();\n        // clean and forget about HTML elements\n        this._destroyVideoElement();\n        this._destroyImageElement();\n        this._destroyCaptureCanvas();\n    };\n    BrowserCodeReader.prototype._destroyVideoElement = function () {\n        if (!this.videoElement) {\n            return;\n        }\n        // first gives freedon to the element 🕊\n        if (typeof this.videoEndedListener !== 'undefined') {\n            this.videoElement.removeEventListener('ended', this.videoEndedListener);\n        }\n        if (typeof this.videoPlayingEventListener !== 'undefined') {\n            this.videoElement.removeEventListener('playing', this.videoPlayingEventListener);\n        }\n        if (typeof this.videoCanPlayListener !== 'undefined') {\n            this.videoElement.removeEventListener('loadedmetadata', this.videoCanPlayListener);\n        }\n        // then forgets about that element 😢\n        this.cleanVideoSource(this.videoElement);\n        this.videoElement = undefined;\n    };\n    BrowserCodeReader.prototype._destroyImageElement = function () {\n        if (!this.imageElement) {\n            return;\n        }\n        // first gives freedon to the element 🕊\n        if (undefined !== this.imageLoadedListener) {\n            this.imageElement.removeEventListener('load', this.imageLoadedListener);\n        }\n        // then forget about that element 😢\n        this.imageElement.src = undefined;\n        this.imageElement.removeAttribute('src');\n        this.imageElement = undefined;\n    };\n    /**\n     * Cleans canvas references 🖌\n     */\n    BrowserCodeReader.prototype._destroyCaptureCanvas = function () {\n        // then forget about that element 😢\n        this.captureCanvasContext = undefined;\n        this.captureCanvas = undefined;\n    };\n    /**\n     * Defines what the videoElement src will be.\n     *\n     * @param videoElement\n     * @param stream\n     */\n    BrowserCodeReader.prototype.addVideoSource = function (videoElement, stream) {\n        // Older browsers may not have `srcObject`\n        try {\n            // @note Throws Exception if interrupted by a new loaded request\n            videoElement.srcObject = stream;\n        }\n        catch (err) {\n            // @note Avoid using this in new browsers, as it is going away.\n            videoElement.src = URL.createObjectURL(stream);\n        }\n    };\n    /**\n     * Unbinds a HTML video src property.\n     *\n     * @param videoElement\n     */\n    BrowserCodeReader.prototype.cleanVideoSource = function (videoElement) {\n        try {\n            videoElement.srcObject = null;\n        }\n        catch (err) {\n            videoElement.src = '';\n        }\n        this.videoElement.removeAttribute('src');\n    };\n    return BrowserCodeReader;\n}());\nexport { BrowserCodeReader };\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport System from './util/System';\n/**\n * <p>Encapsulates the result of decoding a barcode within an image.</p>\n *\n * @author Sean Owen\n */\nvar Result = /** @class */ (function () {\n    // public constructor(private text: string,\n    //               Uint8Array rawBytes,\n    //               ResultPoconst resultPoints: Int32Array,\n    //               BarcodeFormat format) {\n    //   this(text, rawBytes, resultPoints, format, System.currentTimeMillis())\n    // }\n    // public constructor(text: string,\n    //               Uint8Array rawBytes,\n    //               ResultPoconst resultPoints: Int32Array,\n    //               BarcodeFormat format,\n    //               long timestamp) {\n    //   this(text, rawBytes, rawBytes == null ? 0 : 8 * rawBytes.length,\n    //        resultPoints, format, timestamp)\n    // }\n    function Result(text, rawBytes, numBits, resultPoints, format, timestamp) {\n        if (numBits === void 0) { numBits = rawBytes == null ? 0 : 8 * rawBytes.length; }\n        if (timestamp === void 0) { timestamp = System.currentTimeMillis(); }\n        this.text = text;\n        this.rawBytes = rawBytes;\n        this.numBits = numBits;\n        this.resultPoints = resultPoints;\n        this.format = format;\n        this.timestamp = timestamp;\n        this.text = text;\n        this.rawBytes = rawBytes;\n        if (undefined === numBits || null === numBits) {\n            this.numBits = (rawBytes === null || rawBytes === undefined) ? 0 : 8 * rawBytes.length;\n        }\n        else {\n            this.numBits = numBits;\n        }\n        this.resultPoints = resultPoints;\n        this.format = format;\n        this.resultMetadata = null;\n        if (undefined === timestamp || null === timestamp) {\n            this.timestamp = System.currentTimeMillis();\n        }\n        else {\n            this.timestamp = timestamp;\n        }\n    }\n    /**\n     * @return raw text encoded by the barcode\n     */\n    Result.prototype.getText = function () {\n        return this.text;\n    };\n    /**\n     * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}\n     */\n    Result.prototype.getRawBytes = function () {\n        return this.rawBytes;\n    };\n    /**\n     * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\n     * @since 3.3.0\n     */\n    Result.prototype.getNumBits = function () {\n        return this.numBits;\n    };\n    /**\n     * @return points related to the barcode in the image. These are typically points\n     *         identifying finder patterns or the corners of the barcode. The exact meaning is\n     *         specific to the type of barcode that was decoded.\n     */\n    Result.prototype.getResultPoints = function () {\n        return this.resultPoints;\n    };\n    /**\n     * @return {@link BarcodeFormat} representing the format of the barcode that was decoded\n     */\n    Result.prototype.getBarcodeFormat = function () {\n        return this.format;\n    };\n    /**\n     * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be\n     *   {@code null}. This contains optional metadata about what was detected about the barcode,\n     *   like orientation.\n     */\n    Result.prototype.getResultMetadata = function () {\n        return this.resultMetadata;\n    };\n    Result.prototype.putMetadata = function (type, value) {\n        if (this.resultMetadata === null) {\n            this.resultMetadata = new Map();\n        }\n        this.resultMetadata.set(type, value);\n    };\n    Result.prototype.putAllMetadata = function (metadata) {\n        if (metadata !== null) {\n            if (this.resultMetadata === null) {\n                this.resultMetadata = metadata;\n            }\n            else {\n                this.resultMetadata = new Map(metadata);\n            }\n        }\n    };\n    Result.prototype.addResultPoints = function (newPoints) {\n        var oldPoints = this.resultPoints;\n        if (oldPoints === null) {\n            this.resultPoints = newPoints;\n        }\n        else if (newPoints !== null && newPoints.length > 0) {\n            var allPoints = new Array(oldPoints.length + newPoints.length);\n            System.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length);\n            System.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length);\n            this.resultPoints = allPoints;\n        }\n    };\n    Result.prototype.getTimestamp = function () {\n        return this.timestamp;\n    };\n    /*@Override*/\n    Result.prototype.toString = function () {\n        return this.text;\n    };\n    return Result;\n}());\nexport default Result;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * Represents some type of metadata about the result of the decoding that the decoder\n * wishes to communicate back to the caller.\n *\n * @author Sean Owen\n */\nvar ResultMetadataType;\n(function (ResultMetadataType) {\n    /**\n     * Unspecified, application-specific metadata. Maps to an unspecified {@link Object}.\n     */\n    ResultMetadataType[ResultMetadataType[\"OTHER\"] = 0] = \"OTHER\";\n    /**\n     * Denotes the likely approximate orientation of the barcode in the image. This value\n     * is given as degrees rotated clockwise from the normal, upright orientation.\n     * For example a 1D barcode which was found by reading top-to-bottom would be\n     * said to have orientation \"90\". This key maps to an {@link Integer} whose\n     * value is in the range [0,360).\n     */\n    ResultMetadataType[ResultMetadataType[\"ORIENTATION\"] = 1] = \"ORIENTATION\";\n    /**\n     * <p>2D barcode formats typically encode text, but allow for a sort of 'byte mode'\n     * which is sometimes used to encode binary data. While {@link Result} makes available\n     * the complete raw bytes in the barcode for these formats, it does not offer the bytes\n     * from the byte segments alone.</p>\n     *\n     * <p>This maps to a {@link java.util.List} of byte arrays corresponding to the\n     * raw bytes in the byte segments in the barcode, in order.</p>\n     */\n    ResultMetadataType[ResultMetadataType[\"BYTE_SEGMENTS\"] = 2] = \"BYTE_SEGMENTS\";\n    /**\n     * Error correction level used, if applicable. The value type depends on the\n     * format, but is typically a String.\n     */\n    ResultMetadataType[ResultMetadataType[\"ERROR_CORRECTION_LEVEL\"] = 3] = \"ERROR_CORRECTION_LEVEL\";\n    /**\n     * For some periodicals, indicates the issue number as an {@link Integer}.\n     */\n    ResultMetadataType[ResultMetadataType[\"ISSUE_NUMBER\"] = 4] = \"ISSUE_NUMBER\";\n    /**\n     * For some products, indicates the suggested retail price in the barcode as a\n     * formatted {@link String}.\n     */\n    ResultMetadataType[ResultMetadataType[\"SUGGESTED_PRICE\"] = 5] = \"SUGGESTED_PRICE\";\n    /**\n     * For some products, the possible country of manufacture as a {@link String} denoting the\n     * ISO country code. Some map to multiple possible countries, like \"US/CA\".\n     */\n    ResultMetadataType[ResultMetadataType[\"POSSIBLE_COUNTRY\"] = 6] = \"POSSIBLE_COUNTRY\";\n    /**\n     * For some products, the extension text\n     */\n    ResultMetadataType[ResultMetadataType[\"UPC_EAN_EXTENSION\"] = 7] = \"UPC_EAN_EXTENSION\";\n    /**\n     * PDF417-specific metadata\n     */\n    ResultMetadataType[ResultMetadataType[\"PDF417_EXTRA_METADATA\"] = 8] = \"PDF417_EXTRA_METADATA\";\n    /**\n     * If the code format supports structured append and the current scanned code is part of one then the\n     * sequence number is given with it.\n     */\n    ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_SEQUENCE\"] = 9] = \"STRUCTURED_APPEND_SEQUENCE\";\n    /**\n     * If the code format supports structured append and the current scanned code is part of one then the\n     * parity is given with it.\n     */\n    ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_PARITY\"] = 10] = \"STRUCTURED_APPEND_PARITY\";\n})(ResultMetadataType || (ResultMetadataType = {}));\nexport default ResultMetadataType;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport DecoderResult from '../../common/DecoderResult';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport IllegalStateException from '../../IllegalStateException';\nimport FormatException from '../../FormatException';\nimport StringUtils from '../../common/StringUtils';\nimport Integer from '../../util/Integer';\n// import java.util.Arrays;\nvar Table;\n(function (Table) {\n    Table[Table[\"UPPER\"] = 0] = \"UPPER\";\n    Table[Table[\"LOWER\"] = 1] = \"LOWER\";\n    Table[Table[\"MIXED\"] = 2] = \"MIXED\";\n    Table[Table[\"DIGIT\"] = 3] = \"DIGIT\";\n    Table[Table[\"PUNCT\"] = 4] = \"PUNCT\";\n    Table[Table[\"BINARY\"] = 5] = \"BINARY\";\n})(Table || (Table = {}));\n/**\n * <p>The main class which implements Aztec Code decoding -- as opposed to locating and extracting\n * the Aztec Code from an image.</p>\n *\n * @author David Olivier\n */\nvar Decoder = /** @class */ (function () {\n    function Decoder() {\n    }\n    Decoder.prototype.decode = function (detectorResult) {\n        this.ddata = detectorResult;\n        var matrix = detectorResult.getBits();\n        var rawbits = this.extractBits(matrix);\n        var correctedBits = this.correctBits(rawbits);\n        var rawBytes = Decoder.convertBoolArrayToByteArray(correctedBits);\n        var result = Decoder.getEncodedData(correctedBits);\n        var decoderResult = new DecoderResult(rawBytes, result, null, null);\n        decoderResult.setNumBits(correctedBits.length);\n        return decoderResult;\n    };\n    // This method is used for testing the high-level encoder\n    Decoder.highLevelDecode = function (correctedBits) {\n        return this.getEncodedData(correctedBits);\n    };\n    /**\n     * Gets the string encoded in the aztec code bits\n     *\n     * @return the decoded string\n     */\n    Decoder.getEncodedData = function (correctedBits) {\n        var endIndex = correctedBits.length;\n        var latchTable = Table.UPPER; // table most recently latched to\n        var shiftTable = Table.UPPER; // table to use for the next read\n        var result = '';\n        var index = 0;\n        while (index < endIndex) {\n            if (shiftTable === Table.BINARY) {\n                if (endIndex - index < 5) {\n                    break;\n                }\n                var length_1 = Decoder.readCode(correctedBits, index, 5);\n                index += 5;\n                if (length_1 === 0) {\n                    if (endIndex - index < 11) {\n                        break;\n                    }\n                    length_1 = Decoder.readCode(correctedBits, index, 11) + 31;\n                    index += 11;\n                }\n                for (var charCount = 0; charCount < length_1; charCount++) {\n                    if (endIndex - index < 8) {\n                        index = endIndex; // Force outer loop to exit\n                        break;\n                    }\n                    var code = Decoder.readCode(correctedBits, index, 8);\n                    result += /*(char)*/ StringUtils.castAsNonUtf8Char(code);\n                    index += 8;\n                }\n                // Go back to whatever mode we had been in\n                shiftTable = latchTable;\n            }\n            else {\n                var size = shiftTable === Table.DIGIT ? 4 : 5;\n                if (endIndex - index < size) {\n                    break;\n                }\n                var code = Decoder.readCode(correctedBits, index, size);\n                index += size;\n                var str = Decoder.getCharacter(shiftTable, code);\n                if (str.startsWith('CTRL_')) {\n                    // Table changes\n                    // ISO/IEC 24778:2008 prescribes ending a shift sequence in the mode from which it was invoked.\n                    // That's including when that mode is a shift.\n                    // Our test case dlusbs.png for issue #642 exercises that.\n                    latchTable = shiftTable; // Latch the current mode, so as to return to Upper after U/S B/S\n                    shiftTable = Decoder.getTable(str.charAt(5));\n                    if (str.charAt(6) === 'L') {\n                        latchTable = shiftTable;\n                    }\n                }\n                else {\n                    result += str;\n                    // Go back to whatever mode we had been in\n                    shiftTable = latchTable;\n                }\n            }\n        }\n        return result;\n    };\n    /**\n     * gets the table corresponding to the char passed\n     */\n    Decoder.getTable = function (t) {\n        switch (t) {\n            case 'L':\n                return Table.LOWER;\n            case 'P':\n                return Table.PUNCT;\n            case 'M':\n                return Table.MIXED;\n            case 'D':\n                return Table.DIGIT;\n            case 'B':\n                return Table.BINARY;\n            case 'U':\n            default:\n                return Table.UPPER;\n        }\n    };\n    /**\n     * Gets the character (or string) corresponding to the passed code in the given table\n     *\n     * @param table the table used\n     * @param code the code of the character\n     */\n    Decoder.getCharacter = function (table, code) {\n        switch (table) {\n            case Table.UPPER:\n                return Decoder.UPPER_TABLE[code];\n            case Table.LOWER:\n                return Decoder.LOWER_TABLE[code];\n            case Table.MIXED:\n                return Decoder.MIXED_TABLE[code];\n            case Table.PUNCT:\n                return Decoder.PUNCT_TABLE[code];\n            case Table.DIGIT:\n                return Decoder.DIGIT_TABLE[code];\n            default:\n                // Should not reach here.\n                throw new IllegalStateException('Bad table');\n        }\n    };\n    /**\n     * <p>Performs RS error correction on an array of bits.</p>\n     *\n     * @return the corrected array\n     * @throws FormatException if the input contains too many errors\n     */\n    Decoder.prototype.correctBits = function (rawbits) {\n        var gf;\n        var codewordSize;\n        if (this.ddata.getNbLayers() <= 2) {\n            codewordSize = 6;\n            gf = GenericGF.AZTEC_DATA_6;\n        }\n        else if (this.ddata.getNbLayers() <= 8) {\n            codewordSize = 8;\n            gf = GenericGF.AZTEC_DATA_8;\n        }\n        else if (this.ddata.getNbLayers() <= 22) {\n            codewordSize = 10;\n            gf = GenericGF.AZTEC_DATA_10;\n        }\n        else {\n            codewordSize = 12;\n            gf = GenericGF.AZTEC_DATA_12;\n        }\n        var numDataCodewords = this.ddata.getNbDatablocks();\n        var numCodewords = rawbits.length / codewordSize;\n        if (numCodewords < numDataCodewords) {\n            throw new FormatException();\n        }\n        var offset = rawbits.length % codewordSize;\n        var dataWords = new Int32Array(numCodewords);\n        for (var i = 0; i < numCodewords; i++, offset += codewordSize) {\n            dataWords[i] = Decoder.readCode(rawbits, offset, codewordSize);\n        }\n        try {\n            var rsDecoder = new ReedSolomonDecoder(gf);\n            rsDecoder.decode(dataWords, numCodewords - numDataCodewords);\n        }\n        catch (ex) {\n            throw new FormatException(ex);\n        }\n        // Now perform the unstuffing operation.\n        // First, count how many bits are going to be thrown out as stuffing\n        var mask = (1 << codewordSize) - 1;\n        var stuffedBits = 0;\n        for (var i = 0; i < numDataCodewords; i++) {\n            var dataWord = dataWords[i];\n            if (dataWord === 0 || dataWord === mask) {\n                throw new FormatException();\n            }\n            else if (dataWord === 1 || dataWord === mask - 1) {\n                stuffedBits++;\n            }\n        }\n        // Now, actually unpack the bits and remove the stuffing\n        var correctedBits = new Array(numDataCodewords * codewordSize - stuffedBits);\n        var index = 0;\n        for (var i = 0; i < numDataCodewords; i++) {\n            var dataWord = dataWords[i];\n            if (dataWord === 1 || dataWord === mask - 1) {\n                // next codewordSize-1 bits are all zeros or all ones\n                correctedBits.fill(dataWord > 1, index, index + codewordSize - 1);\n                // Arrays.fill(correctedBits, index, index + codewordSize - 1, dataWord > 1);\n                index += codewordSize - 1;\n            }\n            else {\n                for (var bit = codewordSize - 1; bit >= 0; --bit) {\n                    correctedBits[index++] = (dataWord & (1 << bit)) !== 0;\n                }\n            }\n        }\n        return correctedBits;\n    };\n    /**\n     * Gets the array of bits from an Aztec Code matrix\n     *\n     * @return the array of bits\n     */\n    Decoder.prototype.extractBits = function (matrix) {\n        var compact = this.ddata.isCompact();\n        var layers = this.ddata.getNbLayers();\n        var baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines\n        var alignmentMap = new Int32Array(baseMatrixSize);\n        var rawbits = new Array(this.totalBitsInLayer(layers, compact));\n        if (compact) {\n            for (var i = 0; i < alignmentMap.length; i++) {\n                alignmentMap[i] = i;\n            }\n        }\n        else {\n            var matrixSize = baseMatrixSize + 1 + 2 * Integer.truncDivision((Integer.truncDivision(baseMatrixSize, 2) - 1), 15);\n            var origCenter = baseMatrixSize / 2;\n            var center = Integer.truncDivision(matrixSize, 2);\n            for (var i = 0; i < origCenter; i++) {\n                var newOffset = i + Integer.truncDivision(i, 15);\n                alignmentMap[origCenter - i - 1] = center - newOffset - 1;\n                alignmentMap[origCenter + i] = center + newOffset + 1;\n            }\n        }\n        for (var i = 0, rowOffset = 0; i < layers; i++) {\n            var rowSize = (layers - i) * 4 + (compact ? 9 : 12);\n            // The top-left most point of this layer is <low, low> (not including alignment lines)\n            var low = i * 2;\n            // The bottom-right most point of this layer is <high, high> (not including alignment lines)\n            var high = baseMatrixSize - 1 - low;\n            // We pull bits from the two 2 x rowSize columns and two rowSize x 2 rows\n            for (var j = 0; j < rowSize; j++) {\n                var columnOffset = j * 2;\n                for (var k = 0; k < 2; k++) {\n                    // left column\n                    rawbits[rowOffset + columnOffset + k] =\n                        matrix.get(alignmentMap[low + k], alignmentMap[low + j]);\n                    // bottom row\n                    rawbits[rowOffset + 2 * rowSize + columnOffset + k] =\n                        matrix.get(alignmentMap[low + j], alignmentMap[high - k]);\n                    // right column\n                    rawbits[rowOffset + 4 * rowSize + columnOffset + k] =\n                        matrix.get(alignmentMap[high - k], alignmentMap[high - j]);\n                    // top row\n                    rawbits[rowOffset + 6 * rowSize + columnOffset + k] =\n                        matrix.get(alignmentMap[high - j], alignmentMap[low + k]);\n                }\n            }\n            rowOffset += rowSize * 8;\n        }\n        return rawbits;\n    };\n    /**\n     * Reads a code of given length and at given index in an array of bits\n     */\n    Decoder.readCode = function (rawbits, startIndex, length) {\n        var res = 0;\n        for (var i = startIndex; i < startIndex + length; i++) {\n            res <<= 1;\n            if (rawbits[i]) {\n                res |= 0x01;\n            }\n        }\n        return res;\n    };\n    /**\n     * Reads a code of length 8 in an array of bits, padding with zeros\n     */\n    Decoder.readByte = function (rawbits, startIndex) {\n        var n = rawbits.length - startIndex;\n        if (n >= 8) {\n            return Decoder.readCode(rawbits, startIndex, 8);\n        }\n        return Decoder.readCode(rawbits, startIndex, n) << (8 - n);\n    };\n    /**\n     * Packs a bit array into bytes, most significant bit first\n     */\n    Decoder.convertBoolArrayToByteArray = function (boolArr) {\n        var byteArr = new Uint8Array((boolArr.length + 7) / 8);\n        for (var i = 0; i < byteArr.length; i++) {\n            byteArr[i] = Decoder.readByte(boolArr, 8 * i);\n        }\n        return byteArr;\n    };\n    Decoder.prototype.totalBitsInLayer = function (layers, compact) {\n        return ((compact ? 88 : 112) + 16 * layers) * layers;\n    };\n    Decoder.UPPER_TABLE = [\n        'CTRL_PS', ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\n        'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'CTRL_LL', 'CTRL_ML', 'CTRL_DL', 'CTRL_BS'\n    ];\n    Decoder.LOWER_TABLE = [\n        'CTRL_PS', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',\n        'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'CTRL_US', 'CTRL_ML', 'CTRL_DL', 'CTRL_BS'\n    ];\n    Decoder.MIXED_TABLE = [\n        // Module parse failed: Octal literal in strict mode (50:29)\n        // so number string were scaped\n        'CTRL_PS', ' ', '\\\\1', '\\\\2', '\\\\3', '\\\\4', '\\\\5', '\\\\6', '\\\\7', '\\b', '\\t', '\\n',\n        '\\\\13', '\\f', '\\r', '\\\\33', '\\\\34', '\\\\35', '\\\\36', '\\\\37', '@', '\\\\', '^', '_',\n        '`', '|', '~', '\\\\177', 'CTRL_LL', 'CTRL_UL', 'CTRL_PL', 'CTRL_BS'\n    ];\n    Decoder.PUNCT_TABLE = [\n        '', '\\r', '\\r\\n', '. ', ', ', ': ', '!', '\"', '#', '$', '%', '&', '\\'', '(', ')',\n        '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '[', ']', '{', '}', 'CTRL_UL'\n    ];\n    Decoder.DIGIT_TABLE = [\n        'CTRL_PS', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', '.', 'CTRL_UL', 'CTRL_US'\n    ];\n    return Decoder;\n}());\nexport default Decoder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/*import java.util.List;*/\n/**\n * <p>Encapsulates the result of decoding a matrix of bits. This typically\n * applies to 2D barcode formats. For now it contains the raw bytes obtained,\n * as well as a String interpretation of those bytes, if applicable.</p>\n *\n * @author Sean Owen\n */\nvar DecoderResult = /** @class */ (function () {\n    // public constructor(rawBytes: Uint8Array,\n    //                      text: string,\n    //                      List<Uint8Array> byteSegments,\n    //                      String ecLevel) {\n    //   this(rawBytes, text, byteSegments, ecLevel, -1, -1)\n    // }\n    function DecoderResult(rawBytes, text, byteSegments, ecLevel, structuredAppendSequenceNumber, structuredAppendParity) {\n        if (structuredAppendSequenceNumber === void 0) { structuredAppendSequenceNumber = -1; }\n        if (structuredAppendParity === void 0) { structuredAppendParity = -1; }\n        this.rawBytes = rawBytes;\n        this.text = text;\n        this.byteSegments = byteSegments;\n        this.ecLevel = ecLevel;\n        this.structuredAppendSequenceNumber = structuredAppendSequenceNumber;\n        this.structuredAppendParity = structuredAppendParity;\n        this.numBits = (rawBytes === undefined || rawBytes === null) ? 0 : 8 * rawBytes.length;\n    }\n    /**\n     * @return raw bytes representing the result, or {@code null} if not applicable\n     */\n    DecoderResult.prototype.getRawBytes = function () {\n        return this.rawBytes;\n    };\n    /**\n     * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\n     * @since 3.3.0\n     */\n    DecoderResult.prototype.getNumBits = function () {\n        return this.numBits;\n    };\n    /**\n     * @param numBits overrides the number of bits that are valid in {@link #getRawBytes()}\n     * @since 3.3.0\n     */\n    DecoderResult.prototype.setNumBits = function (numBits /*int*/) {\n        this.numBits = numBits;\n    };\n    /**\n     * @return text representation of the result\n     */\n    DecoderResult.prototype.getText = function () {\n        return this.text;\n    };\n    /**\n     * @return list of byte segments in the result, or {@code null} if not applicable\n     */\n    DecoderResult.prototype.getByteSegments = function () {\n        return this.byteSegments;\n    };\n    /**\n     * @return name of error correction level used, or {@code null} if not applicable\n     */\n    DecoderResult.prototype.getECLevel = function () {\n        return this.ecLevel;\n    };\n    /**\n     * @return number of errors corrected, or {@code null} if not applicable\n     */\n    DecoderResult.prototype.getErrorsCorrected = function () {\n        return this.errorsCorrected;\n    };\n    DecoderResult.prototype.setErrorsCorrected = function (errorsCorrected /*Integer*/) {\n        this.errorsCorrected = errorsCorrected;\n    };\n    /**\n     * @return number of erasures corrected, or {@code null} if not applicable\n     */\n    DecoderResult.prototype.getErasures = function () {\n        return this.erasures;\n    };\n    DecoderResult.prototype.setErasures = function (erasures /*Integer*/) {\n        this.erasures = erasures;\n    };\n    /**\n     * @return arbitrary additional metadata\n     */\n    DecoderResult.prototype.getOther = function () {\n        return this.other;\n    };\n    DecoderResult.prototype.setOther = function (other) {\n        this.other = other;\n    };\n    DecoderResult.prototype.hasStructuredAppend = function () {\n        return this.structuredAppendParity >= 0 && this.structuredAppendSequenceNumber >= 0;\n    };\n    DecoderResult.prototype.getStructuredAppendParity = function () {\n        return this.structuredAppendParity;\n    };\n    DecoderResult.prototype.getStructuredAppendSequenceNumber = function () {\n        return this.structuredAppendSequenceNumber;\n    };\n    return DecoderResult;\n}());\nexport default DecoderResult;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * <p>This class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.</p>\n *\n * <p>Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n * </p>\n *\n * @author Sean Owen\n * @author David Olivier\n */\nvar AbstractGenericGF = /** @class */ (function () {\n    function AbstractGenericGF() {\n    }\n    /**\n     * @return 2 to the power of a in GF(size)\n     */\n    AbstractGenericGF.prototype.exp = function (a) {\n        return this.expTable[a];\n    };\n    /**\n     * @return base 2 log of a in GF(size)\n     */\n    AbstractGenericGF.prototype.log = function (a /*int*/) {\n        if (a === 0) {\n            throw new IllegalArgumentException();\n        }\n        return this.logTable[a];\n    };\n    /**\n     * Implements both addition and subtraction -- they are the same in GF(size).\n     *\n     * @return sum/difference of a and b\n     */\n    AbstractGenericGF.addOrSubtract = function (a /*int*/, b /*int*/) {\n        return a ^ b;\n    };\n    return AbstractGenericGF;\n}());\nexport default AbstractGenericGF;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.reedsolomon {*/\nimport AbstractGenericGF from './AbstractGenericGF';\nimport System from '../../util/System';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * <p>Represents a polynomial whose coefficients are elements of a GF.\n * Instances of this class are immutable.</p>\n *\n * <p>Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.</p>\n *\n * @author Sean Owen\n */\nvar GenericGFPoly = /** @class */ (function () {\n    /**\n     * @param field the {@link GenericGF} instance representing the field to use\n     * to perform computations\n     * @param coefficients coefficients as ints representing elements of GF(size), arranged\n     * from most significant (highest-power term) coefficient to least significant\n     * @throws IllegalArgumentException if argument is null or empty,\n     * or if leading coefficient is 0 and this is not a\n     * constant polynomial (that is, it is not the monomial \"0\")\n     */\n    function GenericGFPoly(field, coefficients) {\n        if (coefficients.length === 0) {\n            throw new IllegalArgumentException();\n        }\n        this.field = field;\n        var coefficientsLength = coefficients.length;\n        if (coefficientsLength > 1 && coefficients[0] === 0) {\n            // Leading term must be non-zero for anything except the constant polynomial \"0\"\n            var firstNonZero = 1;\n            while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n                firstNonZero++;\n            }\n            if (firstNonZero === coefficientsLength) {\n                this.coefficients = Int32Array.from([0]);\n            }\n            else {\n                this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n                System.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n            }\n        }\n        else {\n            this.coefficients = coefficients;\n        }\n    }\n    GenericGFPoly.prototype.getCoefficients = function () {\n        return this.coefficients;\n    };\n    /**\n     * @return degree of this polynomial\n     */\n    GenericGFPoly.prototype.getDegree = function () {\n        return this.coefficients.length - 1;\n    };\n    /**\n     * @return true iff this polynomial is the monomial \"0\"\n     */\n    GenericGFPoly.prototype.isZero = function () {\n        return this.coefficients[0] === 0;\n    };\n    /**\n     * @return coefficient of x^degree term in this polynomial\n     */\n    GenericGFPoly.prototype.getCoefficient = function (degree /*int*/) {\n        return this.coefficients[this.coefficients.length - 1 - degree];\n    };\n    /**\n     * @return evaluation of this polynomial at a given point\n     */\n    GenericGFPoly.prototype.evaluateAt = function (a /*int*/) {\n        if (a === 0) {\n            // Just return the x^0 coefficient\n            return this.getCoefficient(0);\n        }\n        var coefficients = this.coefficients;\n        var result;\n        if (a === 1) {\n            // Just the sum of the coefficients\n            result = 0;\n            for (var i = 0, length_1 = coefficients.length; i !== length_1; i++) {\n                var coefficient = coefficients[i];\n                result = AbstractGenericGF.addOrSubtract(result, coefficient);\n            }\n            return result;\n        }\n        result = coefficients[0];\n        var size = coefficients.length;\n        var field = this.field;\n        for (var i = 1; i < size; i++) {\n            result = AbstractGenericGF.addOrSubtract(field.multiply(a, result), coefficients[i]);\n        }\n        return result;\n    };\n    GenericGFPoly.prototype.addOrSubtract = function (other) {\n        if (!this.field.equals(other.field)) {\n            throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n        }\n        if (this.isZero()) {\n            return other;\n        }\n        if (other.isZero()) {\n            return this;\n        }\n        var smallerCoefficients = this.coefficients;\n        var largerCoefficients = other.coefficients;\n        if (smallerCoefficients.length > largerCoefficients.length) {\n            var temp = smallerCoefficients;\n            smallerCoefficients = largerCoefficients;\n            largerCoefficients = temp;\n        }\n        var sumDiff = new Int32Array(largerCoefficients.length);\n        var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n        // Copy high-order terms only found in higher-degree polynomial's coefficients\n        System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n        for (var i = lengthDiff; i < largerCoefficients.length; i++) {\n            sumDiff[i] = AbstractGenericGF.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n        }\n        return new GenericGFPoly(this.field, sumDiff);\n    };\n    GenericGFPoly.prototype.multiply = function (other) {\n        if (!this.field.equals(other.field)) {\n            throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n        }\n        if (this.isZero() || other.isZero()) {\n            return this.field.getZero();\n        }\n        var aCoefficients = this.coefficients;\n        var aLength = aCoefficients.length;\n        var bCoefficients = other.coefficients;\n        var bLength = bCoefficients.length;\n        var product = new Int32Array(aLength + bLength - 1);\n        var field = this.field;\n        for (var i = 0; i < aLength; i++) {\n            var aCoeff = aCoefficients[i];\n            for (var j = 0; j < bLength; j++) {\n                product[i + j] = AbstractGenericGF.addOrSubtract(product[i + j], field.multiply(aCoeff, bCoefficients[j]));\n            }\n        }\n        return new GenericGFPoly(field, product);\n    };\n    GenericGFPoly.prototype.multiplyScalar = function (scalar /*int*/) {\n        if (scalar === 0) {\n            return this.field.getZero();\n        }\n        if (scalar === 1) {\n            return this;\n        }\n        var size = this.coefficients.length;\n        var field = this.field;\n        var product = new Int32Array(size);\n        var coefficients = this.coefficients;\n        for (var i = 0; i < size; i++) {\n            product[i] = field.multiply(coefficients[i], scalar);\n        }\n        return new GenericGFPoly(field, product);\n    };\n    GenericGFPoly.prototype.multiplyByMonomial = function (degree /*int*/, coefficient /*int*/) {\n        if (degree < 0) {\n            throw new IllegalArgumentException();\n        }\n        if (coefficient === 0) {\n            return this.field.getZero();\n        }\n        var coefficients = this.coefficients;\n        var size = coefficients.length;\n        var product = new Int32Array(size + degree);\n        var field = this.field;\n        for (var i = 0; i < size; i++) {\n            product[i] = field.multiply(coefficients[i], coefficient);\n        }\n        return new GenericGFPoly(field, product);\n    };\n    GenericGFPoly.prototype.divide = function (other) {\n        if (!this.field.equals(other.field)) {\n            throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n        }\n        if (other.isZero()) {\n            throw new IllegalArgumentException('Divide by 0');\n        }\n        var field = this.field;\n        var quotient = field.getZero();\n        var remainder = this;\n        var denominatorLeadingTerm = other.getCoefficient(other.getDegree());\n        var inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm);\n        while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n            var degreeDifference = remainder.getDegree() - other.getDegree();\n            var scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n            var term = other.multiplyByMonomial(degreeDifference, scale);\n            var iterationQuotient = field.buildMonomial(degreeDifference, scale);\n            quotient = quotient.addOrSubtract(iterationQuotient);\n            remainder = remainder.addOrSubtract(term);\n        }\n        return [quotient, remainder];\n    };\n    /*@Override*/\n    GenericGFPoly.prototype.toString = function () {\n        var result = '';\n        for (var degree = this.getDegree(); degree >= 0; degree--) {\n            var coefficient = this.getCoefficient(degree);\n            if (coefficient !== 0) {\n                if (coefficient < 0) {\n                    result += ' - ';\n                    coefficient = -coefficient;\n                }\n                else {\n                    if (result.length > 0) {\n                        result += ' + ';\n                    }\n                }\n                if (degree === 0 || coefficient !== 1) {\n                    var alphaPower = this.field.log(coefficient);\n                    if (alphaPower === 0) {\n                        result += '1';\n                    }\n                    else if (alphaPower === 1) {\n                        result += 'a';\n                    }\n                    else {\n                        result += 'a^';\n                        result += alphaPower;\n                    }\n                }\n                if (degree !== 0) {\n                    if (degree === 1) {\n                        result += 'x';\n                    }\n                    else {\n                        result += 'x^';\n                        result += degree;\n                    }\n                }\n            }\n        }\n        return result;\n    };\n    return GenericGFPoly;\n}());\nexport default GenericGFPoly;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ArithmeticException = /** @class */ (function (_super) {\n    __extends(ArithmeticException, _super);\n    function ArithmeticException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ArithmeticException.kind = 'ArithmeticException';\n    return ArithmeticException;\n}(Exception));\nexport default ArithmeticException;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.common.reedsolomon {*/\nimport GenericGFPoly from './GenericGFPoly';\nimport AbstractGenericGF from './AbstractGenericGF';\nimport Integer from '../../util/Integer';\nimport IllegalArgumentException from '../../IllegalArgumentException';\nimport ArithmeticException from '../../ArithmeticException';\n/**\n * <p>This class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.</p>\n *\n * <p>Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n * </p>\n *\n * @author Sean Owen\n * @author David Olivier\n */\nvar GenericGF = /** @class */ (function (_super) {\n    __extends(GenericGF, _super);\n    /**\n     * Create a representation of GF(size) using the given primitive polynomial.\n     *\n     * @param primitive irreducible polynomial whose coefficients are represented by\n     *  the bits of an int, where the least-significant bit represents the constant\n     *  coefficient\n     * @param size the size of the field\n     * @param b the factor b in the generator polynomial can be 0- or 1-based\n     *  (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))).\n     *  In most cases it should be 1, but for QR code it is 0.\n     */\n    function GenericGF(primitive /*int*/, size /*int*/, generatorBase /*int*/) {\n        var _this = _super.call(this) || this;\n        _this.primitive = primitive;\n        _this.size = size;\n        _this.generatorBase = generatorBase;\n        var expTable = new Int32Array(size);\n        var x = 1;\n        for (var i = 0; i < size; i++) {\n            expTable[i] = x;\n            x *= 2; // we're assuming the generator alpha is 2\n            if (x >= size) {\n                x ^= primitive;\n                x &= size - 1;\n            }\n        }\n        _this.expTable = expTable;\n        var logTable = new Int32Array(size);\n        for (var i = 0; i < size - 1; i++) {\n            logTable[expTable[i]] = i;\n        }\n        _this.logTable = logTable;\n        // logTable[0] == 0 but this should never be used\n        _this.zero = new GenericGFPoly(_this, Int32Array.from([0]));\n        _this.one = new GenericGFPoly(_this, Int32Array.from([1]));\n        return _this;\n    }\n    GenericGF.prototype.getZero = function () {\n        return this.zero;\n    };\n    GenericGF.prototype.getOne = function () {\n        return this.one;\n    };\n    /**\n     * @return the monomial representing coefficient * x^degree\n     */\n    GenericGF.prototype.buildMonomial = function (degree /*int*/, coefficient /*int*/) {\n        if (degree < 0) {\n            throw new IllegalArgumentException();\n        }\n        if (coefficient === 0) {\n            return this.zero;\n        }\n        var coefficients = new Int32Array(degree + 1);\n        coefficients[0] = coefficient;\n        return new GenericGFPoly(this, coefficients);\n    };\n    /**\n     * @return multiplicative inverse of a\n     */\n    GenericGF.prototype.inverse = function (a /*int*/) {\n        if (a === 0) {\n            throw new ArithmeticException();\n        }\n        return this.expTable[this.size - this.logTable[a] - 1];\n    };\n    /**\n     * @return product of a and b in GF(size)\n     */\n    GenericGF.prototype.multiply = function (a /*int*/, b /*int*/) {\n        if (a === 0 || b === 0) {\n            return 0;\n        }\n        return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\n    };\n    GenericGF.prototype.getSize = function () {\n        return this.size;\n    };\n    GenericGF.prototype.getGeneratorBase = function () {\n        return this.generatorBase;\n    };\n    /*@Override*/\n    GenericGF.prototype.toString = function () {\n        return ('GF(0x' + Integer.toHexString(this.primitive) + ',' + this.size + ')');\n    };\n    GenericGF.prototype.equals = function (o) {\n        return o === this;\n    };\n    GenericGF.AZTEC_DATA_12 = new GenericGF(0x1069, 4096, 1); // x^12 + x^6 + x^5 + x^3 + 1\n    GenericGF.AZTEC_DATA_10 = new GenericGF(0x409, 1024, 1); // x^10 + x^3 + 1\n    GenericGF.AZTEC_DATA_6 = new GenericGF(0x43, 64, 1); // x^6 + x + 1\n    GenericGF.AZTEC_PARAM = new GenericGF(0x13, 16, 1); // x^4 + x + 1\n    GenericGF.QR_CODE_FIELD_256 = new GenericGF(0x011d, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\n    GenericGF.DATA_MATRIX_FIELD_256 = new GenericGF(0x012d, 256, 1); // x^8 + x^5 + x^3 + x^2 + 1\n    GenericGF.AZTEC_DATA_8 = GenericGF.DATA_MATRIX_FIELD_256;\n    GenericGF.MAXICODE_FIELD_64 = GenericGF.AZTEC_DATA_6;\n    return GenericGF;\n}(AbstractGenericGF));\nexport default GenericGF;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ReedSolomonException = /** @class */ (function (_super) {\n    __extends(ReedSolomonException, _super);\n    function ReedSolomonException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ReedSolomonException.kind = 'ReedSolomonException';\n    return ReedSolomonException;\n}(Exception));\nexport default ReedSolomonException;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar IllegalStateException = /** @class */ (function (_super) {\n    __extends(IllegalStateException, _super);\n    function IllegalStateException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IllegalStateException.kind = 'IllegalStateException';\n    return IllegalStateException;\n}(Exception));\nexport default IllegalStateException;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.reedsolomon {*/\nimport GenericGF from './GenericGF';\nimport GenericGFPoly from './GenericGFPoly';\nimport ReedSolomonException from '../../ReedSolomonException';\nimport IllegalStateException from '../../IllegalStateException';\n/**\n * <p>Implements Reed-Solomon decoding, as the name implies.</p>\n *\n * <p>The algorithm will not be explained here, but the following references were helpful\n * in creating this implementation:</p>\n *\n * <ul>\n * <li>Bruce Maggs.\n * <a href=\"http://www.cs.cmu.edu/afs/cs.cmu.edu/project/pscico-guyb/realworld/www/rs_decode.ps\">\n * \"Decoding Reed-Solomon Codes\"</a> (see discussion of Forney's Formula)</li>\n * <li>J.I. Hall. <a href=\"www.mth.msu.edu/~jhall/classes/codenotes/GRS.pdf\">\n * \"Chapter 5. Generalized Reed-Solomon Codes\"</a>\n * (see discussion of Euclidean algorithm)</li>\n * </ul>\n *\n * <p>Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.</p>\n *\n * @author Sean Owen\n * @author William Rucklidge\n * @author sanfordsquires\n */\nvar ReedSolomonDecoder = /** @class */ (function () {\n    function ReedSolomonDecoder(field) {\n        this.field = field;\n    }\n    /**\n     * <p>Decodes given set of received codewords, which include both data and error-correction\n     * codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place,\n     * in the input.</p>\n     *\n     * @param received data and error-correction codewords\n     * @param twoS number of error-correction codewords available\n     * @throws ReedSolomonException if decoding fails for any reason\n     */\n    ReedSolomonDecoder.prototype.decode = function (received, twoS /*int*/) {\n        var field = this.field;\n        var poly = new GenericGFPoly(field, received);\n        var syndromeCoefficients = new Int32Array(twoS);\n        var noError = true;\n        for (var i = 0; i < twoS; i++) {\n            var evalResult = poly.evaluateAt(field.exp(i + field.getGeneratorBase()));\n            syndromeCoefficients[syndromeCoefficients.length - 1 - i] = evalResult;\n            if (evalResult !== 0) {\n                noError = false;\n            }\n        }\n        if (noError) {\n            return;\n        }\n        var syndrome = new GenericGFPoly(field, syndromeCoefficients);\n        var sigmaOmega = this.runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS);\n        var sigma = sigmaOmega[0];\n        var omega = sigmaOmega[1];\n        var errorLocations = this.findErrorLocations(sigma);\n        var errorMagnitudes = this.findErrorMagnitudes(omega, errorLocations);\n        for (var i = 0; i < errorLocations.length; i++) {\n            var position = received.length - 1 - field.log(errorLocations[i]);\n            if (position < 0) {\n                throw new ReedSolomonException('Bad error location');\n            }\n            received[position] = GenericGF.addOrSubtract(received[position], errorMagnitudes[i]);\n        }\n    };\n    ReedSolomonDecoder.prototype.runEuclideanAlgorithm = function (a, b, R /*int*/) {\n        // Assume a's degree is >= b's\n        if (a.getDegree() < b.getDegree()) {\n            var temp = a;\n            a = b;\n            b = temp;\n        }\n        var field = this.field;\n        var rLast = a;\n        var r = b;\n        var tLast = field.getZero();\n        var t = field.getOne();\n        // Run Euclidean algorithm until r's degree is less than R/2\n        while (r.getDegree() >= (R / 2 | 0)) {\n            var rLastLast = rLast;\n            var tLastLast = tLast;\n            rLast = r;\n            tLast = t;\n            // Divide rLastLast by rLast, with quotient in q and remainder in r\n            if (rLast.isZero()) {\n                // Oops, Euclidean algorithm already terminated?\n                throw new ReedSolomonException('r_{i-1} was zero');\n            }\n            r = rLastLast;\n            var q = field.getZero();\n            var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n            var dltInverse = field.inverse(denominatorLeadingTerm);\n            while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n                var degreeDiff = r.getDegree() - rLast.getDegree();\n                var scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n                q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\n                r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\n            }\n            t = q.multiply(tLast).addOrSubtract(tLastLast);\n            if (r.getDegree() >= rLast.getDegree()) {\n                throw new IllegalStateException('Division algorithm failed to reduce polynomial?');\n            }\n        }\n        var sigmaTildeAtZero = t.getCoefficient(0);\n        if (sigmaTildeAtZero === 0) {\n            throw new ReedSolomonException('sigmaTilde(0) was zero');\n        }\n        var inverse = field.inverse(sigmaTildeAtZero);\n        var sigma = t.multiplyScalar(inverse);\n        var omega = r.multiplyScalar(inverse);\n        return [sigma, omega];\n    };\n    ReedSolomonDecoder.prototype.findErrorLocations = function (errorLocator) {\n        // This is a direct application of Chien's search\n        var numErrors = errorLocator.getDegree();\n        if (numErrors === 1) { // shortcut\n            return Int32Array.from([errorLocator.getCoefficient(1)]);\n        }\n        var result = new Int32Array(numErrors);\n        var e = 0;\n        var field = this.field;\n        for (var i = 1; i < field.getSize() && e < numErrors; i++) {\n            if (errorLocator.evaluateAt(i) === 0) {\n                result[e] = field.inverse(i);\n                e++;\n            }\n        }\n        if (e !== numErrors) {\n            throw new ReedSolomonException('Error locator degree does not match number of roots');\n        }\n        return result;\n    };\n    ReedSolomonDecoder.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocations) {\n        // This is directly applying Forney's Formula\n        var s = errorLocations.length;\n        var result = new Int32Array(s);\n        var field = this.field;\n        for (var i = 0; i < s; i++) {\n            var xiInverse = field.inverse(errorLocations[i]);\n            var denominator = 1;\n            for (var j = 0; j < s; j++) {\n                if (i !== j) {\n                    // denominator = field.multiply(denominator,\n                    //    GenericGF.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)))\n                    // Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug.\n                    // Below is a funny-looking workaround from Steven Parkes\n                    var term = field.multiply(errorLocations[j], xiInverse);\n                    var termPlus1 = (term & 0x1) === 0 ? term | 1 : term & ~1;\n                    denominator = field.multiply(denominator, termPlus1);\n                }\n            }\n            result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\n            if (field.getGeneratorBase() !== 0) {\n                result[i] = field.multiply(result[i], xiInverse);\n            }\n        }\n        return result;\n    };\n    return ReedSolomonDecoder;\n}());\nexport default ReedSolomonDecoder;\n","/*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.detector {*/\n/**\n * General math-related and numeric utility functions.\n */\nvar MathUtils = /** @class */ (function () {\n    function MathUtils() {\n    }\n    /**\n     * Ends up being a bit faster than {@link Math#round(float)}. This merely rounds its\n     * argument to the nearest int, where x.5 rounds up to x+1. Semantics of this shortcut\n     * differ slightly from {@link Math#round(float)} in that half rounds down for negative\n     * values. -2.5 rounds to -3, not -2. For purposes here it makes no difference.\n     *\n     * @param d real value to round\n     * @return nearest {@code int}\n     */\n    MathUtils.round = function (d /*float*/) {\n        if (NaN === d)\n            return 0;\n        if (d <= Number.MIN_SAFE_INTEGER)\n            return Number.MIN_SAFE_INTEGER;\n        if (d >= Number.MAX_SAFE_INTEGER)\n            return Number.MAX_SAFE_INTEGER;\n        return /*(int) */ (d + (d < 0.0 ? -0.5 : 0.5)) | 0;\n    };\n    // TYPESCRIPTPORT: maybe remove round method and call directly Math.round, it looks like it doesn't make sense for js\n    /**\n     * @param aX point A x coordinate\n     * @param aY point A y coordinate\n     * @param bX point B x coordinate\n     * @param bY point B y coordinate\n     * @return Euclidean distance between points A and B\n     */\n    MathUtils.distance = function (aX /*float|int*/, aY /*float|int*/, bX /*float|int*/, bY /*float|int*/) {\n        var xDiff = aX - bX;\n        var yDiff = aY - bY;\n        return /*(float) */ Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n    };\n    /**\n     * @param aX point A x coordinate\n     * @param aY point A y coordinate\n     * @param bX point B x coordinate\n     * @param bY point B y coordinate\n     * @return Euclidean distance between points A and B\n     */\n    // public static distance(aX: number /*int*/, aY: number /*int*/, bX: number /*int*/, bY: number /*int*/): float {\n    //   const xDiff = aX - bX\n    //   const yDiff = aY - bY\n    //   return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n    // }\n    /**\n     * @param array values to sum\n     * @return sum of values in array\n     */\n    MathUtils.sum = function (array) {\n        var count = 0;\n        for (var i = 0, length_1 = array.length; i !== length_1; i++) {\n            var a = array[i];\n            count += a;\n        }\n        return count;\n    };\n    return MathUtils;\n}());\nexport default MathUtils;\n","/**\n * Ponyfill for Java's Float class.\n */\nvar Float = /** @class */ (function () {\n    function Float() {\n    }\n    /**\n     * SincTS has no difference between int and float, there's all numbers,\n     * this is used only to polyfill Java code.\n     */\n    Float.floatToIntBits = function (f) {\n        return f;\n    };\n    /**\n     * The float max value in JS is the number max value.\n     */\n    Float.MAX_VALUE = Number.MAX_SAFE_INTEGER;\n    return Float;\n}());\nexport default Float;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\nimport MathUtils from './common/detector/MathUtils';\nimport Float from './util/Float';\n/**\n * <p>Encapsulates a point of interest in an image containing a barcode. Typically, this\n * would be the location of a finder pattern or the corner of the barcode, for example.</p>\n *\n * @author Sean Owen\n */\nvar ResultPoint = /** @class */ (function () {\n    function ResultPoint(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    ResultPoint.prototype.getX = function () {\n        return this.x;\n    };\n    ResultPoint.prototype.getY = function () {\n        return this.y;\n    };\n    /*@Override*/\n    ResultPoint.prototype.equals = function (other) {\n        if (other instanceof ResultPoint) {\n            var otherPoint = other;\n            return this.x === otherPoint.x && this.y === otherPoint.y;\n        }\n        return false;\n    };\n    /*@Override*/\n    ResultPoint.prototype.hashCode = function () {\n        return 31 * Float.floatToIntBits(this.x) + Float.floatToIntBits(this.y);\n    };\n    /*@Override*/\n    ResultPoint.prototype.toString = function () {\n        return '(' + this.x + ',' + this.y + ')';\n    };\n    /**\n     * Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC\n     * and BC is less than AC, and the angle between BC and BA is less than 180 degrees.\n     *\n     * @param patterns array of three {@code ResultPoint} to order\n     */\n    ResultPoint.orderBestPatterns = function (patterns) {\n        // Find distances between pattern centers\n        var zeroOneDistance = this.distance(patterns[0], patterns[1]);\n        var oneTwoDistance = this.distance(patterns[1], patterns[2]);\n        var zeroTwoDistance = this.distance(patterns[0], patterns[2]);\n        var pointA;\n        var pointB;\n        var pointC;\n        // Assume one closest to other two is B; A and C will just be guesses at first\n        if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) {\n            pointB = patterns[0];\n            pointA = patterns[1];\n            pointC = patterns[2];\n        }\n        else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) {\n            pointB = patterns[1];\n            pointA = patterns[0];\n            pointC = patterns[2];\n        }\n        else {\n            pointB = patterns[2];\n            pointA = patterns[0];\n            pointC = patterns[1];\n        }\n        // Use cross product to figure out whether A and C are correct or flipped.\n        // This asks whether BC x BA has a positive z component, which is the arrangement\n        // we want for A, B, C. If it's negative, then we've got it flipped around and\n        // should swap A and C.\n        if (this.crossProductZ(pointA, pointB, pointC) < 0.0) {\n            var temp = pointA;\n            pointA = pointC;\n            pointC = temp;\n        }\n        patterns[0] = pointA;\n        patterns[1] = pointB;\n        patterns[2] = pointC;\n    };\n    /**\n     * @param pattern1 first pattern\n     * @param pattern2 second pattern\n     * @return distance between two points\n     */\n    ResultPoint.distance = function (pattern1, pattern2) {\n        return MathUtils.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);\n    };\n    /**\n     * Returns the z component of the cross product between vectors BC and BA.\n     */\n    ResultPoint.crossProductZ = function (pointA, pointB, pointC) {\n        var bX = pointB.x;\n        var bY = pointB.y;\n        return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX));\n    };\n    return ResultPoint;\n}());\nexport default ResultPoint;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * <p>Encapsulates the result of detecting a barcode in an image. This includes the raw\n * matrix of black/white pixels corresponding to the barcode, and possibly points of interest\n * in the image, like the location of finder patterns or corners of the barcode in the image.</p>\n *\n * @author Sean Owen\n */\nvar DetectorResult = /** @class */ (function () {\n    function DetectorResult(bits, points) {\n        this.bits = bits;\n        this.points = points;\n    }\n    DetectorResult.prototype.getBits = function () {\n        return this.bits;\n    };\n    DetectorResult.prototype.getPoints = function () {\n        return this.points;\n    };\n    return DetectorResult;\n}());\nexport default DetectorResult;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport DetectorResult from '../common/DetectorResult';\n/**\n * <p>Extends {@link DetectorResult} with more information specific to the Aztec format,\n * like the number of layers and whether it's compact.</p>\n *\n * @author Sean Owen\n */\nvar AztecDetectorResult = /** @class */ (function (_super) {\n    __extends(AztecDetectorResult, _super);\n    function AztecDetectorResult(bits, points, compact, nbDatablocks, nbLayers) {\n        var _this = _super.call(this, bits, points) || this;\n        _this.compact = compact;\n        _this.nbDatablocks = nbDatablocks;\n        _this.nbLayers = nbLayers;\n        return _this;\n    }\n    AztecDetectorResult.prototype.getNbLayers = function () {\n        return this.nbLayers;\n    };\n    AztecDetectorResult.prototype.getNbDatablocks = function () {\n        return this.nbDatablocks;\n    };\n    AztecDetectorResult.prototype.isCompact = function () {\n        return this.compact;\n    };\n    return AztecDetectorResult;\n}(DetectorResult));\nexport default AztecDetectorResult;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common.detector {*/\nimport ResultPoint from '../../ResultPoint';\nimport MathUtils from './MathUtils';\nimport NotFoundException from '../../NotFoundException';\n/**\n * <p>\n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region. By keeping track of the\n * last black points it encountered, it determines the corners of the barcode.\n * </p>\n *\n * @author David Olivier\n */\nvar WhiteRectangleDetector = /** @class */ (function () {\n    // public constructor(private image: BitMatrix) /*throws NotFoundException*/ {\n    //   this(image, INIT_SIZE, image.getWidth() / 2, image.getHeight() / 2)\n    // }\n    /**\n     * @param image barcode image to find a rectangle in\n     * @param initSize initial size of search area around center\n     * @param x x position of search center\n     * @param y y position of search center\n     * @throws NotFoundException if image is too small to accommodate {@code initSize}\n     */\n    function WhiteRectangleDetector(image, initSize /*int*/, x /*int*/, y /*int*/) {\n        this.image = image;\n        this.height = image.getHeight();\n        this.width = image.getWidth();\n        if (undefined === initSize || null === initSize) {\n            initSize = WhiteRectangleDetector.INIT_SIZE;\n        }\n        if (undefined === x || null === x) {\n            x = image.getWidth() / 2 | 0;\n        }\n        if (undefined === y || null === y) {\n            y = image.getHeight() / 2 | 0;\n        }\n        var halfsize = initSize / 2 | 0;\n        this.leftInit = x - halfsize;\n        this.rightInit = x + halfsize;\n        this.upInit = y - halfsize;\n        this.downInit = y + halfsize;\n        if (this.upInit < 0 || this.leftInit < 0 || this.downInit >= this.height || this.rightInit >= this.width) {\n            throw new NotFoundException();\n        }\n    }\n    /**\n     * <p>\n     * Detects a candidate barcode-like rectangular region within an image. It\n     * starts around the center of the image, increases the size of the candidate\n     * region until it finds a white rectangular region.\n     * </p>\n     *\n     * @return {@link ResultPoint}[] describing the corners of the rectangular\n     *         region. The first and last points are opposed on the diagonal, as\n     *         are the second and third. The first point will be the topmost\n     *         point and the last, the bottommost. The second point will be\n     *         leftmost and the third, the rightmost\n     * @throws NotFoundException if no Data Matrix Code can be found\n     */\n    WhiteRectangleDetector.prototype.detect = function () {\n        var left = this.leftInit;\n        var right = this.rightInit;\n        var up = this.upInit;\n        var down = this.downInit;\n        var sizeExceeded = false;\n        var aBlackPointFoundOnBorder = true;\n        var atLeastOneBlackPointFoundOnBorder = false;\n        var atLeastOneBlackPointFoundOnRight = false;\n        var atLeastOneBlackPointFoundOnBottom = false;\n        var atLeastOneBlackPointFoundOnLeft = false;\n        var atLeastOneBlackPointFoundOnTop = false;\n        var width = this.width;\n        var height = this.height;\n        while (aBlackPointFoundOnBorder) {\n            aBlackPointFoundOnBorder = false;\n            // .....\n            // .   |\n            // .....\n            var rightBorderNotWhite = true;\n            while ((rightBorderNotWhite || !atLeastOneBlackPointFoundOnRight) && right < width) {\n                rightBorderNotWhite = this.containsBlackPoint(up, down, right, false);\n                if (rightBorderNotWhite) {\n                    right++;\n                    aBlackPointFoundOnBorder = true;\n                    atLeastOneBlackPointFoundOnRight = true;\n                }\n                else if (!atLeastOneBlackPointFoundOnRight) {\n                    right++;\n                }\n            }\n            if (right >= width) {\n                sizeExceeded = true;\n                break;\n            }\n            // .....\n            // .   .\n            // .___.\n            var bottomBorderNotWhite = true;\n            while ((bottomBorderNotWhite || !atLeastOneBlackPointFoundOnBottom) && down < height) {\n                bottomBorderNotWhite = this.containsBlackPoint(left, right, down, true);\n                if (bottomBorderNotWhite) {\n                    down++;\n                    aBlackPointFoundOnBorder = true;\n                    atLeastOneBlackPointFoundOnBottom = true;\n                }\n                else if (!atLeastOneBlackPointFoundOnBottom) {\n                    down++;\n                }\n            }\n            if (down >= height) {\n                sizeExceeded = true;\n                break;\n            }\n            // .....\n            // |   .\n            // .....\n            var leftBorderNotWhite = true;\n            while ((leftBorderNotWhite || !atLeastOneBlackPointFoundOnLeft) && left >= 0) {\n                leftBorderNotWhite = this.containsBlackPoint(up, down, left, false);\n                if (leftBorderNotWhite) {\n                    left--;\n                    aBlackPointFoundOnBorder = true;\n                    atLeastOneBlackPointFoundOnLeft = true;\n                }\n                else if (!atLeastOneBlackPointFoundOnLeft) {\n                    left--;\n                }\n            }\n            if (left < 0) {\n                sizeExceeded = true;\n                break;\n            }\n            // .___.\n            // .   .\n            // .....\n            var topBorderNotWhite = true;\n            while ((topBorderNotWhite || !atLeastOneBlackPointFoundOnTop) && up >= 0) {\n                topBorderNotWhite = this.containsBlackPoint(left, right, up, true);\n                if (topBorderNotWhite) {\n                    up--;\n                    aBlackPointFoundOnBorder = true;\n                    atLeastOneBlackPointFoundOnTop = true;\n                }\n                else if (!atLeastOneBlackPointFoundOnTop) {\n                    up--;\n                }\n            }\n            if (up < 0) {\n                sizeExceeded = true;\n                break;\n            }\n            if (aBlackPointFoundOnBorder) {\n                atLeastOneBlackPointFoundOnBorder = true;\n            }\n        }\n        if (!sizeExceeded && atLeastOneBlackPointFoundOnBorder) {\n            var maxSize = right - left;\n            var z = null;\n            for (var i = 1; z === null && i < maxSize; i++) {\n                z = this.getBlackPointOnSegment(left, down - i, left + i, down);\n            }\n            if (z == null) {\n                throw new NotFoundException();\n            }\n            var t = null;\n            // go down right\n            for (var i = 1; t === null && i < maxSize; i++) {\n                t = this.getBlackPointOnSegment(left, up + i, left + i, up);\n            }\n            if (t == null) {\n                throw new NotFoundException();\n            }\n            var x = null;\n            // go down left\n            for (var i = 1; x === null && i < maxSize; i++) {\n                x = this.getBlackPointOnSegment(right, up + i, right - i, up);\n            }\n            if (x == null) {\n                throw new NotFoundException();\n            }\n            var y = null;\n            // go up left\n            for (var i = 1; y === null && i < maxSize; i++) {\n                y = this.getBlackPointOnSegment(right, down - i, right - i, down);\n            }\n            if (y == null) {\n                throw new NotFoundException();\n            }\n            return this.centerEdges(y, z, x, t);\n        }\n        else {\n            throw new NotFoundException();\n        }\n    };\n    WhiteRectangleDetector.prototype.getBlackPointOnSegment = function (aX /*float*/, aY /*float*/, bX /*float*/, bY /*float*/) {\n        var dist = MathUtils.round(MathUtils.distance(aX, aY, bX, bY));\n        var xStep = (bX - aX) / dist;\n        var yStep = (bY - aY) / dist;\n        var image = this.image;\n        for (var i = 0; i < dist; i++) {\n            var x = MathUtils.round(aX + i * xStep);\n            var y = MathUtils.round(aY + i * yStep);\n            if (image.get(x, y)) {\n                return new ResultPoint(x, y);\n            }\n        }\n        return null;\n    };\n    /**\n     * recenters the points of a constant distance towards the center\n     *\n     * @param y bottom most point\n     * @param z left most point\n     * @param x right most point\n     * @param t top most point\n     * @return {@link ResultPoint}[] describing the corners of the rectangular\n     *         region. The first and last points are opposed on the diagonal, as\n     *         are the second and third. The first point will be the topmost\n     *         point and the last, the bottommost. The second point will be\n     *         leftmost and the third, the rightmost\n     */\n    WhiteRectangleDetector.prototype.centerEdges = function (y, z, x, t) {\n        //\n        //       t            t\n        //  z                      x\n        //        x    OR    z\n        //   y                    y\n        //\n        var yi = y.getX();\n        var yj = y.getY();\n        var zi = z.getX();\n        var zj = z.getY();\n        var xi = x.getX();\n        var xj = x.getY();\n        var ti = t.getX();\n        var tj = t.getY();\n        var CORR = WhiteRectangleDetector.CORR;\n        if (yi < this.width / 2.0) {\n            return [\n                new ResultPoint(ti - CORR, tj + CORR),\n                new ResultPoint(zi + CORR, zj + CORR),\n                new ResultPoint(xi - CORR, xj - CORR),\n                new ResultPoint(yi + CORR, yj - CORR)\n            ];\n        }\n        else {\n            return [\n                new ResultPoint(ti + CORR, tj + CORR),\n                new ResultPoint(zi + CORR, zj - CORR),\n                new ResultPoint(xi - CORR, xj + CORR),\n                new ResultPoint(yi - CORR, yj - CORR)\n            ];\n        }\n    };\n    /**\n     * Determines whether a segment contains a black point\n     *\n     * @param a          min value of the scanned coordinate\n     * @param b          max value of the scanned coordinate\n     * @param fixed      value of fixed coordinate\n     * @param horizontal set to true if scan must be horizontal, false if vertical\n     * @return true if a black point has been found, else false.\n     */\n    WhiteRectangleDetector.prototype.containsBlackPoint = function (a /*int*/, b /*int*/, fixed /*int*/, horizontal) {\n        var image = this.image;\n        if (horizontal) {\n            for (var x = a; x <= b; x++) {\n                if (image.get(x, fixed)) {\n                    return true;\n                }\n            }\n        }\n        else {\n            for (var y = a; y <= b; y++) {\n                if (image.get(fixed, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    WhiteRectangleDetector.INIT_SIZE = 10;\n    WhiteRectangleDetector.CORR = 1;\n    return WhiteRectangleDetector;\n}());\nexport default WhiteRectangleDetector;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport NotFoundException from '../NotFoundException';\n/**\n * Implementations of this class can, given locations of finder patterns for a QR code in an\n * image, sample the right points in the image to reconstruct the QR code, accounting for\n * perspective distortion. It is abstracted since it is relatively expensive and should be allowed\n * to take advantage of platform-specific optimized implementations, like Sun's Java Advanced\n * Imaging library, but which may not be available in other environments such as J2ME, and vice\n * versa.\n *\n * The implementation used can be controlled by calling {@link #setGridSampler(GridSampler)}\n * with an instance of a class which implements this interface.\n *\n * @author Sean Owen\n */\nvar GridSampler = /** @class */ (function () {\n    function GridSampler() {\n    }\n    /**\n     * <p>Checks a set of points that have been transformed to sample points on an image against\n     * the image's dimensions to see if the point are even within the image.</p>\n     *\n     * <p>This method will actually \"nudge\" the endpoints back onto the image if they are found to be\n     * barely (less than 1 pixel) off the image. This accounts for imperfect detection of finder\n     * patterns in an image where the QR Code runs all the way to the image border.</p>\n     *\n     * <p>For efficiency, the method will check points from either end of the line until one is found\n     * to be within the image. Because the set of points are assumed to be linear, this is valid.</p>\n     *\n     * @param image image into which the points should map\n     * @param points actual points in x1,y1,...,xn,yn form\n     * @throws NotFoundException if an endpoint is lies outside the image boundaries\n     */\n    GridSampler.checkAndNudgePoints = function (image, points) {\n        var width = image.getWidth();\n        var height = image.getHeight();\n        // Check and nudge points from start until we see some that are OK:\n        var nudged = true;\n        for (var offset = 0; offset < points.length && nudged; offset += 2) {\n            var x = Math.floor(points[offset]);\n            var y = Math.floor(points[offset + 1]);\n            if (x < -1 || x > width || y < -1 || y > height) {\n                throw new NotFoundException();\n            }\n            nudged = false;\n            if (x === -1) {\n                points[offset] = 0.0;\n                nudged = true;\n            }\n            else if (x === width) {\n                points[offset] = width - 1;\n                nudged = true;\n            }\n            if (y === -1) {\n                points[offset + 1] = 0.0;\n                nudged = true;\n            }\n            else if (y === height) {\n                points[offset + 1] = height - 1;\n                nudged = true;\n            }\n        }\n        // Check and nudge points from end:\n        nudged = true;\n        for (var offset = points.length - 2; offset >= 0 && nudged; offset -= 2) {\n            var x = Math.floor(points[offset]);\n            var y = Math.floor(points[offset + 1]);\n            if (x < -1 || x > width || y < -1 || y > height) {\n                throw new NotFoundException();\n            }\n            nudged = false;\n            if (x === -1) {\n                points[offset] = 0.0;\n                nudged = true;\n            }\n            else if (x === width) {\n                points[offset] = width - 1;\n                nudged = true;\n            }\n            if (y === -1) {\n                points[offset + 1] = 0.0;\n                nudged = true;\n            }\n            else if (y === height) {\n                points[offset + 1] = height - 1;\n                nudged = true;\n            }\n        }\n    };\n    return GridSampler;\n}());\nexport default GridSampler;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\n/**\n * <p>This class implements a perspective transform in two dimensions. Given four source and four\n * destination points, it will compute the transformation implied between them. The code is based\n * directly upon section 3.4.2 of George Wolberg's \"Digital Image Warping\"; see pages 54-56.</p>\n *\n * @author Sean Owen\n */\nvar PerspectiveTransform = /** @class */ (function () {\n    function PerspectiveTransform(a11 /*float*/, a21 /*float*/, a31 /*float*/, a12 /*float*/, a22 /*float*/, a32 /*float*/, a13 /*float*/, a23 /*float*/, a33 /*float*/) {\n        this.a11 = a11;\n        this.a21 = a21;\n        this.a31 = a31;\n        this.a12 = a12;\n        this.a22 = a22;\n        this.a32 = a32;\n        this.a13 = a13;\n        this.a23 = a23;\n        this.a33 = a33;\n    }\n    PerspectiveTransform.quadrilateralToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/, x0p /*float*/, y0p /*float*/, x1p /*float*/, y1p /*float*/, x2p /*float*/, y2p /*float*/, x3p /*float*/, y3p /*float*/) {\n        var qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);\n        var sToQ = PerspectiveTransform.squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p);\n        return sToQ.times(qToS);\n    };\n    PerspectiveTransform.prototype.transformPoints = function (points) {\n        var max = points.length;\n        var a11 = this.a11;\n        var a12 = this.a12;\n        var a13 = this.a13;\n        var a21 = this.a21;\n        var a22 = this.a22;\n        var a23 = this.a23;\n        var a31 = this.a31;\n        var a32 = this.a32;\n        var a33 = this.a33;\n        for (var i = 0; i < max; i += 2) {\n            var x = points[i];\n            var y = points[i + 1];\n            var denominator = a13 * x + a23 * y + a33;\n            points[i] = (a11 * x + a21 * y + a31) / denominator;\n            points[i + 1] = (a12 * x + a22 * y + a32) / denominator;\n        }\n    };\n    PerspectiveTransform.prototype.transformPointsWithValues = function (xValues, yValues) {\n        var a11 = this.a11;\n        var a12 = this.a12;\n        var a13 = this.a13;\n        var a21 = this.a21;\n        var a22 = this.a22;\n        var a23 = this.a23;\n        var a31 = this.a31;\n        var a32 = this.a32;\n        var a33 = this.a33;\n        var n = xValues.length;\n        for (var i = 0; i < n; i++) {\n            var x = xValues[i];\n            var y = yValues[i];\n            var denominator = a13 * x + a23 * y + a33;\n            xValues[i] = (a11 * x + a21 * y + a31) / denominator;\n            yValues[i] = (a12 * x + a22 * y + a32) / denominator;\n        }\n    };\n    PerspectiveTransform.squareToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n        var dx3 = x0 - x1 + x2 - x3;\n        var dy3 = y0 - y1 + y2 - y3;\n        if (dx3 === 0.0 && dy3 === 0.0) {\n            // Affine\n            return new PerspectiveTransform(x1 - x0, x2 - x1, x0, y1 - y0, y2 - y1, y0, 0.0, 0.0, 1.0);\n        }\n        else {\n            var dx1 = x1 - x2;\n            var dx2 = x3 - x2;\n            var dy1 = y1 - y2;\n            var dy2 = y3 - y2;\n            var denominator = dx1 * dy2 - dx2 * dy1;\n            var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n            var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\n            return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, a13, a23, 1.0);\n        }\n    };\n    PerspectiveTransform.quadrilateralToSquare = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n        // Here, the adjoint serves as the inverse:\n        return PerspectiveTransform.squareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint();\n    };\n    PerspectiveTransform.prototype.buildAdjoint = function () {\n        // Adjoint is the transpose of the cofactor matrix:\n        return new PerspectiveTransform(this.a22 * this.a33 - this.a23 * this.a32, this.a23 * this.a31 - this.a21 * this.a33, this.a21 * this.a32 - this.a22 * this.a31, this.a13 * this.a32 - this.a12 * this.a33, this.a11 * this.a33 - this.a13 * this.a31, this.a12 * this.a31 - this.a11 * this.a32, this.a12 * this.a23 - this.a13 * this.a22, this.a13 * this.a21 - this.a11 * this.a23, this.a11 * this.a22 - this.a12 * this.a21);\n    };\n    PerspectiveTransform.prototype.times = function (other) {\n        return new PerspectiveTransform(this.a11 * other.a11 + this.a21 * other.a12 + this.a31 * other.a13, this.a11 * other.a21 + this.a21 * other.a22 + this.a31 * other.a23, this.a11 * other.a31 + this.a21 * other.a32 + this.a31 * other.a33, this.a12 * other.a11 + this.a22 * other.a12 + this.a32 * other.a13, this.a12 * other.a21 + this.a22 * other.a22 + this.a32 * other.a23, this.a12 * other.a31 + this.a22 * other.a32 + this.a32 * other.a33, this.a13 * other.a11 + this.a23 * other.a12 + this.a33 * other.a13, this.a13 * other.a21 + this.a23 * other.a22 + this.a33 * other.a23, this.a13 * other.a31 + this.a23 * other.a32 + this.a33 * other.a33);\n    };\n    return PerspectiveTransform;\n}());\nexport default PerspectiveTransform;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.common {*/\nimport GridSampler from './GridSampler';\nimport BitMatrix from './BitMatrix';\nimport PerspectiveTransform from './PerspectiveTransform';\nimport NotFoundException from '../NotFoundException';\n/**\n * @author Sean Owen\n */\nvar DefaultGridSampler = /** @class */ (function (_super) {\n    __extends(DefaultGridSampler, _super);\n    function DefaultGridSampler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /*@Override*/\n    DefaultGridSampler.prototype.sampleGrid = function (image, dimensionX /*int*/, dimensionY /*int*/, p1ToX /*float*/, p1ToY /*float*/, p2ToX /*float*/, p2ToY /*float*/, p3ToX /*float*/, p3ToY /*float*/, p4ToX /*float*/, p4ToY /*float*/, p1FromX /*float*/, p1FromY /*float*/, p2FromX /*float*/, p2FromY /*float*/, p3FromX /*float*/, p3FromY /*float*/, p4FromX /*float*/, p4FromY /*float*/) {\n        var transform = PerspectiveTransform.quadrilateralToQuadrilateral(p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY);\n        return this.sampleGridWithTransform(image, dimensionX, dimensionY, transform);\n    };\n    /*@Override*/\n    DefaultGridSampler.prototype.sampleGridWithTransform = function (image, dimensionX /*int*/, dimensionY /*int*/, transform) {\n        if (dimensionX <= 0 || dimensionY <= 0) {\n            throw new NotFoundException();\n        }\n        var bits = new BitMatrix(dimensionX, dimensionY);\n        var points = new Float32Array(2 * dimensionX);\n        for (var y = 0; y < dimensionY; y++) {\n            var max = points.length;\n            var iValue = y + 0.5;\n            for (var x = 0; x < max; x += 2) {\n                points[x] = (x / 2) + 0.5;\n                points[x + 1] = iValue;\n            }\n            transform.transformPoints(points);\n            // Quick check to see if points transformed to something inside the image\n            // sufficient to check the endpoints\n            GridSampler.checkAndNudgePoints(image, points);\n            try {\n                for (var x = 0; x < max; x += 2) {\n                    if (image.get(Math.floor(points[x]), Math.floor(points[x + 1]))) {\n                        // Black(-ish) pixel\n                        bits.set(x / 2, y);\n                    }\n                }\n            }\n            catch (aioobe /*: ArrayIndexOutOfBoundsException*/) {\n                // This feels wrong, but, sometimes if the finder patterns are misidentified, the resulting\n                // transform gets \"twisted\" such that it maps a straight line of points to a set of points\n                // whose endpoints are in bounds, but others are not. There is probably some mathematical\n                // way to detect this about the transformation that I don't know yet.\n                // This results in an ugly runtime exception despite our clever checks above -- can't have\n                // that. We could check each point's coordinates but that feels duplicative. We settle for\n                // catching and wrapping ArrayIndexOutOfBoundsException.\n                throw new NotFoundException();\n            }\n        }\n        return bits;\n    };\n    return DefaultGridSampler;\n}(GridSampler));\nexport default DefaultGridSampler;\n","import DefaultGridSampler from './DefaultGridSampler';\nvar GridSamplerInstance = /** @class */ (function () {\n    function GridSamplerInstance() {\n    }\n    /**\n     * Sets the implementation of GridSampler used by the library. One global\n     * instance is stored, which may sound problematic. But, the implementation provided\n     * ought to be appropriate for the entire platform, and all uses of this library\n     * in the whole lifetime of the JVM. For instance, an Android activity can swap in\n     * an implementation that takes advantage of native platform libraries.\n     *\n     * @param newGridSampler The platform-specific object to install.\n     */\n    GridSamplerInstance.setGridSampler = function (newGridSampler) {\n        GridSamplerInstance.gridSampler = newGridSampler;\n    };\n    /**\n     * @return the current implementation of GridSampler\n     */\n    GridSamplerInstance.getInstance = function () {\n        return GridSamplerInstance.gridSampler;\n    };\n    GridSamplerInstance.gridSampler = new DefaultGridSampler();\n    return GridSamplerInstance;\n}());\nexport default GridSamplerInstance;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport ResultPoint from '../../ResultPoint';\nimport AztecDetectorResult from '../AztecDetectorResult';\nimport MathUtils from '../../common/detector/MathUtils';\nimport WhiteRectangleDetector from '../../common/detector/WhiteRectangleDetector';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport NotFoundException from '../../NotFoundException';\nimport GridSamplerInstance from '../../common/GridSamplerInstance';\nimport Integer from '../../util/Integer';\nvar Point = /** @class */ (function () {\n    function Point(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    Point.prototype.toResultPoint = function () {\n        return new ResultPoint(this.getX(), this.getY());\n    };\n    Point.prototype.getX = function () {\n        return this.x;\n    };\n    Point.prototype.getY = function () {\n        return this.y;\n    };\n    return Point;\n}());\nexport { Point };\n/**\n * Encapsulates logic that can detect an Aztec Code in an image, even if the Aztec Code\n * is rotated or skewed, or partially obscured.\n *\n * @author David Olivier\n * @author Frank Yellin\n */\nvar Detector = /** @class */ (function () {\n    function Detector(image) {\n        this.EXPECTED_CORNER_BITS = new Int32Array([\n            0xee0,\n            0x1dc,\n            0x83b,\n            0x707,\n        ]);\n        this.image = image;\n    }\n    Detector.prototype.detect = function () {\n        return this.detectMirror(false);\n    };\n    /**\n     * Detects an Aztec Code in an image.\n     *\n     * @param isMirror if true, image is a mirror-image of original\n     * @return {@link AztecDetectorResult} encapsulating results of detecting an Aztec Code\n     * @throws NotFoundException if no Aztec Code can be found\n     */\n    Detector.prototype.detectMirror = function (isMirror) {\n        // 1. Get the center of the aztec matrix\n        var pCenter = this.getMatrixCenter();\n        // 2. Get the center points of the four diagonal points just outside the bull's eye\n        //  [topRight, bottomRight, bottomLeft, topLeft]\n        var bullsEyeCorners = this.getBullsEyeCorners(pCenter);\n        if (isMirror) {\n            var temp = bullsEyeCorners[0];\n            bullsEyeCorners[0] = bullsEyeCorners[2];\n            bullsEyeCorners[2] = temp;\n        }\n        // 3. Get the size of the matrix and other parameters from the bull's eye\n        this.extractParameters(bullsEyeCorners);\n        // 4. Sample the grid\n        var bits = this.sampleGrid(this.image, bullsEyeCorners[this.shift % 4], bullsEyeCorners[(this.shift + 1) % 4], bullsEyeCorners[(this.shift + 2) % 4], bullsEyeCorners[(this.shift + 3) % 4]);\n        // 5. Get the corners of the matrix.\n        var corners = this.getMatrixCornerPoints(bullsEyeCorners);\n        return new AztecDetectorResult(bits, corners, this.compact, this.nbDataBlocks, this.nbLayers);\n    };\n    /**\n     * Extracts the number of data layers and data blocks from the layer around the bull's eye.\n     *\n     * @param bullsEyeCorners the array of bull's eye corners\n     * @throws NotFoundException in case of too many errors or invalid parameters\n     */\n    Detector.prototype.extractParameters = function (bullsEyeCorners) {\n        if (!this.isValidPoint(bullsEyeCorners[0]) || !this.isValidPoint(bullsEyeCorners[1]) ||\n            !this.isValidPoint(bullsEyeCorners[2]) || !this.isValidPoint(bullsEyeCorners[3])) {\n            throw new NotFoundException();\n        }\n        var length = 2 * this.nbCenterLayers;\n        // Get the bits around the bull's eye\n        var sides = new Int32Array([\n            this.sampleLine(bullsEyeCorners[0], bullsEyeCorners[1], length),\n            this.sampleLine(bullsEyeCorners[1], bullsEyeCorners[2], length),\n            this.sampleLine(bullsEyeCorners[2], bullsEyeCorners[3], length),\n            this.sampleLine(bullsEyeCorners[3], bullsEyeCorners[0], length) // Top\n        ]);\n        // bullsEyeCorners[shift] is the corner of the bulls'eye that has three\n        // orientation marks.\n        // sides[shift] is the row/column that goes from the corner with three\n        // orientation marks to the corner with two.\n        this.shift = this.getRotation(sides, length);\n        // Flatten the parameter bits into a single 28- or 40-bit long\n        var parameterData = 0;\n        for (var i = 0; i < 4; i++) {\n            var side = sides[(this.shift + i) % 4];\n            if (this.compact) {\n                // Each side of the form ..XXXXXXX. where Xs are parameter data\n                parameterData <<= 7;\n                parameterData += (side >> 1) & 0x7F;\n            }\n            else {\n                // Each side of the form ..XXXXX.XXXXX. where Xs are parameter data\n                parameterData <<= 10;\n                parameterData += ((side >> 2) & (0x1f << 5)) + ((side >> 1) & 0x1F);\n            }\n        }\n        // Corrects parameter data using RS.  Returns just the data portion\n        // without the error correction.\n        var correctedData = this.getCorrectedParameterData(parameterData, this.compact);\n        if (this.compact) {\n            // 8 bits:  2 bits layers and 6 bits data blocks\n            this.nbLayers = (correctedData >> 6) + 1;\n            this.nbDataBlocks = (correctedData & 0x3F) + 1;\n        }\n        else {\n            // 16 bits:  5 bits layers and 11 bits data blocks\n            this.nbLayers = (correctedData >> 11) + 1;\n            this.nbDataBlocks = (correctedData & 0x7FF) + 1;\n        }\n    };\n    Detector.prototype.getRotation = function (sides, length) {\n        // In a normal pattern, we expect to See\n        //   **    .*             D       A\n        //   *      *\n        //\n        //   .      *\n        //   ..    ..             C       B\n        //\n        // Grab the 3 bits from each of the sides the form the locator pattern and concatenate\n        // into a 12-bit integer.  Start with the bit at A\n        var cornerBits = 0;\n        sides.forEach(function (side, idx, arr) {\n            // XX......X where X's are orientation marks\n            var t = ((side >> (length - 2)) << 1) + (side & 1);\n            cornerBits = (cornerBits << 3) + t;\n        });\n        // for (var side in sides) {\n        //     // XX......X where X's are orientation marks\n        //     var t = ((side >> (length - 2)) << 1) + (side & 1);\n        //     cornerBits = (cornerBits << 3) + t;\n        // }\n        // Mov the bottom bit to the top, so that the three bits of the locator pattern at A are\n        // together.  cornerBits is now:\n        //  3 orientation bits at A || 3 orientation bits at B || ... || 3 orientation bits at D\n        cornerBits = ((cornerBits & 1) << 11) + (cornerBits >> 1);\n        // The result shift indicates which element of BullsEyeCorners[] goes into the top-left\n        // corner. Since the four rotation values have a Hamming distance of 8, we\n        // can easily tolerate two errors.\n        for (var shift = 0; shift < 4; shift++) {\n            if (Integer.bitCount(cornerBits ^ this.EXPECTED_CORNER_BITS[shift]) <= 2) {\n                return shift;\n            }\n        }\n        throw new NotFoundException();\n    };\n    /**\n     * Corrects the parameter bits using Reed-Solomon algorithm.\n     *\n     * @param parameterData parameter bits\n     * @param compact true if this is a compact Aztec code\n     * @throws NotFoundException if the array contains too many errors\n     */\n    Detector.prototype.getCorrectedParameterData = function (parameterData, compact) {\n        var numCodewords;\n        var numDataCodewords;\n        if (compact) {\n            numCodewords = 7;\n            numDataCodewords = 2;\n        }\n        else {\n            numCodewords = 10;\n            numDataCodewords = 4;\n        }\n        var numECCodewords = numCodewords - numDataCodewords;\n        var parameterWords = new Int32Array(numCodewords);\n        for (var i = numCodewords - 1; i >= 0; --i) {\n            parameterWords[i] = parameterData & 0xF;\n            parameterData >>= 4;\n        }\n        try {\n            var rsDecoder = new ReedSolomonDecoder(GenericGF.AZTEC_PARAM);\n            rsDecoder.decode(parameterWords, numECCodewords);\n        }\n        catch (ignored) {\n            throw new NotFoundException();\n        }\n        // Toss the error correction.  Just return the data as an integer\n        var result = 0;\n        for (var i = 0; i < numDataCodewords; i++) {\n            result = (result << 4) + parameterWords[i];\n        }\n        return result;\n    };\n    /**\n     * Finds the corners of a bull-eye centered on the passed point.\n     * This returns the centers of the diagonal points just outside the bull's eye\n     * Returns [topRight, bottomRight, bottomLeft, topLeft]\n     *\n     * @param pCenter Center point\n     * @return The corners of the bull-eye\n     * @throws NotFoundException If no valid bull-eye can be found\n     */\n    Detector.prototype.getBullsEyeCorners = function (pCenter) {\n        var pina = pCenter;\n        var pinb = pCenter;\n        var pinc = pCenter;\n        var pind = pCenter;\n        var color = true;\n        for (this.nbCenterLayers = 1; this.nbCenterLayers < 9; this.nbCenterLayers++) {\n            var pouta = this.getFirstDifferent(pina, color, 1, -1);\n            var poutb = this.getFirstDifferent(pinb, color, 1, 1);\n            var poutc = this.getFirstDifferent(pinc, color, -1, 1);\n            var poutd = this.getFirstDifferent(pind, color, -1, -1);\n            // d      a\n            //\n            // c      b\n            if (this.nbCenterLayers > 2) {\n                var q = (this.distancePoint(poutd, pouta) * this.nbCenterLayers) / (this.distancePoint(pind, pina) * (this.nbCenterLayers + 2));\n                if (q < 0.75 || q > 1.25 || !this.isWhiteOrBlackRectangle(pouta, poutb, poutc, poutd)) {\n                    break;\n                }\n            }\n            pina = pouta;\n            pinb = poutb;\n            pinc = poutc;\n            pind = poutd;\n            color = !color;\n        }\n        if (this.nbCenterLayers !== 5 && this.nbCenterLayers !== 7) {\n            throw new NotFoundException();\n        }\n        this.compact = this.nbCenterLayers === 5;\n        // Expand the square by .5 pixel in each direction so that we're on the border\n        // between the white square and the black square\n        var pinax = new ResultPoint(pina.getX() + 0.5, pina.getY() - 0.5);\n        var pinbx = new ResultPoint(pinb.getX() + 0.5, pinb.getY() + 0.5);\n        var pincx = new ResultPoint(pinc.getX() - 0.5, pinc.getY() + 0.5);\n        var pindx = new ResultPoint(pind.getX() - 0.5, pind.getY() - 0.5);\n        // Expand the square so that its corners are the centers of the points\n        // just outside the bull's eye.\n        return this.expandSquare([pinax, pinbx, pincx, pindx], 2 * this.nbCenterLayers - 3, 2 * this.nbCenterLayers);\n    };\n    /**\n     * Finds a candidate center point of an Aztec code from an image\n     *\n     * @return the center point\n     */\n    Detector.prototype.getMatrixCenter = function () {\n        var pointA;\n        var pointB;\n        var pointC;\n        var pointD;\n        // Get a white rectangle that can be the border of the matrix in center bull's eye or\n        try {\n            var cornerPoints = new WhiteRectangleDetector(this.image).detect();\n            pointA = cornerPoints[0];\n            pointB = cornerPoints[1];\n            pointC = cornerPoints[2];\n            pointD = cornerPoints[3];\n        }\n        catch (e) {\n            // This exception can be in case the initial rectangle is white\n            // In that case, surely in the bull's eye, we try to expand the rectangle.\n            var cx_1 = this.image.getWidth() / 2;\n            var cy_1 = this.image.getHeight() / 2;\n            pointA = this.getFirstDifferent(new Point(cx_1 + 7, cy_1 - 7), false, 1, -1).toResultPoint();\n            pointB = this.getFirstDifferent(new Point(cx_1 + 7, cy_1 + 7), false, 1, 1).toResultPoint();\n            pointC = this.getFirstDifferent(new Point(cx_1 - 7, cy_1 + 7), false, -1, 1).toResultPoint();\n            pointD = this.getFirstDifferent(new Point(cx_1 - 7, cy_1 - 7), false, -1, -1).toResultPoint();\n        }\n        // Compute the center of the rectangle\n        var cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);\n        var cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);\n        // Redetermine the white rectangle starting from previously computed center.\n        // This will ensure that we end up with a white rectangle in center bull's eye\n        // in order to compute a more accurate center.\n        try {\n            var cornerPoints = new WhiteRectangleDetector(this.image, 15, cx, cy).detect();\n            pointA = cornerPoints[0];\n            pointB = cornerPoints[1];\n            pointC = cornerPoints[2];\n            pointD = cornerPoints[3];\n        }\n        catch (e) {\n            // This exception can be in case the initial rectangle is white\n            // In that case we try to expand the rectangle.\n            pointA = this.getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint();\n            pointB = this.getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint();\n            pointC = this.getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint();\n            pointD = this.getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint();\n        }\n        // Recompute the center of the rectangle\n        cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);\n        cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);\n        return new Point(cx, cy);\n    };\n    /**\n     * Gets the Aztec code corners from the bull's eye corners and the parameters.\n     *\n     * @param bullsEyeCorners the array of bull's eye corners\n     * @return the array of aztec code corners\n     */\n    Detector.prototype.getMatrixCornerPoints = function (bullsEyeCorners) {\n        return this.expandSquare(bullsEyeCorners, 2 * this.nbCenterLayers, this.getDimension());\n    };\n    /**\n     * Creates a BitMatrix by sampling the provided image.\n     * topLeft, topRight, bottomRight, and bottomLeft are the centers of the squares on the\n     * diagonal just outside the bull's eye.\n     */\n    Detector.prototype.sampleGrid = function (image, topLeft, topRight, bottomRight, bottomLeft) {\n        var sampler = GridSamplerInstance.getInstance();\n        var dimension = this.getDimension();\n        var low = dimension / 2 - this.nbCenterLayers;\n        var high = dimension / 2 + this.nbCenterLayers;\n        return sampler.sampleGrid(image, dimension, dimension, low, low, // topleft\n        high, low, // topright\n        high, high, // bottomright\n        low, high, // bottomleft\n        topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n    };\n    /**\n     * Samples a line.\n     *\n     * @param p1   start point (inclusive)\n     * @param p2   end point (exclusive)\n     * @param size number of bits\n     * @return the array of bits as an int (first bit is high-order bit of result)\n     */\n    Detector.prototype.sampleLine = function (p1, p2, size) {\n        var result = 0;\n        var d = this.distanceResultPoint(p1, p2);\n        var moduleSize = d / size;\n        var px = p1.getX();\n        var py = p1.getY();\n        var dx = moduleSize * (p2.getX() - p1.getX()) / d;\n        var dy = moduleSize * (p2.getY() - p1.getY()) / d;\n        for (var i = 0; i < size; i++) {\n            if (this.image.get(MathUtils.round(px + i * dx), MathUtils.round(py + i * dy))) {\n                result |= 1 << (size - i - 1);\n            }\n        }\n        return result;\n    };\n    /**\n     * @return true if the border of the rectangle passed in parameter is compound of white points only\n     *         or black points only\n     */\n    Detector.prototype.isWhiteOrBlackRectangle = function (p1, p2, p3, p4) {\n        var corr = 3;\n        p1 = new Point(p1.getX() - corr, p1.getY() + corr);\n        p2 = new Point(p2.getX() - corr, p2.getY() - corr);\n        p3 = new Point(p3.getX() + corr, p3.getY() - corr);\n        p4 = new Point(p4.getX() + corr, p4.getY() + corr);\n        var cInit = this.getColor(p4, p1);\n        if (cInit === 0) {\n            return false;\n        }\n        var c = this.getColor(p1, p2);\n        if (c !== cInit) {\n            return false;\n        }\n        c = this.getColor(p2, p3);\n        if (c !== cInit) {\n            return false;\n        }\n        c = this.getColor(p3, p4);\n        return c === cInit;\n    };\n    /**\n     * Gets the color of a segment\n     *\n     * @return 1 if segment more than 90% black, -1 if segment is more than 90% white, 0 else\n     */\n    Detector.prototype.getColor = function (p1, p2) {\n        var d = this.distancePoint(p1, p2);\n        var dx = (p2.getX() - p1.getX()) / d;\n        var dy = (p2.getY() - p1.getY()) / d;\n        var error = 0;\n        var px = p1.getX();\n        var py = p1.getY();\n        var colorModel = this.image.get(p1.getX(), p1.getY());\n        var iMax = Math.ceil(d);\n        for (var i = 0; i < iMax; i++) {\n            px += dx;\n            py += dy;\n            if (this.image.get(MathUtils.round(px), MathUtils.round(py)) !== colorModel) {\n                error++;\n            }\n        }\n        var errRatio = error / d;\n        if (errRatio > 0.1 && errRatio < 0.9) {\n            return 0;\n        }\n        return (errRatio <= 0.1) === colorModel ? 1 : -1;\n    };\n    /**\n     * Gets the coordinate of the first point with a different color in the given direction\n     */\n    Detector.prototype.getFirstDifferent = function (init, color, dx, dy) {\n        var x = init.getX() + dx;\n        var y = init.getY() + dy;\n        while (this.isValid(x, y) && this.image.get(x, y) === color) {\n            x += dx;\n            y += dy;\n        }\n        x -= dx;\n        y -= dy;\n        while (this.isValid(x, y) && this.image.get(x, y) === color) {\n            x += dx;\n        }\n        x -= dx;\n        while (this.isValid(x, y) && this.image.get(x, y) === color) {\n            y += dy;\n        }\n        y -= dy;\n        return new Point(x, y);\n    };\n    /**\n     * Expand the square represented by the corner points by pushing out equally in all directions\n     *\n     * @param cornerPoints the corners of the square, which has the bull's eye at its center\n     * @param oldSide the original length of the side of the square in the target bit matrix\n     * @param newSide the new length of the size of the square in the target bit matrix\n     * @return the corners of the expanded square\n     */\n    Detector.prototype.expandSquare = function (cornerPoints, oldSide, newSide) {\n        var ratio = newSide / (2.0 * oldSide);\n        var dx = cornerPoints[0].getX() - cornerPoints[2].getX();\n        var dy = cornerPoints[0].getY() - cornerPoints[2].getY();\n        var centerx = (cornerPoints[0].getX() + cornerPoints[2].getX()) / 2.0;\n        var centery = (cornerPoints[0].getY() + cornerPoints[2].getY()) / 2.0;\n        var result0 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy);\n        var result2 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy);\n        dx = cornerPoints[1].getX() - cornerPoints[3].getX();\n        dy = cornerPoints[1].getY() - cornerPoints[3].getY();\n        centerx = (cornerPoints[1].getX() + cornerPoints[3].getX()) / 2.0;\n        centery = (cornerPoints[1].getY() + cornerPoints[3].getY()) / 2.0;\n        var result1 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy);\n        var result3 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy);\n        var results = [result0, result1, result2, result3];\n        return results;\n    };\n    Detector.prototype.isValid = function (x, y) {\n        return x >= 0 && x < this.image.getWidth() && y > 0 && y < this.image.getHeight();\n    };\n    Detector.prototype.isValidPoint = function (point) {\n        var x = MathUtils.round(point.getX());\n        var y = MathUtils.round(point.getY());\n        return this.isValid(x, y);\n    };\n    Detector.prototype.distancePoint = function (a, b) {\n        return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());\n    };\n    Detector.prototype.distanceResultPoint = function (a, b) {\n        return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());\n    };\n    Detector.prototype.getDimension = function () {\n        if (this.compact) {\n            return 4 * this.nbLayers + 11;\n        }\n        if (this.nbLayers <= 4) {\n            return 4 * this.nbLayers + 15;\n        }\n        return 4 * this.nbLayers + 2 * (Integer.truncDivision((this.nbLayers - 4), 8) + 1) + 15;\n    };\n    return Detector;\n}());\nexport default Detector;\n","/*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Result from '../Result';\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport ResultMetadataType from '../ResultMetadataType';\nimport System from '../util/System';\nimport Decoder from './decoder/Decoder';\nimport Detector from './detector/Detector';\n// import java.util.List;\n// import java.util.Map;\n/**\n * This implementation can detect and decode Aztec codes in an image.\n *\n * @author David Olivier\n */\nvar AztecReader = /** @class */ (function () {\n    function AztecReader() {\n    }\n    /**\n     * Locates and decodes a Data Matrix code in an image.\n     *\n     * @return a String representing the content encoded by the Data Matrix code\n     * @throws NotFoundException if a Data Matrix code cannot be found\n     * @throws FormatException if a Data Matrix code cannot be decoded\n     */\n    AztecReader.prototype.decode = function (image, hints) {\n        if (hints === void 0) { hints = null; }\n        var exception = null;\n        var detector = new Detector(image.getBlackMatrix());\n        var points = null;\n        var decoderResult = null;\n        try {\n            var detectorResult = detector.detectMirror(false);\n            points = detectorResult.getPoints();\n            this.reportFoundResultPoints(hints, points);\n            decoderResult = new Decoder().decode(detectorResult);\n        }\n        catch (e) {\n            exception = e;\n        }\n        if (decoderResult == null) {\n            try {\n                var detectorResult = detector.detectMirror(true);\n                points = detectorResult.getPoints();\n                this.reportFoundResultPoints(hints, points);\n                decoderResult = new Decoder().decode(detectorResult);\n            }\n            catch (e) {\n                if (exception != null) {\n                    throw exception;\n                }\n                throw e;\n            }\n        }\n        var result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), decoderResult.getNumBits(), points, BarcodeFormat.AZTEC, System.currentTimeMillis());\n        var byteSegments = decoderResult.getByteSegments();\n        if (byteSegments != null) {\n            result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments);\n        }\n        var ecLevel = decoderResult.getECLevel();\n        if (ecLevel != null) {\n            result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);\n        }\n        return result;\n    };\n    AztecReader.prototype.reportFoundResultPoints = function (hints, points) {\n        if (hints != null) {\n            var rpcb_1 = hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n            if (rpcb_1 != null) {\n                points.forEach(function (point, idx, arr) {\n                    rpcb_1.foundPossibleResultPoint(point);\n                });\n            }\n        }\n    };\n    // @Override\n    AztecReader.prototype.reset = function () {\n        // do nothing\n    };\n    return AztecReader;\n}());\nexport default AztecReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport BitArray from '../common/BitArray';\nimport DecodeHintType from '../DecodeHintType';\nimport ResultMetadataType from '../ResultMetadataType';\nimport ResultPoint from '../ResultPoint';\nimport NotFoundException from '../NotFoundException';\n/**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\nvar OneDReader = /** @class */ (function () {\n    function OneDReader() {\n    }\n    /*\n    @Override\n    public Result decode(BinaryBitmap image) throws NotFoundException, FormatException {\n      return decode(image, null);\n    }\n    */\n    // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n    // @Override\n    OneDReader.prototype.decode = function (image, hints) {\n        try {\n            return this.doDecode(image, hints);\n        }\n        catch (nfe) {\n            var tryHarder = hints && (hints.get(DecodeHintType.TRY_HARDER) === true);\n            if (tryHarder && image.isRotateSupported()) {\n                var rotatedImage = image.rotateCounterClockwise();\n                var result = this.doDecode(rotatedImage, hints);\n                // Record that we found it rotated 90 degrees CCW / 270 degrees CW\n                var metadata = result.getResultMetadata();\n                var orientation_1 = 270;\n                if (metadata !== null && (metadata.get(ResultMetadataType.ORIENTATION) === true)) {\n                    // But if we found it reversed in doDecode(), add in that result here:\n                    orientation_1 = (orientation_1 + metadata.get(ResultMetadataType.ORIENTATION) % 360);\n                }\n                result.putMetadata(ResultMetadataType.ORIENTATION, orientation_1);\n                // Update result points\n                var points = result.getResultPoints();\n                if (points !== null) {\n                    var height = rotatedImage.getHeight();\n                    for (var i = 0; i < points.length; i++) {\n                        points[i] = new ResultPoint(height - points[i].getY() - 1, points[i].getX());\n                    }\n                }\n                return result;\n            }\n            else {\n                throw new NotFoundException();\n            }\n        }\n    };\n    // @Override\n    OneDReader.prototype.reset = function () {\n        // do nothing\n    };\n    /**\n     * We're going to examine rows from the middle outward, searching alternately above and below the\n     * middle, and farther out each time. rowStep is the number of rows between each successive\n     * attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then\n     * middle + rowStep, then middle - (2 * rowStep), etc.\n     * rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily\n     * decided that moving up and down by about 1/16 of the image is pretty good; we try more of the\n     * image if \"trying harder\".\n     *\n     * @param image The image to decode\n     * @param hints Any hints that were requested\n     * @return The contents of the decoded barcode\n     * @throws NotFoundException Any spontaneous errors which occur\n     */\n    OneDReader.prototype.doDecode = function (image, hints) {\n        var width = image.getWidth();\n        var height = image.getHeight();\n        var row = new BitArray(width);\n        var tryHarder = hints && (hints.get(DecodeHintType.TRY_HARDER) === true);\n        var rowStep = Math.max(1, height >> (tryHarder ? 8 : 5));\n        var maxLines;\n        if (tryHarder) {\n            maxLines = height; // Look at the whole image, not just the center\n        }\n        else {\n            maxLines = 15; // 15 rows spaced 1/32 apart is roughly the middle half of the image\n        }\n        var middle = Math.trunc(height / 2);\n        for (var x = 0; x < maxLines; x++) {\n            // Scanning from the middle out. Determine which row we're looking at next:\n            var rowStepsAboveOrBelow = Math.trunc((x + 1) / 2);\n            var isAbove = (x & 0x01) === 0; // i.e. is x even?\n            var rowNumber = middle + rowStep * (isAbove ? rowStepsAboveOrBelow : -rowStepsAboveOrBelow);\n            if (rowNumber < 0 || rowNumber >= height) {\n                // Oops, if we run off the top or bottom, stop\n                break;\n            }\n            // Estimate black point for this row and load it:\n            try {\n                row = image.getBlackRow(rowNumber, row);\n            }\n            catch (ignored) {\n                continue;\n            }\n            var _loop_1 = function (attempt) {\n                if (attempt === 1) { // trying again?\n                    row.reverse(); // reverse the row and continue\n                    // This means we will only ever draw result points *once* in the life of this method\n                    // since we want to avoid drawing the wrong points after flipping the row, and,\n                    // don't want to clutter with noise from every single row scan -- just the scans\n                    // that start on the center line.\n                    if (hints && (hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK) === true)) {\n                        var newHints_1 = new Map();\n                        hints.forEach(function (hint, key) { return newHints_1.set(key, hint); });\n                        newHints_1.delete(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n                        hints = newHints_1;\n                    }\n                }\n                try {\n                    // Look for a barcode\n                    var result = this_1.decodeRow(rowNumber, row, hints);\n                    // We found our barcode\n                    if (attempt === 1) {\n                        // But it was upside down, so note that\n                        result.putMetadata(ResultMetadataType.ORIENTATION, 180);\n                        // And remember to flip the result points horizontally.\n                        var points = result.getResultPoints();\n                        if (points !== null) {\n                            points[0] = new ResultPoint(width - points[0].getX() - 1, points[0].getY());\n                            points[1] = new ResultPoint(width - points[1].getX() - 1, points[1].getY());\n                        }\n                    }\n                    return { value: result };\n                }\n                catch (re) {\n                    // continue -- just couldn't decode this row\n                }\n            };\n            var this_1 = this;\n            // While we have the image data in a BitArray, it's fairly cheap to reverse it in place to\n            // handle decoding upside down barcodes.\n            for (var attempt = 0; attempt < 2; attempt++) {\n                var state_1 = _loop_1(attempt);\n                if (typeof state_1 === \"object\")\n                    return state_1.value;\n            }\n        }\n        throw new NotFoundException();\n    };\n    /**\n     * Records the size of successive runs of white and black pixels in a row, starting at a given point.\n     * The values are recorded in the given array, and the number of runs recorded is equal to the size\n     * of the array. If the row starts on a white pixel at the given start point, then the first count\n     * recorded is the run of white pixels starting from that point; likewise it is the count of a run\n     * of black pixels if the row begin on a black pixels at that point.\n     *\n     * @param row row to count from\n     * @param start offset into row to start at\n     * @param counters array into which to record counts\n     * @throws NotFoundException if counters cannot be filled entirely from row before running out\n     *  of pixels\n     */\n    OneDReader.recordPattern = function (row, start, counters) {\n        var numCounters = counters.length;\n        for (var index = 0; index < numCounters; index++)\n            counters[index] = 0;\n        var end = row.getSize();\n        if (start >= end) {\n            throw new NotFoundException();\n        }\n        var isWhite = !row.get(start);\n        var counterPosition = 0;\n        var i = start;\n        while (i < end) {\n            if (row.get(i) !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (++counterPosition === numCounters) {\n                    break;\n                }\n                else {\n                    counters[counterPosition] = 1;\n                    isWhite = !isWhite;\n                }\n            }\n            i++;\n        }\n        // If we read fully the last section of pixels and filled up our counters -- or filled\n        // the last counter but ran off the side of the image, OK. Otherwise, a problem.\n        if (!(counterPosition === numCounters || (counterPosition === numCounters - 1 && i === end))) {\n            throw new NotFoundException();\n        }\n    };\n    OneDReader.recordPatternInReverse = function (row, start, counters) {\n        // This could be more efficient I guess\n        var numTransitionsLeft = counters.length;\n        var last = row.get(start);\n        while (start > 0 && numTransitionsLeft >= 0) {\n            if (row.get(--start) !== last) {\n                numTransitionsLeft--;\n                last = !last;\n            }\n        }\n        if (numTransitionsLeft >= 0) {\n            throw new NotFoundException();\n        }\n        OneDReader.recordPattern(row, start + 1, counters);\n    };\n    /**\n     * Determines how closely a set of observed counts of runs of black/white values matches a given\n     * target pattern. This is reported as the ratio of the total variance from the expected pattern\n     * proportions across all pattern elements, to the length of the pattern.\n     *\n     * @param counters observed counters\n     * @param pattern expected pattern\n     * @param maxIndividualVariance The most any counter can differ before we give up\n     * @return ratio of total variance between counters and pattern compared to total pattern size\n     */\n    OneDReader.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\n        var numCounters = counters.length;\n        var total = 0;\n        var patternLength = 0;\n        for (var i = 0; i < numCounters; i++) {\n            total += counters[i];\n            patternLength += pattern[i];\n        }\n        if (total < patternLength) {\n            // If we don't even have one pixel per unit of bar width, assume this is too small\n            // to reliably match, so fail:\n            return Number.POSITIVE_INFINITY;\n        }\n        var unitBarWidth = total / patternLength;\n        maxIndividualVariance *= unitBarWidth;\n        var totalVariance = 0.0;\n        for (var x = 0; x < numCounters; x++) {\n            var counter = counters[x];\n            var scaledPattern = pattern[x] * unitBarWidth;\n            var variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n            if (variance > maxIndividualVariance) {\n                return Number.POSITIVE_INFINITY;\n            }\n            totalVariance += variance;\n        }\n        return totalVariance / total;\n    };\n    return OneDReader;\n}());\nexport default OneDReader;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport AztecReader from '../core/aztec/AztecReader';\n/**\n * Aztec Code reader to use from browser.\n *\n * @class BrowserAztecCodeReader\n * @extends {BrowserCodeReader}\n */\nvar BrowserAztecCodeReader = /** @class */ (function (_super) {\n    __extends(BrowserAztecCodeReader, _super);\n    /**\n     * Creates an instance of BrowserAztecCodeReader.\n     * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n     *\n     * @memberOf BrowserAztecCodeReader\n     */\n    function BrowserAztecCodeReader(timeBetweenScansMillis) {\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        return _super.call(this, new AztecReader(), timeBetweenScansMillis) || this;\n    }\n    return BrowserAztecCodeReader;\n}(BrowserCodeReader));\nexport { BrowserAztecCodeReader };\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport ChecksumException from '../ChecksumException';\nimport DecodeHintType from '../DecodeHintType';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\n// import Reader from '../Reader';\nimport Result from '../Result';\n// import ResultMetadataType from '../ResultMetadataType';\nimport ResultPoint from '../ResultPoint';\nimport OneDReader from './OneDReader';\n/**\n * <p>Decodes Code 128 barcodes.</p>\n *\n * @author Sean Owen\n */\nvar Code128Reader = /** @class */ (function (_super) {\n    __extends(Code128Reader, _super);\n    function Code128Reader() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    Code128Reader.findStartPattern = function (row) {\n        var width = row.getSize();\n        var rowOffset = row.getNextSet(0);\n        var counterPosition = 0;\n        var counters = Int32Array.from([0, 0, 0, 0, 0, 0]);\n        var patternStart = rowOffset;\n        var isWhite = false;\n        var patternLength = 6;\n        for (var i = rowOffset; i < width; i++) {\n            if (row.get(i) !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition === (patternLength - 1)) {\n                    var bestVariance = Code128Reader.MAX_AVG_VARIANCE;\n                    var bestMatch = -1;\n                    for (var startCode = Code128Reader.CODE_START_A; startCode <= Code128Reader.CODE_START_C; startCode++) {\n                        var variance = OneDReader.patternMatchVariance(counters, Code128Reader.CODE_PATTERNS[startCode], Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n                        if (variance < bestVariance) {\n                            bestVariance = variance;\n                            bestMatch = startCode;\n                        }\n                    }\n                    // Look for whitespace before start pattern, >= 50% of width of start pattern\n                    if (bestMatch >= 0 &&\n                        row.isRange(Math.max(0, patternStart - (i - patternStart) / 2), patternStart, false)) {\n                        return Int32Array.from([patternStart, i, bestMatch]);\n                    }\n                    patternStart += counters[0] + counters[1];\n                    counters = counters.slice(2, counters.length - 1);\n                    counters[counterPosition - 1] = 0;\n                    counters[counterPosition] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        throw new NotFoundException();\n    };\n    Code128Reader.decodeCode = function (row, counters, rowOffset) {\n        OneDReader.recordPattern(row, rowOffset, counters);\n        var bestVariance = Code128Reader.MAX_AVG_VARIANCE; // worst variance we'll accept\n        var bestMatch = -1;\n        for (var d = 0; d < Code128Reader.CODE_PATTERNS.length; d++) {\n            var pattern = Code128Reader.CODE_PATTERNS[d];\n            var variance = this.patternMatchVariance(counters, pattern, Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n            if (variance < bestVariance) {\n                bestVariance = variance;\n                bestMatch = d;\n            }\n        }\n        // TODO We're overlooking the fact that the STOP pattern has 7 values, not 6.\n        if (bestMatch >= 0) {\n            return bestMatch;\n        }\n        else {\n            throw new NotFoundException();\n        }\n    };\n    Code128Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n        var convertFNC1 = hints && (hints.get(DecodeHintType.ASSUME_GS1) === true);\n        var startPatternInfo = Code128Reader.findStartPattern(row);\n        var startCode = startPatternInfo[2];\n        var currentRawCodesIndex = 0;\n        var rawCodes = new Uint8Array(20);\n        rawCodes[currentRawCodesIndex++] = startCode;\n        var codeSet;\n        switch (startCode) {\n            case Code128Reader.CODE_START_A:\n                codeSet = Code128Reader.CODE_CODE_A;\n                break;\n            case Code128Reader.CODE_START_B:\n                codeSet = Code128Reader.CODE_CODE_B;\n                break;\n            case Code128Reader.CODE_START_C:\n                codeSet = Code128Reader.CODE_CODE_C;\n                break;\n            default:\n                throw new FormatException();\n        }\n        var done = false;\n        var isNextShifted = false;\n        var result = '';\n        var lastStart = startPatternInfo[0];\n        var nextStart = startPatternInfo[1];\n        var counters = Int32Array.from([0, 0, 0, 0, 0, 0]);\n        var lastCode = 0;\n        var code = 0;\n        var checksumTotal = startCode;\n        var multiplier = 0;\n        var lastCharacterWasPrintable = true;\n        var upperMode = false;\n        var shiftUpperMode = false;\n        while (!done) {\n            var unshift = isNextShifted;\n            isNextShifted = false;\n            // Save off last code\n            lastCode = code;\n            // Decode another code from image\n            code = Code128Reader.decodeCode(row, counters, nextStart);\n            rawCodes[currentRawCodesIndex++] = code;\n            // Remember whether the last code was printable or not (excluding CODE_STOP)\n            if (code !== Code128Reader.CODE_STOP) {\n                lastCharacterWasPrintable = true;\n            }\n            // Add to checksum computation (if not CODE_STOP of course)\n            if (code !== Code128Reader.CODE_STOP) {\n                multiplier++;\n                checksumTotal += multiplier * code;\n            }\n            // Advance to where the next code will to start\n            lastStart = nextStart;\n            nextStart += counters.reduce(function (previous, current) { return previous + current; }, 0);\n            // Take care of illegal start codes\n            switch (code) {\n                case Code128Reader.CODE_START_A:\n                case Code128Reader.CODE_START_B:\n                case Code128Reader.CODE_START_C:\n                    throw new FormatException();\n            }\n            switch (codeSet) {\n                case Code128Reader.CODE_CODE_A:\n                    if (code < 64) {\n                        if (shiftUpperMode === upperMode) {\n                            result += String.fromCharCode((' '.charCodeAt(0) + code));\n                        }\n                        else {\n                            result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n                        }\n                        shiftUpperMode = false;\n                    }\n                    else if (code < 96) {\n                        if (shiftUpperMode === upperMode) {\n                            result += String.fromCharCode((code - 64));\n                        }\n                        else {\n                            result += String.fromCharCode((code + 64));\n                        }\n                        shiftUpperMode = false;\n                    }\n                    else {\n                        // Don't let CODE_STOP, which always appears, affect whether whether we think the last\n                        // code was printable or not.\n                        if (code !== Code128Reader.CODE_STOP) {\n                            lastCharacterWasPrintable = false;\n                        }\n                        switch (code) {\n                            case Code128Reader.CODE_FNC_1:\n                                if (convertFNC1) {\n                                    if (result.length === 0) {\n                                        // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n                                        // is FNC1 then this is GS1-128. We add the symbology identifier.\n                                        result += ']C1';\n                                    }\n                                    else {\n                                        // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n                                        result += String.fromCharCode(29);\n                                    }\n                                }\n                                break;\n                            case Code128Reader.CODE_FNC_2:\n                            case Code128Reader.CODE_FNC_3:\n                                // do nothing?\n                                break;\n                            case Code128Reader.CODE_FNC_4_A:\n                                if (!upperMode && shiftUpperMode) {\n                                    upperMode = true;\n                                    shiftUpperMode = false;\n                                }\n                                else if (upperMode && shiftUpperMode) {\n                                    upperMode = false;\n                                    shiftUpperMode = false;\n                                }\n                                else {\n                                    shiftUpperMode = true;\n                                }\n                                break;\n                            case Code128Reader.CODE_SHIFT:\n                                isNextShifted = true;\n                                codeSet = Code128Reader.CODE_CODE_B;\n                                break;\n                            case Code128Reader.CODE_CODE_B:\n                                codeSet = Code128Reader.CODE_CODE_B;\n                                break;\n                            case Code128Reader.CODE_CODE_C:\n                                codeSet = Code128Reader.CODE_CODE_C;\n                                break;\n                            case Code128Reader.CODE_STOP:\n                                done = true;\n                                break;\n                        }\n                    }\n                    break;\n                case Code128Reader.CODE_CODE_B:\n                    if (code < 96) {\n                        if (shiftUpperMode === upperMode) {\n                            result += String.fromCharCode((' '.charCodeAt(0) + code));\n                        }\n                        else {\n                            result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n                        }\n                        shiftUpperMode = false;\n                    }\n                    else {\n                        if (code !== Code128Reader.CODE_STOP) {\n                            lastCharacterWasPrintable = false;\n                        }\n                        switch (code) {\n                            case Code128Reader.CODE_FNC_1:\n                                if (convertFNC1) {\n                                    if (result.length === 0) {\n                                        // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n                                        // is FNC1 then this is GS1-128. We add the symbology identifier.\n                                        result += ']C1';\n                                    }\n                                    else {\n                                        // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n                                        result += String.fromCharCode(29);\n                                    }\n                                }\n                                break;\n                            case Code128Reader.CODE_FNC_2:\n                            case Code128Reader.CODE_FNC_3:\n                                // do nothing?\n                                break;\n                            case Code128Reader.CODE_FNC_4_B:\n                                if (!upperMode && shiftUpperMode) {\n                                    upperMode = true;\n                                    shiftUpperMode = false;\n                                }\n                                else if (upperMode && shiftUpperMode) {\n                                    upperMode = false;\n                                    shiftUpperMode = false;\n                                }\n                                else {\n                                    shiftUpperMode = true;\n                                }\n                                break;\n                            case Code128Reader.CODE_SHIFT:\n                                isNextShifted = true;\n                                codeSet = Code128Reader.CODE_CODE_A;\n                                break;\n                            case Code128Reader.CODE_CODE_A:\n                                codeSet = Code128Reader.CODE_CODE_A;\n                                break;\n                            case Code128Reader.CODE_CODE_C:\n                                codeSet = Code128Reader.CODE_CODE_C;\n                                break;\n                            case Code128Reader.CODE_STOP:\n                                done = true;\n                                break;\n                        }\n                    }\n                    break;\n                case Code128Reader.CODE_CODE_C:\n                    if (code < 100) {\n                        if (code < 10) {\n                            result += '0';\n                        }\n                        result += code;\n                    }\n                    else {\n                        if (code !== Code128Reader.CODE_STOP) {\n                            lastCharacterWasPrintable = false;\n                        }\n                        switch (code) {\n                            case Code128Reader.CODE_FNC_1:\n                                if (convertFNC1) {\n                                    if (result.length === 0) {\n                                        // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n                                        // is FNC1 then this is GS1-128. We add the symbology identifier.\n                                        result += ']C1';\n                                    }\n                                    else {\n                                        // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n                                        result += String.fromCharCode(29);\n                                    }\n                                }\n                                break;\n                            case Code128Reader.CODE_CODE_A:\n                                codeSet = Code128Reader.CODE_CODE_A;\n                                break;\n                            case Code128Reader.CODE_CODE_B:\n                                codeSet = Code128Reader.CODE_CODE_B;\n                                break;\n                            case Code128Reader.CODE_STOP:\n                                done = true;\n                                break;\n                        }\n                    }\n                    break;\n            }\n            // Unshift back to another code set if we were shifted\n            if (unshift) {\n                codeSet = codeSet === Code128Reader.CODE_CODE_A ? Code128Reader.CODE_CODE_B : Code128Reader.CODE_CODE_A;\n            }\n        }\n        var lastPatternSize = nextStart - lastStart;\n        // Check for ample whitespace following pattern, but, to do this we first need to remember that\n        // we fudged decoding CODE_STOP since it actually has 7 bars, not 6. There is a black bar left\n        // to read off. Would be slightly better to properly read. Here we just skip it:\n        nextStart = row.getNextUnset(nextStart);\n        if (!row.isRange(nextStart, Math.min(row.getSize(), nextStart + (nextStart - lastStart) / 2), false)) {\n            throw new NotFoundException();\n        }\n        // Pull out from sum the value of the penultimate check code\n        checksumTotal -= multiplier * lastCode;\n        // lastCode is the checksum then:\n        if (checksumTotal % 103 !== lastCode) {\n            throw new ChecksumException();\n        }\n        // Need to pull out the check digits from string\n        var resultLength = result.length;\n        if (resultLength === 0) {\n            // false positive\n            throw new NotFoundException();\n        }\n        // Only bother if the result had at least one character, and if the checksum digit happened to\n        // be a printable character. If it was just interpreted as a control code, nothing to remove.\n        if (resultLength > 0 && lastCharacterWasPrintable) {\n            if (codeSet === Code128Reader.CODE_CODE_C) {\n                result = result.substring(0, resultLength - 2);\n            }\n            else {\n                result = result.substring(0, resultLength - 1);\n            }\n        }\n        var left = (startPatternInfo[1] + startPatternInfo[0]) / 2.0;\n        var right = lastStart + lastPatternSize / 2.0;\n        var rawCodesSize = rawCodes.length;\n        var rawBytes = new Uint8Array(rawCodesSize);\n        for (var i = 0; i < rawCodesSize; i++) {\n            rawBytes[i] = rawCodes[i];\n        }\n        var points = [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)];\n        return new Result(result, rawBytes, 0, points, BarcodeFormat.CODE_128, new Date().getTime());\n    };\n    Code128Reader.CODE_PATTERNS = [\n        Int32Array.from([2, 1, 2, 2, 2, 2]),\n        Int32Array.from([2, 2, 2, 1, 2, 2]),\n        Int32Array.from([2, 2, 2, 2, 2, 1]),\n        Int32Array.from([1, 2, 1, 2, 2, 3]),\n        Int32Array.from([1, 2, 1, 3, 2, 2]),\n        Int32Array.from([1, 3, 1, 2, 2, 2]),\n        Int32Array.from([1, 2, 2, 2, 1, 3]),\n        Int32Array.from([1, 2, 2, 3, 1, 2]),\n        Int32Array.from([1, 3, 2, 2, 1, 2]),\n        Int32Array.from([2, 2, 1, 2, 1, 3]),\n        Int32Array.from([2, 2, 1, 3, 1, 2]),\n        Int32Array.from([2, 3, 1, 2, 1, 2]),\n        Int32Array.from([1, 1, 2, 2, 3, 2]),\n        Int32Array.from([1, 2, 2, 1, 3, 2]),\n        Int32Array.from([1, 2, 2, 2, 3, 1]),\n        Int32Array.from([1, 1, 3, 2, 2, 2]),\n        Int32Array.from([1, 2, 3, 1, 2, 2]),\n        Int32Array.from([1, 2, 3, 2, 2, 1]),\n        Int32Array.from([2, 2, 3, 2, 1, 1]),\n        Int32Array.from([2, 2, 1, 1, 3, 2]),\n        Int32Array.from([2, 2, 1, 2, 3, 1]),\n        Int32Array.from([2, 1, 3, 2, 1, 2]),\n        Int32Array.from([2, 2, 3, 1, 1, 2]),\n        Int32Array.from([3, 1, 2, 1, 3, 1]),\n        Int32Array.from([3, 1, 1, 2, 2, 2]),\n        Int32Array.from([3, 2, 1, 1, 2, 2]),\n        Int32Array.from([3, 2, 1, 2, 2, 1]),\n        Int32Array.from([3, 1, 2, 2, 1, 2]),\n        Int32Array.from([3, 2, 2, 1, 1, 2]),\n        Int32Array.from([3, 2, 2, 2, 1, 1]),\n        Int32Array.from([2, 1, 2, 1, 2, 3]),\n        Int32Array.from([2, 1, 2, 3, 2, 1]),\n        Int32Array.from([2, 3, 2, 1, 2, 1]),\n        Int32Array.from([1, 1, 1, 3, 2, 3]),\n        Int32Array.from([1, 3, 1, 1, 2, 3]),\n        Int32Array.from([1, 3, 1, 3, 2, 1]),\n        Int32Array.from([1, 1, 2, 3, 1, 3]),\n        Int32Array.from([1, 3, 2, 1, 1, 3]),\n        Int32Array.from([1, 3, 2, 3, 1, 1]),\n        Int32Array.from([2, 1, 1, 3, 1, 3]),\n        Int32Array.from([2, 3, 1, 1, 1, 3]),\n        Int32Array.from([2, 3, 1, 3, 1, 1]),\n        Int32Array.from([1, 1, 2, 1, 3, 3]),\n        Int32Array.from([1, 1, 2, 3, 3, 1]),\n        Int32Array.from([1, 3, 2, 1, 3, 1]),\n        Int32Array.from([1, 1, 3, 1, 2, 3]),\n        Int32Array.from([1, 1, 3, 3, 2, 1]),\n        Int32Array.from([1, 3, 3, 1, 2, 1]),\n        Int32Array.from([3, 1, 3, 1, 2, 1]),\n        Int32Array.from([2, 1, 1, 3, 3, 1]),\n        Int32Array.from([2, 3, 1, 1, 3, 1]),\n        Int32Array.from([2, 1, 3, 1, 1, 3]),\n        Int32Array.from([2, 1, 3, 3, 1, 1]),\n        Int32Array.from([2, 1, 3, 1, 3, 1]),\n        Int32Array.from([3, 1, 1, 1, 2, 3]),\n        Int32Array.from([3, 1, 1, 3, 2, 1]),\n        Int32Array.from([3, 3, 1, 1, 2, 1]),\n        Int32Array.from([3, 1, 2, 1, 1, 3]),\n        Int32Array.from([3, 1, 2, 3, 1, 1]),\n        Int32Array.from([3, 3, 2, 1, 1, 1]),\n        Int32Array.from([3, 1, 4, 1, 1, 1]),\n        Int32Array.from([2, 2, 1, 4, 1, 1]),\n        Int32Array.from([4, 3, 1, 1, 1, 1]),\n        Int32Array.from([1, 1, 1, 2, 2, 4]),\n        Int32Array.from([1, 1, 1, 4, 2, 2]),\n        Int32Array.from([1, 2, 1, 1, 2, 4]),\n        Int32Array.from([1, 2, 1, 4, 2, 1]),\n        Int32Array.from([1, 4, 1, 1, 2, 2]),\n        Int32Array.from([1, 4, 1, 2, 2, 1]),\n        Int32Array.from([1, 1, 2, 2, 1, 4]),\n        Int32Array.from([1, 1, 2, 4, 1, 2]),\n        Int32Array.from([1, 2, 2, 1, 1, 4]),\n        Int32Array.from([1, 2, 2, 4, 1, 1]),\n        Int32Array.from([1, 4, 2, 1, 1, 2]),\n        Int32Array.from([1, 4, 2, 2, 1, 1]),\n        Int32Array.from([2, 4, 1, 2, 1, 1]),\n        Int32Array.from([2, 2, 1, 1, 1, 4]),\n        Int32Array.from([4, 1, 3, 1, 1, 1]),\n        Int32Array.from([2, 4, 1, 1, 1, 2]),\n        Int32Array.from([1, 3, 4, 1, 1, 1]),\n        Int32Array.from([1, 1, 1, 2, 4, 2]),\n        Int32Array.from([1, 2, 1, 1, 4, 2]),\n        Int32Array.from([1, 2, 1, 2, 4, 1]),\n        Int32Array.from([1, 1, 4, 2, 1, 2]),\n        Int32Array.from([1, 2, 4, 1, 1, 2]),\n        Int32Array.from([1, 2, 4, 2, 1, 1]),\n        Int32Array.from([4, 1, 1, 2, 1, 2]),\n        Int32Array.from([4, 2, 1, 1, 1, 2]),\n        Int32Array.from([4, 2, 1, 2, 1, 1]),\n        Int32Array.from([2, 1, 2, 1, 4, 1]),\n        Int32Array.from([2, 1, 4, 1, 2, 1]),\n        Int32Array.from([4, 1, 2, 1, 2, 1]),\n        Int32Array.from([1, 1, 1, 1, 4, 3]),\n        Int32Array.from([1, 1, 1, 3, 4, 1]),\n        Int32Array.from([1, 3, 1, 1, 4, 1]),\n        Int32Array.from([1, 1, 4, 1, 1, 3]),\n        Int32Array.from([1, 1, 4, 3, 1, 1]),\n        Int32Array.from([4, 1, 1, 1, 1, 3]),\n        Int32Array.from([4, 1, 1, 3, 1, 1]),\n        Int32Array.from([1, 1, 3, 1, 4, 1]),\n        Int32Array.from([1, 1, 4, 1, 3, 1]),\n        Int32Array.from([3, 1, 1, 1, 4, 1]),\n        Int32Array.from([4, 1, 1, 1, 3, 1]),\n        Int32Array.from([2, 1, 1, 4, 1, 2]),\n        Int32Array.from([2, 1, 1, 2, 1, 4]),\n        Int32Array.from([2, 1, 1, 2, 3, 2]),\n        Int32Array.from([2, 3, 3, 1, 1, 1, 2]),\n    ];\n    Code128Reader.MAX_AVG_VARIANCE = 0.25;\n    Code128Reader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n    Code128Reader.CODE_SHIFT = 98;\n    Code128Reader.CODE_CODE_C = 99;\n    Code128Reader.CODE_CODE_B = 100;\n    Code128Reader.CODE_CODE_A = 101;\n    Code128Reader.CODE_FNC_1 = 102;\n    Code128Reader.CODE_FNC_2 = 97;\n    Code128Reader.CODE_FNC_3 = 96;\n    Code128Reader.CODE_FNC_4_A = 101;\n    Code128Reader.CODE_FNC_4_B = 100;\n    Code128Reader.CODE_START_A = 103;\n    Code128Reader.CODE_START_B = 104;\n    Code128Reader.CODE_START_C = 105;\n    Code128Reader.CODE_STOP = 106;\n    return Code128Reader;\n}(OneDReader));\nexport default Code128Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport ChecksumException from '../ChecksumException';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\nimport OneDReader from './OneDReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\n/**\n * <p>Decodes Code 39 barcodes. Supports \"Full ASCII Code 39\" if USE_CODE_39_EXTENDED_MODE is set.</p>\n *\n * @author Sean Owen\n * @see Code93Reader\n */\nvar Code39Reader = /** @class */ (function (_super) {\n    __extends(Code39Reader, _super);\n    /**\n     * Creates a reader that assumes all encoded data is data, and does not treat the final\n     * character as a check digit. It will not decoded \"extended Code 39\" sequences.\n     */\n    // public Code39Reader() {\n    //   this(false);\n    // }\n    /**\n     * Creates a reader that can be configured to check the last character as a check digit.\n     * It will not decoded \"extended Code 39\" sequences.\n     *\n     * @param usingCheckDigit if true, treat the last data character as a check digit, not\n     * data, and verify that the checksum passes.\n     */\n    // public Code39Reader(boolean usingCheckDigit) {\n    //   this(usingCheckDigit, false);\n    // }\n    /**\n     * Creates a reader that can be configured to check the last character as a check digit,\n     * or optionally attempt to decode \"extended Code 39\" sequences that are used to encode\n     * the full ASCII character set.\n     *\n     * @param usingCheckDigit if true, treat the last data character as a check digit, not\n     * data, and verify that the checksum passes.\n     * @param extendedMode if true, will attempt to decode extended Code 39 sequences in the\n     * text.\n     */\n    function Code39Reader(usingCheckDigit, extendedMode) {\n        if (usingCheckDigit === void 0) { usingCheckDigit = false; }\n        if (extendedMode === void 0) { extendedMode = false; }\n        var _this = _super.call(this) || this;\n        _this.usingCheckDigit = usingCheckDigit;\n        _this.extendedMode = extendedMode;\n        _this.decodeRowResult = '';\n        _this.counters = new Int32Array(9);\n        return _this;\n    }\n    Code39Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n        var e_1, _a, e_2, _b;\n        var theCounters = this.counters;\n        theCounters.fill(0);\n        this.decodeRowResult = '';\n        var start = Code39Reader.findAsteriskPattern(row, theCounters);\n        // Read off white space\n        var nextStart = row.getNextSet(start[1]);\n        var end = row.getSize();\n        var decodedChar;\n        var lastStart;\n        do {\n            Code39Reader.recordPattern(row, nextStart, theCounters);\n            var pattern = Code39Reader.toNarrowWidePattern(theCounters);\n            if (pattern < 0) {\n                throw new NotFoundException();\n            }\n            decodedChar = Code39Reader.patternToChar(pattern);\n            this.decodeRowResult += decodedChar;\n            lastStart = nextStart;\n            try {\n                for (var theCounters_1 = (e_1 = void 0, __values(theCounters)), theCounters_1_1 = theCounters_1.next(); !theCounters_1_1.done; theCounters_1_1 = theCounters_1.next()) {\n                    var counter = theCounters_1_1.value;\n                    nextStart += counter;\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (theCounters_1_1 && !theCounters_1_1.done && (_a = theCounters_1.return)) _a.call(theCounters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            // Read off white space\n            nextStart = row.getNextSet(nextStart);\n        } while (decodedChar !== '*');\n        this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 1); // remove asterisk\n        // Look for whitespace after pattern:\n        var lastPatternSize = 0;\n        try {\n            for (var theCounters_2 = __values(theCounters), theCounters_2_1 = theCounters_2.next(); !theCounters_2_1.done; theCounters_2_1 = theCounters_2.next()) {\n                var counter = theCounters_2_1.value;\n                lastPatternSize += counter;\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (theCounters_2_1 && !theCounters_2_1.done && (_b = theCounters_2.return)) _b.call(theCounters_2);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        var whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;\n        // If 50% of last pattern size, following last pattern, is not whitespace, fail\n        // (but if it's whitespace to the very end of the image, that's OK)\n        if (nextStart !== end && (whiteSpaceAfterEnd * 2) < lastPatternSize) {\n            throw new NotFoundException();\n        }\n        if (this.usingCheckDigit) {\n            var max = this.decodeRowResult.length - 1;\n            var total = 0;\n            for (var i = 0; i < max; i++) {\n                total += Code39Reader.ALPHABET_STRING.indexOf(this.decodeRowResult.charAt(i));\n            }\n            if (this.decodeRowResult.charAt(max) !== Code39Reader.ALPHABET_STRING.charAt(total % 43)) {\n                throw new ChecksumException();\n            }\n            this.decodeRowResult = this.decodeRowResult.substring(0, max);\n        }\n        if (this.decodeRowResult.length === 0) {\n            // false positive\n            throw new NotFoundException();\n        }\n        var resultString;\n        if (this.extendedMode) {\n            resultString = Code39Reader.decodeExtended(this.decodeRowResult);\n        }\n        else {\n            resultString = this.decodeRowResult;\n        }\n        var left = (start[1] + start[0]) / 2.0;\n        var right = lastStart + lastPatternSize / 2.0;\n        return new Result(resultString, null, 0, [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)], BarcodeFormat.CODE_39, new Date().getTime());\n    };\n    Code39Reader.findAsteriskPattern = function (row, counters) {\n        var width = row.getSize();\n        var rowOffset = row.getNextSet(0);\n        var counterPosition = 0;\n        var patternStart = rowOffset;\n        var isWhite = false;\n        var patternLength = counters.length;\n        for (var i = rowOffset; i < width; i++) {\n            if (row.get(i) !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition === patternLength - 1) {\n                    // Look for whitespace before start pattern, >= 50% of width of start pattern\n                    if (this.toNarrowWidePattern(counters) === Code39Reader.ASTERISK_ENCODING &&\n                        row.isRange(Math.max(0, patternStart - Math.floor((i - patternStart) / 2)), patternStart, false)) {\n                        return [patternStart, i];\n                    }\n                    patternStart += counters[0] + counters[1];\n                    counters.copyWithin(0, 2, 2 + counterPosition - 1);\n                    counters[counterPosition - 1] = 0;\n                    counters[counterPosition] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        throw new NotFoundException();\n    };\n    // For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions\n    // per image when using some of our blackbox images.\n    Code39Reader.toNarrowWidePattern = function (counters) {\n        var e_3, _a;\n        var numCounters = counters.length;\n        var maxNarrowCounter = 0;\n        var wideCounters;\n        do {\n            var minCounter = 0x7fffffff;\n            try {\n                for (var counters_1 = (e_3 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    if (counter < minCounter && counter > maxNarrowCounter) {\n                        minCounter = counter;\n                    }\n                }\n            }\n            catch (e_3_1) { e_3 = { error: e_3_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_3) throw e_3.error; }\n            }\n            maxNarrowCounter = minCounter;\n            wideCounters = 0;\n            var totalWideCountersWidth = 0;\n            var pattern = 0;\n            for (var i = 0; i < numCounters; i++) {\n                var counter = counters[i];\n                if (counter > maxNarrowCounter) {\n                    pattern |= 1 << (numCounters - 1 - i);\n                    wideCounters++;\n                    totalWideCountersWidth += counter;\n                }\n            }\n            if (wideCounters === 3) {\n                // Found 3 wide counters, but are they close enough in width?\n                // We can perform a cheap, conservative check to see if any individual\n                // counter is more than 1.5 times the average:\n                for (var i = 0; i < numCounters && wideCounters > 0; i++) {\n                    var counter = counters[i];\n                    if (counter > maxNarrowCounter) {\n                        wideCounters--;\n                        // totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average\n                        if ((counter * 2) >= totalWideCountersWidth) {\n                            return -1;\n                        }\n                    }\n                }\n                return pattern;\n            }\n        } while (wideCounters > 3);\n        return -1;\n    };\n    Code39Reader.patternToChar = function (pattern) {\n        for (var i = 0; i < Code39Reader.CHARACTER_ENCODINGS.length; i++) {\n            if (Code39Reader.CHARACTER_ENCODINGS[i] === pattern) {\n                return Code39Reader.ALPHABET_STRING.charAt(i);\n            }\n        }\n        if (pattern === Code39Reader.ASTERISK_ENCODING) {\n            return '*';\n        }\n        throw new NotFoundException();\n    };\n    Code39Reader.decodeExtended = function (encoded) {\n        var length = encoded.length;\n        var decoded = '';\n        for (var i = 0; i < length; i++) {\n            var c = encoded.charAt(i);\n            if (c === '+' || c === '$' || c === '%' || c === '/') {\n                var next = encoded.charAt(i + 1);\n                var decodedChar = '\\0';\n                switch (c) {\n                    case '+':\n                        // +A to +Z map to a to z\n                        if (next >= 'A' && next <= 'Z') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) + 32);\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                    case '$':\n                        // $A to $Z map to control codes SH to SB\n                        if (next >= 'A' && next <= 'Z') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) - 64);\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                    case '%':\n                        // %A to %E map to control codes ESC to US\n                        if (next >= 'A' && next <= 'E') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) - 38);\n                        }\n                        else if (next >= 'F' && next <= 'J') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) - 11);\n                        }\n                        else if (next >= 'K' && next <= 'O') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) + 16);\n                        }\n                        else if (next >= 'P' && next <= 'T') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) + 43);\n                        }\n                        else if (next === 'U') {\n                            decodedChar = '\\0';\n                        }\n                        else if (next === 'V') {\n                            decodedChar = '@';\n                        }\n                        else if (next === 'W') {\n                            decodedChar = '`';\n                        }\n                        else if (next === 'X' || next === 'Y' || next === 'Z') {\n                            decodedChar = '\\x7f';\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                    case '/':\n                        // /A to /O map to ! to , and /Z maps to :\n                        if (next >= 'A' && next <= 'O') {\n                            decodedChar = String.fromCharCode(next.charCodeAt(0) - 32);\n                        }\n                        else if (next === 'Z') {\n                            decodedChar = ':';\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                }\n                decoded += decodedChar;\n                // bump up i again since we read two characters\n                i++;\n            }\n            else {\n                decoded += c;\n            }\n        }\n        return decoded;\n    };\n    Code39Reader.ALPHABET_STRING = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%';\n    /**\n     * These represent the encodings of characters, as patterns of wide and narrow bars.\n     * The 9 least-significant bits of each int correspond to the pattern of wide and narrow,\n     * with 1s representing \"wide\" and 0s representing narrow.\n     */\n    Code39Reader.CHARACTER_ENCODINGS = [\n        0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064,\n        0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C,\n        0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016,\n        0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x0A8,\n        0x0A2, 0x08A, 0x02A // /-%\n    ];\n    Code39Reader.ASTERISK_ENCODING = 0x094;\n    return Code39Reader;\n}(OneDReader));\nexport default Code39Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport FormatException from '../FormatException';\nimport NotFoundException from '../NotFoundException';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\nimport StringBuilder from '../util/StringBuilder';\nimport System from '../util/System';\nimport OneDReader from './OneDReader';\n/**\n * <p>Decodes ITF barcodes.</p>\n *\n * @author Tjieco\n */\nvar ITFReader = /** @class */ (function (_super) {\n    __extends(ITFReader, _super);\n    function ITFReader() {\n        // private static W = 3; // Pixel width of a 3x wide line\n        // private static w = 2; // Pixel width of a 2x wide line\n        // private static N = 1; // Pixed width of a narrow line\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        // Stores the actual narrow line width of the image being decoded.\n        _this.narrowLineWidth = -1;\n        return _this;\n    }\n    // See ITFWriter.PATTERNS\n    /*\n  \n    /!**\n     * Patterns of Wide / Narrow lines to indicate each digit\n     *!/\n    */\n    ITFReader.prototype.decodeRow = function (rowNumber, row, hints) {\n        var e_1, _a;\n        // Find out where the Middle section (payload) starts & ends\n        var startRange = this.decodeStart(row);\n        var endRange = this.decodeEnd(row);\n        var result = new StringBuilder();\n        ITFReader.decodeMiddle(row, startRange[1], endRange[0], result);\n        var resultString = result.toString();\n        var allowedLengths = null;\n        if (hints != null) {\n            allowedLengths = hints.get(DecodeHintType.ALLOWED_LENGTHS);\n        }\n        if (allowedLengths == null) {\n            allowedLengths = ITFReader.DEFAULT_ALLOWED_LENGTHS;\n        }\n        // To avoid false positives with 2D barcodes (and other patterns), make\n        // an assumption that the decoded string must be a 'standard' length if it's short\n        var length = resultString.length;\n        var lengthOK = false;\n        var maxAllowedLength = 0;\n        try {\n            for (var allowedLengths_1 = __values(allowedLengths), allowedLengths_1_1 = allowedLengths_1.next(); !allowedLengths_1_1.done; allowedLengths_1_1 = allowedLengths_1.next()) {\n                var value = allowedLengths_1_1.value;\n                if (length === value) {\n                    lengthOK = true;\n                    break;\n                }\n                if (value > maxAllowedLength) {\n                    maxAllowedLength = value;\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (allowedLengths_1_1 && !allowedLengths_1_1.done && (_a = allowedLengths_1.return)) _a.call(allowedLengths_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        if (!lengthOK && length > maxAllowedLength) {\n            lengthOK = true;\n        }\n        if (!lengthOK) {\n            throw new FormatException();\n        }\n        var points = [new ResultPoint(startRange[1], rowNumber), new ResultPoint(endRange[0], rowNumber)];\n        var resultReturn = new Result(resultString, null, // no natural byte representation for these barcodes\n        0, points, BarcodeFormat.ITF, new Date().getTime());\n        return resultReturn;\n    };\n    /*\n    /!**\n     * @param row          row of black/white values to search\n     * @param payloadStart offset of start pattern\n     * @param resultString {@link StringBuilder} to append decoded chars to\n     * @throws NotFoundException if decoding could not complete successfully\n     *!/*/\n    ITFReader.decodeMiddle = function (row, payloadStart, payloadEnd, resultString) {\n        // Digits are interleaved in pairs - 5 black lines for one digit, and the\n        // 5\n        // interleaved white lines for the second digit.\n        // Therefore, need to scan 10 lines and then\n        // split these into two arrays\n        var counterDigitPair = new Int32Array(10); // 10\n        var counterBlack = new Int32Array(5); // 5\n        var counterWhite = new Int32Array(5); // 5\n        counterDigitPair.fill(0);\n        counterBlack.fill(0);\n        counterWhite.fill(0);\n        while (payloadStart < payloadEnd) {\n            // Get 10 runs of black/white.\n            OneDReader.recordPattern(row, payloadStart, counterDigitPair);\n            // Split them into each array\n            for (var k = 0; k < 5; k++) {\n                var twoK = 2 * k;\n                counterBlack[k] = counterDigitPair[twoK];\n                counterWhite[k] = counterDigitPair[twoK + 1];\n            }\n            var bestMatch = ITFReader.decodeDigit(counterBlack);\n            resultString.append(bestMatch.toString());\n            bestMatch = this.decodeDigit(counterWhite);\n            resultString.append(bestMatch.toString());\n            counterDigitPair.forEach(function (counterDigit) {\n                payloadStart += counterDigit;\n            });\n        }\n    };\n    /*/!**\n     * Identify where the start of the middle / payload section starts.\n     *\n     * @param row row of black/white values to search\n     * @return Array, containing index of start of 'start block' and end of\n     *         'start block'\n     *!/*/\n    ITFReader.prototype.decodeStart = function (row) {\n        var endStart = ITFReader.skipWhiteSpace(row);\n        var startPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.START_PATTERN);\n        // Determine the width of a narrow line in pixels. We can do this by\n        // getting the width of the start pattern and dividing by 4 because its\n        // made up of 4 narrow lines.\n        this.narrowLineWidth = (startPattern[1] - startPattern[0]) / 4;\n        this.validateQuietZone(row, startPattern[0]);\n        return startPattern;\n    };\n    /*/!**\n     * The start & end patterns must be pre/post fixed by a quiet zone. This\n     * zone must be at least 10 times the width of a narrow line.  Scan back until\n     * we either get to the start of the barcode or match the necessary number of\n     * quiet zone pixels.\n     *\n     * Note: Its assumed the row is reversed when using this method to find\n     * quiet zone after the end pattern.\n     *\n     * ref: http://www.barcode-1.net/i25code.html\n     *\n     * @param row bit array representing the scanned barcode.\n     * @param startPattern index into row of the start or end pattern.\n     * @throws NotFoundException if the quiet zone cannot be found\n     *!/*/\n    ITFReader.prototype.validateQuietZone = function (row, startPattern) {\n        var quietCount = this.narrowLineWidth * 10; // expect to find this many pixels of quiet zone\n        // if there are not so many pixel at all let's try as many as possible\n        quietCount = quietCount < startPattern ? quietCount : startPattern;\n        for (var i = startPattern - 1; quietCount > 0 && i >= 0; i--) {\n            if (row.get(i)) {\n                break;\n            }\n            quietCount--;\n        }\n        if (quietCount !== 0) {\n            // Unable to find the necessary number of quiet zone pixels.\n            throw new NotFoundException();\n        }\n    };\n    /*\n    /!**\n     * Skip all whitespace until we get to the first black line.\n     *\n     * @param row row of black/white values to search\n     * @return index of the first black line.\n     * @throws NotFoundException Throws exception if no black lines are found in the row\n     *!/*/\n    ITFReader.skipWhiteSpace = function (row) {\n        var width = row.getSize();\n        var endStart = row.getNextSet(0);\n        if (endStart === width) {\n            throw new NotFoundException();\n        }\n        return endStart;\n    };\n    /*/!**\n     * Identify where the end of the middle / payload section ends.\n     *\n     * @param row row of black/white values to search\n     * @return Array, containing index of start of 'end block' and end of 'end\n     *         block'\n     *!/*/\n    ITFReader.prototype.decodeEnd = function (row) {\n        // For convenience, reverse the row and then\n        // search from 'the start' for the end block\n        row.reverse();\n        try {\n            var endStart = ITFReader.skipWhiteSpace(row);\n            var endPattern = void 0;\n            try {\n                endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[0]);\n            }\n            catch (error) {\n                if (error instanceof NotFoundException) {\n                    endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[1]);\n                }\n            }\n            // The start & end patterns must be pre/post fixed by a quiet zone. This\n            // zone must be at least 10 times the width of a narrow line.\n            // ref: http://www.barcode-1.net/i25code.html\n            this.validateQuietZone(row, endPattern[0]);\n            // Now recalculate the indices of where the 'endblock' starts & stops to\n            // accommodate\n            // the reversed nature of the search\n            var temp = endPattern[0];\n            endPattern[0] = row.getSize() - endPattern[1];\n            endPattern[1] = row.getSize() - temp;\n            return endPattern;\n        }\n        finally {\n            // Put the row back the right way.\n            row.reverse();\n        }\n    };\n    /*\n    /!**\n     * @param row       row of black/white values to search\n     * @param rowOffset position to start search\n     * @param pattern   pattern of counts of number of black and white pixels that are\n     *                  being searched for as a pattern\n     * @return start/end horizontal offset of guard pattern, as an array of two\n     *         ints\n     * @throws NotFoundException if pattern is not found\n     *!/*/\n    ITFReader.findGuardPattern = function (row, rowOffset, pattern) {\n        var patternLength = pattern.length;\n        var counters = new Int32Array(patternLength);\n        var width = row.getSize();\n        var isWhite = false;\n        var counterPosition = 0;\n        var patternStart = rowOffset;\n        counters.fill(0);\n        for (var x = rowOffset; x < width; x++) {\n            if (row.get(x) !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition === patternLength - 1) {\n                    if (OneDReader.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE) < ITFReader.MAX_AVG_VARIANCE) {\n                        return [patternStart, x];\n                    }\n                    patternStart += counters[0] + counters[1];\n                    System.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n                    counters[counterPosition - 1] = 0;\n                    counters[counterPosition] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        throw new NotFoundException();\n    };\n    /*/!**\n     * Attempts to decode a sequence of ITF black/white lines into single\n     * digit.\n     *\n     * @param counters the counts of runs of observed black/white/black/... values\n     * @return The decoded digit\n     * @throws NotFoundException if digit cannot be decoded\n     *!/*/\n    ITFReader.decodeDigit = function (counters) {\n        var bestVariance = ITFReader.MAX_AVG_VARIANCE; // worst variance we'll accept\n        var bestMatch = -1;\n        var max = ITFReader.PATTERNS.length;\n        for (var i = 0; i < max; i++) {\n            var pattern = ITFReader.PATTERNS[i];\n            var variance = OneDReader.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE);\n            if (variance < bestVariance) {\n                bestVariance = variance;\n                bestMatch = i;\n            }\n            else if (variance === bestVariance) {\n                // if we find a second 'best match' with the same variance, we can not reliably report to have a suitable match\n                bestMatch = -1;\n            }\n        }\n        if (bestMatch >= 0) {\n            return bestMatch % 10;\n        }\n        else {\n            throw new NotFoundException();\n        }\n    };\n    ITFReader.PATTERNS = [\n        Int32Array.from([1, 1, 2, 2, 1]),\n        Int32Array.from([2, 1, 1, 1, 2]),\n        Int32Array.from([1, 2, 1, 1, 2]),\n        Int32Array.from([2, 2, 1, 1, 1]),\n        Int32Array.from([1, 1, 2, 1, 2]),\n        Int32Array.from([2, 1, 2, 1, 1]),\n        Int32Array.from([1, 2, 2, 1, 1]),\n        Int32Array.from([1, 1, 1, 2, 2]),\n        Int32Array.from([2, 1, 1, 2, 1]),\n        Int32Array.from([1, 2, 1, 2, 1]),\n        Int32Array.from([1, 1, 3, 3, 1]),\n        Int32Array.from([3, 1, 1, 1, 3]),\n        Int32Array.from([1, 3, 1, 1, 3]),\n        Int32Array.from([3, 3, 1, 1, 1]),\n        Int32Array.from([1, 1, 3, 1, 3]),\n        Int32Array.from([3, 1, 3, 1, 1]),\n        Int32Array.from([1, 3, 3, 1, 1]),\n        Int32Array.from([1, 1, 1, 3, 3]),\n        Int32Array.from([3, 1, 1, 3, 1]),\n        Int32Array.from([1, 3, 1, 3, 1]) // 9\n    ];\n    ITFReader.MAX_AVG_VARIANCE = 0.38;\n    ITFReader.MAX_INDIVIDUAL_VARIANCE = 0.5;\n    /* /!** Valid ITF lengths. Anything longer than the largest value is also allowed. *!/*/\n    ITFReader.DEFAULT_ALLOWED_LENGTHS = [6, 8, 10, 12, 14];\n    /*/!**\n     * Start/end guard pattern.\n     *\n     * Note: The end pattern is reversed because the row is reversed before\n     * searching for the END_PATTERN\n     *!/*/\n    ITFReader.START_PATTERN = Int32Array.from([1, 1, 1, 1]);\n    ITFReader.END_PATTERN_REVERSED = [\n        Int32Array.from([1, 1, 2]),\n        Int32Array.from([1, 1, 3]) // 3x\n    ];\n    return ITFReader;\n}(OneDReader));\nexport default ITFReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport OneDReader from './OneDReader';\nimport NotFoundException from '../NotFoundException';\nimport FormatException from '../FormatException';\n/**\n * <p>Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.</p>\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar AbstractUPCEANReader = /** @class */ (function (_super) {\n    __extends(AbstractUPCEANReader, _super);\n    function AbstractUPCEANReader() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.decodeRowStringBuffer = '';\n        return _this;\n    }\n    // private final UPCEANExtensionSupport extensionReader;\n    // private final EANManufacturerOrgSupport eanManSupport;\n    /*\n    protected UPCEANReader() {\n        decodeRowStringBuffer = new StringBuilder(20);\n        extensionReader = new UPCEANExtensionSupport();\n        eanManSupport = new EANManufacturerOrgSupport();\n    }\n    */\n    AbstractUPCEANReader.findStartGuardPattern = function (row) {\n        var foundStart = false;\n        var startRange;\n        var nextStart = 0;\n        var counters = Int32Array.from([0, 0, 0]);\n        while (!foundStart) {\n            counters = Int32Array.from([0, 0, 0]);\n            startRange = AbstractUPCEANReader.findGuardPattern(row, nextStart, false, this.START_END_PATTERN, counters);\n            var start = startRange[0];\n            nextStart = startRange[1];\n            var quietStart = start - (nextStart - start);\n            if (quietStart >= 0) {\n                foundStart = row.isRange(quietStart, start, false);\n            }\n        }\n        return startRange;\n    };\n    AbstractUPCEANReader.checkChecksum = function (s) {\n        return AbstractUPCEANReader.checkStandardUPCEANChecksum(s);\n    };\n    AbstractUPCEANReader.checkStandardUPCEANChecksum = function (s) {\n        var length = s.length;\n        if (length === 0)\n            return false;\n        var check = parseInt(s.charAt(length - 1), 10);\n        return AbstractUPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n    };\n    AbstractUPCEANReader.getStandardUPCEANChecksum = function (s) {\n        var length = s.length;\n        var sum = 0;\n        for (var i = length - 1; i >= 0; i -= 2) {\n            var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n            if (digit < 0 || digit > 9) {\n                throw new FormatException();\n            }\n            sum += digit;\n        }\n        sum *= 3;\n        for (var i = length - 2; i >= 0; i -= 2) {\n            var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n            if (digit < 0 || digit > 9) {\n                throw new FormatException();\n            }\n            sum += digit;\n        }\n        return (1000 - sum) % 10;\n    };\n    AbstractUPCEANReader.decodeEnd = function (row, endStart) {\n        return AbstractUPCEANReader.findGuardPattern(row, endStart, false, AbstractUPCEANReader.START_END_PATTERN, new Int32Array(AbstractUPCEANReader.START_END_PATTERN.length).fill(0));\n    };\n    /**\n     * @throws NotFoundException\n     */\n    AbstractUPCEANReader.findGuardPatternWithoutCounters = function (row, rowOffset, whiteFirst, pattern) {\n        return this.findGuardPattern(row, rowOffset, whiteFirst, pattern, new Int32Array(pattern.length));\n    };\n    /**\n     * @param row row of black/white values to search\n     * @param rowOffset position to start search\n     * @param whiteFirst if true, indicates that the pattern specifies white/black/white/...\n     * pixel counts, otherwise, it is interpreted as black/white/black/...\n     * @param pattern pattern of counts of number of black and white pixels that are being\n     * searched for as a pattern\n     * @param counters array of counters, as long as pattern, to re-use\n     * @return start/end horizontal offset of guard pattern, as an array of two ints\n     * @throws NotFoundException if pattern is not found\n     */\n    AbstractUPCEANReader.findGuardPattern = function (row, rowOffset, whiteFirst, pattern, counters) {\n        var width = row.getSize();\n        rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset);\n        var counterPosition = 0;\n        var patternStart = rowOffset;\n        var patternLength = pattern.length;\n        var isWhite = whiteFirst;\n        for (var x = rowOffset; x < width; x++) {\n            if (row.get(x) !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition === patternLength - 1) {\n                    if (OneDReader.patternMatchVariance(counters, pattern, AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE) < AbstractUPCEANReader.MAX_AVG_VARIANCE) {\n                        return Int32Array.from([patternStart, x]);\n                    }\n                    patternStart += counters[0] + counters[1];\n                    var slice = counters.slice(2, counters.length - 1);\n                    for (var i = 0; i < counterPosition - 1; i++) {\n                        counters[i] = slice[i];\n                    }\n                    counters[counterPosition - 1] = 0;\n                    counters[counterPosition] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        throw new NotFoundException();\n    };\n    AbstractUPCEANReader.decodeDigit = function (row, counters, rowOffset, patterns) {\n        this.recordPattern(row, rowOffset, counters);\n        var bestVariance = this.MAX_AVG_VARIANCE;\n        var bestMatch = -1;\n        var max = patterns.length;\n        for (var i = 0; i < max; i++) {\n            var pattern = patterns[i];\n            var variance = OneDReader.patternMatchVariance(counters, pattern, AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE);\n            if (variance < bestVariance) {\n                bestVariance = variance;\n                bestMatch = i;\n            }\n        }\n        if (bestMatch >= 0) {\n            return bestMatch;\n        }\n        else {\n            throw new NotFoundException();\n        }\n    };\n    // These two values are critical for determining how permissive the decoding will be.\n    // We've arrived at these values through a lot of trial and error. Setting them any higher\n    // lets false positives creep in quickly.\n    AbstractUPCEANReader.MAX_AVG_VARIANCE = 0.48;\n    AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n    /**\n     * Start/end guard pattern.\n     */\n    AbstractUPCEANReader.START_END_PATTERN = Int32Array.from([1, 1, 1]);\n    /**\n     * Pattern marking the middle of a UPC/EAN pattern, separating the two halves.\n     */\n    AbstractUPCEANReader.MIDDLE_PATTERN = Int32Array.from([1, 1, 1, 1, 1]);\n    /**\n     * end guard pattern.\n     */\n    AbstractUPCEANReader.END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1]);\n    /**\n     * \"Odd\", or \"L\" patterns used to encode UPC/EAN digits.\n     */\n    AbstractUPCEANReader.L_PATTERNS = [\n        Int32Array.from([3, 2, 1, 1]),\n        Int32Array.from([2, 2, 2, 1]),\n        Int32Array.from([2, 1, 2, 2]),\n        Int32Array.from([1, 4, 1, 1]),\n        Int32Array.from([1, 1, 3, 2]),\n        Int32Array.from([1, 2, 3, 1]),\n        Int32Array.from([1, 1, 1, 4]),\n        Int32Array.from([1, 3, 1, 2]),\n        Int32Array.from([1, 2, 1, 3]),\n        Int32Array.from([3, 1, 1, 2]),\n    ];\n    return AbstractUPCEANReader;\n}(OneDReader));\nexport default AbstractUPCEANReader;\n","/*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\n// import UPCEANReader from './UPCEANReader';\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\nimport ResultMetadataType from '../ResultMetadataType';\nimport NotFoundException from '../NotFoundException';\n/**\n * @see UPCEANExtension2Support\n */\nvar UPCEANExtension5Support = /** @class */ (function () {\n    function UPCEANExtension5Support() {\n        this.CHECK_DIGIT_ENCODINGS = [0x18, 0x14, 0x12, 0x11, 0x0C, 0x06, 0x03, 0x0A, 0x09, 0x05];\n        this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n        this.decodeRowStringBuffer = '';\n    }\n    UPCEANExtension5Support.prototype.decodeRow = function (rowNumber, row, extensionStartRange) {\n        var result = this.decodeRowStringBuffer;\n        var end = this.decodeMiddle(row, extensionStartRange, result);\n        var resultString = result.toString();\n        var extensionData = UPCEANExtension5Support.parseExtensionString(resultString);\n        var resultPoints = [\n            new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n            new ResultPoint(end, rowNumber)\n        ];\n        var extensionResult = new Result(resultString, null, 0, resultPoints, BarcodeFormat.UPC_EAN_EXTENSION, new Date().getTime());\n        if (extensionData != null) {\n            extensionResult.putAllMetadata(extensionData);\n        }\n        return extensionResult;\n    };\n    UPCEANExtension5Support.prototype.decodeMiddle = function (row, startRange, resultString) {\n        var e_1, _a;\n        var counters = this.decodeMiddleCounters;\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var end = row.getSize();\n        var rowOffset = startRange[1];\n        var lgPatternFound = 0;\n        for (var x = 0; x < 5 && rowOffset < end; x++) {\n            var bestMatch = AbstractUPCEANReader.decodeDigit(row, counters, rowOffset, AbstractUPCEANReader.L_AND_G_PATTERNS);\n            resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n            try {\n                for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            if (bestMatch >= 10) {\n                lgPatternFound |= 1 << (4 - x);\n            }\n            if (x !== 4) {\n                // Read off separator if not last\n                rowOffset = row.getNextSet(rowOffset);\n                rowOffset = row.getNextUnset(rowOffset);\n            }\n        }\n        if (resultString.length !== 5) {\n            throw new NotFoundException();\n        }\n        var checkDigit = this.determineCheckDigit(lgPatternFound);\n        if (UPCEANExtension5Support.extensionChecksum(resultString.toString()) !== checkDigit) {\n            throw new NotFoundException();\n        }\n        return rowOffset;\n    };\n    UPCEANExtension5Support.extensionChecksum = function (s) {\n        var length = s.length;\n        var sum = 0;\n        for (var i = length - 2; i >= 0; i -= 2) {\n            sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n        }\n        sum *= 3;\n        for (var i = length - 1; i >= 0; i -= 2) {\n            sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n        }\n        sum *= 3;\n        return sum % 10;\n    };\n    UPCEANExtension5Support.prototype.determineCheckDigit = function (lgPatternFound) {\n        for (var d = 0; d < 10; d++) {\n            if (lgPatternFound === this.CHECK_DIGIT_ENCODINGS[d]) {\n                return d;\n            }\n        }\n        throw new NotFoundException();\n    };\n    UPCEANExtension5Support.parseExtensionString = function (raw) {\n        if (raw.length !== 5) {\n            return null;\n        }\n        var value = UPCEANExtension5Support.parseExtension5String(raw);\n        if (value == null) {\n            return null;\n        }\n        return new Map([[ResultMetadataType.SUGGESTED_PRICE, value]]);\n    };\n    UPCEANExtension5Support.parseExtension5String = function (raw) {\n        var currency;\n        switch (raw.charAt(0)) {\n            case '0':\n                currency = '£';\n                break;\n            case '5':\n                currency = '$';\n                break;\n            case '9':\n                // Reference: http://www.jollytech.com\n                switch (raw) {\n                    case '90000':\n                        // No suggested retail price\n                        return null;\n                    case '99991':\n                        // Complementary\n                        return '0.00';\n                    case '99990':\n                        return 'Used';\n                }\n                // Otherwise... unknown currency?\n                currency = '';\n                break;\n            default:\n                currency = '';\n                break;\n        }\n        var rawAmount = parseInt(raw.substring(1));\n        var unitsString = (rawAmount / 100).toString();\n        var hundredths = rawAmount % 100;\n        var hundredthsString = hundredths < 10 ? '0' + hundredths : hundredths.toString(); // fixme\n        return currency + unitsString + '.' + hundredthsString;\n    };\n    return UPCEANExtension5Support;\n}());\nexport default UPCEANExtension5Support;\n","/*\n * Copyright (C) 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport Result from '../Result';\nimport ResultPoint from '../ResultPoint';\nimport ResultMetadataType from '../ResultMetadataType';\nimport NotFoundException from '../NotFoundException';\n/**\n * @see UPCEANExtension5Support\n */\nvar UPCEANExtension2Support = /** @class */ (function () {\n    function UPCEANExtension2Support() {\n        this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n        this.decodeRowStringBuffer = '';\n    }\n    UPCEANExtension2Support.prototype.decodeRow = function (rowNumber, row, extensionStartRange) {\n        var result = this.decodeRowStringBuffer;\n        var end = this.decodeMiddle(row, extensionStartRange, result);\n        var resultString = result.toString();\n        var extensionData = UPCEANExtension2Support.parseExtensionString(resultString);\n        var resultPoints = [\n            new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n            new ResultPoint(end, rowNumber)\n        ];\n        var extensionResult = new Result(resultString, null, 0, resultPoints, BarcodeFormat.UPC_EAN_EXTENSION, new Date().getTime());\n        if (extensionData != null) {\n            extensionResult.putAllMetadata(extensionData);\n        }\n        return extensionResult;\n    };\n    UPCEANExtension2Support.prototype.decodeMiddle = function (row, startRange, resultString) {\n        var e_1, _a;\n        var counters = this.decodeMiddleCounters;\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var end = row.getSize();\n        var rowOffset = startRange[1];\n        var checkParity = 0;\n        for (var x = 0; x < 2 && rowOffset < end; x++) {\n            var bestMatch = AbstractUPCEANReader.decodeDigit(row, counters, rowOffset, AbstractUPCEANReader.L_AND_G_PATTERNS);\n            resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n            try {\n                for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            if (bestMatch >= 10) {\n                checkParity |= 1 << (1 - x);\n            }\n            if (x !== 1) {\n                // Read off separator if not last\n                rowOffset = row.getNextSet(rowOffset);\n                rowOffset = row.getNextUnset(rowOffset);\n            }\n        }\n        if (resultString.length !== 2) {\n            throw new NotFoundException();\n        }\n        if (parseInt(resultString.toString()) % 4 !== checkParity) {\n            throw new NotFoundException();\n        }\n        return rowOffset;\n    };\n    UPCEANExtension2Support.parseExtensionString = function (raw) {\n        if (raw.length !== 2) {\n            return null;\n        }\n        return new Map([[ResultMetadataType.ISSUE_NUMBER, parseInt(raw)]]);\n    };\n    return UPCEANExtension2Support;\n}());\nexport default UPCEANExtension2Support;\n","/*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport UPCEANExtension5Support from './UPCEANExtension5Support';\nimport UPCEANExtension2Support from './UPCEANExtension2Support';\nvar UPCEANExtensionSupport = /** @class */ (function () {\n    function UPCEANExtensionSupport() {\n    }\n    UPCEANExtensionSupport.decodeRow = function (rowNumber, row, rowOffset) {\n        var extensionStartRange = AbstractUPCEANReader.findGuardPattern(row, rowOffset, false, this.EXTENSION_START_PATTERN, new Int32Array(this.EXTENSION_START_PATTERN.length).fill(0));\n        try {\n            // return null;\n            var fiveSupport = new UPCEANExtension5Support();\n            return fiveSupport.decodeRow(rowNumber, row, extensionStartRange);\n        }\n        catch (err) {\n            // return null;\n            var twoSupport = new UPCEANExtension2Support();\n            return twoSupport.decodeRow(rowNumber, row, extensionStartRange);\n        }\n    };\n    UPCEANExtensionSupport.EXTENSION_START_PATTERN = Int32Array.from([1, 1, 2]);\n    return UPCEANExtensionSupport;\n}());\nexport default UPCEANExtensionSupport;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport Result from '../Result';\nimport ResultMetadataType from '../ResultMetadataType';\nimport ResultPoint from '../ResultPoint';\nimport UPCEANExtensionSupport from './UPCEANExtensionSupport';\nimport AbstractUPCEANReader from './AbstractUPCEANReader';\nimport NotFoundException from '../NotFoundException';\nimport FormatException from '../FormatException';\nimport ChecksumException from '../ChecksumException';\n/**\n * <p>Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.</p>\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar UPCEANReader = /** @class */ (function (_super) {\n    __extends(UPCEANReader, _super);\n    function UPCEANReader() {\n        var _this = _super.call(this) || this;\n        _this.decodeRowStringBuffer = '';\n        UPCEANReader.L_AND_G_PATTERNS = UPCEANReader.L_PATTERNS.map(function (arr) { return Int32Array.from(arr); });\n        for (var i = 10; i < 20; i++) {\n            var widths = UPCEANReader.L_PATTERNS[i - 10];\n            var reversedWidths = new Int32Array(widths.length);\n            for (var j = 0; j < widths.length; j++) {\n                reversedWidths[j] = widths[widths.length - j - 1];\n            }\n            UPCEANReader.L_AND_G_PATTERNS[i] = reversedWidths;\n        }\n        return _this;\n    }\n    UPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n        var startGuardRange = UPCEANReader.findStartGuardPattern(row);\n        var resultPointCallback = hints == null ? null : hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n        if (resultPointCallback != null) {\n            var resultPoint_1 = new ResultPoint((startGuardRange[0] + startGuardRange[1]) / 2.0, rowNumber);\n            resultPointCallback.foundPossibleResultPoint(resultPoint_1);\n        }\n        var budello = this.decodeMiddle(row, startGuardRange, this.decodeRowStringBuffer);\n        var endStart = budello.rowOffset;\n        var result = budello.resultString;\n        if (resultPointCallback != null) {\n            var resultPoint_2 = new ResultPoint(endStart, rowNumber);\n            resultPointCallback.foundPossibleResultPoint(resultPoint_2);\n        }\n        var endRange = UPCEANReader.decodeEnd(row, endStart);\n        if (resultPointCallback != null) {\n            var resultPoint_3 = new ResultPoint((endRange[0] + endRange[1]) / 2.0, rowNumber);\n            resultPointCallback.foundPossibleResultPoint(resultPoint_3);\n        }\n        // Make sure there is a quiet zone at least as big as the end pattern after the barcode. The\n        // spec might want more whitespace, but in practice this is the maximum we can count on.\n        var end = endRange[1];\n        var quietEnd = end + (end - endRange[0]);\n        if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) {\n            throw new NotFoundException();\n        }\n        var resultString = result.toString();\n        // UPC/EAN should never be less than 8 chars anyway\n        if (resultString.length < 8) {\n            throw new FormatException();\n        }\n        if (!UPCEANReader.checkChecksum(resultString)) {\n            throw new ChecksumException();\n        }\n        var left = (startGuardRange[1] + startGuardRange[0]) / 2.0;\n        var right = (endRange[1] + endRange[0]) / 2.0;\n        var format = this.getBarcodeFormat();\n        var resultPoint = [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)];\n        var decodeResult = new Result(resultString, null, 0, resultPoint, format, new Date().getTime());\n        var extensionLength = 0;\n        try {\n            var extensionResult = UPCEANExtensionSupport.decodeRow(rowNumber, row, endRange[1]);\n            decodeResult.putMetadata(ResultMetadataType.UPC_EAN_EXTENSION, extensionResult.getText());\n            decodeResult.putAllMetadata(extensionResult.getResultMetadata());\n            decodeResult.addResultPoints(extensionResult.getResultPoints());\n            extensionLength = extensionResult.getText().length;\n        }\n        catch (err) {\n        }\n        var allowedExtensions = hints == null ? null : hints.get(DecodeHintType.ALLOWED_EAN_EXTENSIONS);\n        if (allowedExtensions != null) {\n            var valid = false;\n            for (var length_1 in allowedExtensions) {\n                if (extensionLength.toString() === length_1) { // check me\n                    valid = true;\n                    break;\n                }\n            }\n            if (!valid) {\n                throw new NotFoundException();\n            }\n        }\n        if (format === BarcodeFormat.EAN_13 || format === BarcodeFormat.UPC_A) {\n            // let countryID = eanManSupport.lookupContryIdentifier(resultString); todo\n            // if (countryID != null) {\n            //     decodeResult.putMetadata(ResultMetadataType.POSSIBLE_COUNTRY, countryID);\n            // }\n        }\n        return decodeResult;\n    };\n    UPCEANReader.checkChecksum = function (s) {\n        return UPCEANReader.checkStandardUPCEANChecksum(s);\n    };\n    UPCEANReader.checkStandardUPCEANChecksum = function (s) {\n        var length = s.length;\n        if (length === 0)\n            return false;\n        var check = parseInt(s.charAt(length - 1), 10);\n        return UPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n    };\n    UPCEANReader.getStandardUPCEANChecksum = function (s) {\n        var length = s.length;\n        var sum = 0;\n        for (var i = length - 1; i >= 0; i -= 2) {\n            var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n            if (digit < 0 || digit > 9) {\n                throw new FormatException();\n            }\n            sum += digit;\n        }\n        sum *= 3;\n        for (var i = length - 2; i >= 0; i -= 2) {\n            var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n            if (digit < 0 || digit > 9) {\n                throw new FormatException();\n            }\n            sum += digit;\n        }\n        return (1000 - sum) % 10;\n    };\n    UPCEANReader.decodeEnd = function (row, endStart) {\n        return UPCEANReader.findGuardPattern(row, endStart, false, UPCEANReader.START_END_PATTERN, new Int32Array(UPCEANReader.START_END_PATTERN.length).fill(0));\n    };\n    return UPCEANReader;\n}(AbstractUPCEANReader));\nexport default UPCEANReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport UPCEANReader from './UPCEANReader';\nimport NotFoundException from '../NotFoundException';\n/**\n * <p>Implements decoding of the EAN-13 format.</p>\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\nvar EAN13Reader = /** @class */ (function (_super) {\n    __extends(EAN13Reader, _super);\n    function EAN13Reader() {\n        var _this = _super.call(this) || this;\n        _this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n        return _this;\n    }\n    EAN13Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n        var e_1, _a, e_2, _b;\n        var counters = this.decodeMiddleCounters;\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var end = row.getSize();\n        var rowOffset = startRange[1];\n        var lgPatternFound = 0;\n        for (var x = 0; x < 6 && rowOffset < end; x++) {\n            var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_AND_G_PATTERNS);\n            resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n            try {\n                for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            if (bestMatch >= 10) {\n                lgPatternFound |= 1 << (5 - x);\n            }\n        }\n        resultString = EAN13Reader.determineFirstDigit(resultString, lgPatternFound);\n        var middleRange = UPCEANReader.findGuardPattern(row, rowOffset, true, UPCEANReader.MIDDLE_PATTERN, new Int32Array(UPCEANReader.MIDDLE_PATTERN.length).fill(0));\n        rowOffset = middleRange[1];\n        for (var x = 0; x < 6 && rowOffset < end; x++) {\n            var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n            resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n            try {\n                for (var counters_2 = (e_2 = void 0, __values(counters)), counters_2_1 = counters_2.next(); !counters_2_1.done; counters_2_1 = counters_2.next()) {\n                    var counter = counters_2_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_2_1) { e_2 = { error: e_2_1 }; }\n            finally {\n                try {\n                    if (counters_2_1 && !counters_2_1.done && (_b = counters_2.return)) _b.call(counters_2);\n                }\n                finally { if (e_2) throw e_2.error; }\n            }\n        }\n        return { rowOffset: rowOffset, resultString: resultString };\n    };\n    EAN13Reader.prototype.getBarcodeFormat = function () {\n        return BarcodeFormat.EAN_13;\n    };\n    EAN13Reader.determineFirstDigit = function (resultString, lgPatternFound) {\n        for (var d = 0; d < 10; d++) {\n            if (lgPatternFound === this.FIRST_DIGIT_ENCODINGS[d]) {\n                resultString = String.fromCharCode(('0'.charCodeAt(0) + d)) + resultString;\n                return resultString;\n            }\n        }\n        throw new NotFoundException();\n    };\n    EAN13Reader.FIRST_DIGIT_ENCODINGS = [0x00, 0x0B, 0x0D, 0xE, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A];\n    return EAN13Reader;\n}(UPCEANReader));\nexport default EAN13Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport UPCEANReader from './UPCEANReader';\n/**\n * <p>Implements decoding of the EAN-8 format.</p>\n *\n * @author Sean Owen\n */\nvar EAN8Reader = /** @class */ (function (_super) {\n    __extends(EAN8Reader, _super);\n    function EAN8Reader() {\n        var _this = _super.call(this) || this;\n        _this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n        return _this;\n    }\n    EAN8Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n        var e_1, _a, e_2, _b;\n        var counters = this.decodeMiddleCounters;\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var end = row.getSize();\n        var rowOffset = startRange[1];\n        for (var x = 0; x < 4 && rowOffset < end; x++) {\n            var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n            resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n            try {\n                for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        var middleRange = UPCEANReader.findGuardPattern(row, rowOffset, true, UPCEANReader.MIDDLE_PATTERN, new Int32Array(UPCEANReader.MIDDLE_PATTERN.length).fill(0));\n        rowOffset = middleRange[1];\n        for (var x = 0; x < 4 && rowOffset < end; x++) {\n            var bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n            resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n            try {\n                for (var counters_2 = (e_2 = void 0, __values(counters)), counters_2_1 = counters_2.next(); !counters_2_1.done; counters_2_1 = counters_2.next()) {\n                    var counter = counters_2_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_2_1) { e_2 = { error: e_2_1 }; }\n            finally {\n                try {\n                    if (counters_2_1 && !counters_2_1.done && (_b = counters_2.return)) _b.call(counters_2);\n                }\n                finally { if (e_2) throw e_2.error; }\n            }\n        }\n        return { rowOffset: rowOffset, resultString: resultString };\n    };\n    EAN8Reader.prototype.getBarcodeFormat = function () {\n        return BarcodeFormat.EAN_8;\n    };\n    return EAN8Reader;\n}(UPCEANReader));\nexport default EAN8Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport Result from '../Result';\nimport NotFoundException from '../NotFoundException';\nimport EAN13Reader from './EAN13Reader';\nimport UPCEANReader from './UPCEANReader';\n/**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author sam2332 (Sam Rudloff)\n *\n * @source https://github.com/zxing/zxing/blob/3c96923276dd5785d58eb970b6ba3f80d36a9505/core/src/main/java/com/google/zxing/oned/UPCAReader.java\n *\n * @experimental\n */\nvar UPCAReader = /** @class */ (function (_super) {\n    __extends(UPCAReader, _super);\n    function UPCAReader() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.ean13Reader = new EAN13Reader();\n        return _this;\n    }\n    // @Override\n    UPCAReader.prototype.getBarcodeFormat = function () {\n        return BarcodeFormat.UPC_A;\n    };\n    // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n    // @Override\n    UPCAReader.prototype.decode = function (image, hints) {\n        return this.maybeReturnResult(this.ean13Reader.decode(image));\n    };\n    // @Override\n    UPCAReader.prototype.decodeRow = function (rowNumber, row, hints) {\n        return this.maybeReturnResult(this.ean13Reader.decodeRow(rowNumber, row, hints));\n    };\n    // @Override\n    UPCAReader.prototype.decodeMiddle = function (row, startRange, resultString) {\n        return this.ean13Reader.decodeMiddle(row, startRange, resultString);\n    };\n    UPCAReader.prototype.maybeReturnResult = function (result) {\n        var text = result.getText();\n        if (text.charAt(0) === '0') {\n            var upcaResult = new Result(text.substring(1), null, null, result.getResultPoints(), BarcodeFormat.UPC_A);\n            if (result.getResultMetadata() != null) {\n                upcaResult.putAllMetadata(result.getResultMetadata());\n            }\n            return upcaResult;\n        }\n        else {\n            throw new NotFoundException();\n        }\n    };\n    UPCAReader.prototype.reset = function () {\n        this.ean13Reader.reset();\n    };\n    return UPCAReader;\n}(UPCEANReader));\nexport default UPCAReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport UPCEANReader from './UPCEANReader';\nimport StringBuilder from '../util/StringBuilder';\nimport NotFoundException from '../NotFoundException';\nimport BarcodeFormat from '../BarcodeFormat';\n// package com.google.zxing.oned;\n// import com.google.zxing.BarcodeFormat;\n// import com.google.zxing.FormatException;\n// import com.google.zxing.NotFoundException;\n// import com.google.zxing.common.BitArray;\n/**\n * <p>Implements decoding of the UPC-E format.</p>\n * <p><a href=\"http://www.barcodeisland.com/upce.phtml\">This</a> is a great reference for\n * UPC-E information.</p>\n *\n * @author Sean Owen\n *\n * @source https://github.com/zxing/zxing/blob/3c96923276dd5785d58eb970b6ba3f80d36a9505/core/src/main/java/com/google/zxing/oned/UPCEReader.java\n *\n * @experimental\n */\nvar UPCEReader = /** @class */ (function (_super) {\n    __extends(UPCEReader, _super);\n    function UPCEReader() {\n        var _this = _super.call(this) || this;\n        _this.decodeMiddleCounters = new Int32Array(4);\n        return _this;\n    }\n    /**\n     * @throws NotFoundException\n     */\n    // @Override\n    UPCEReader.prototype.decodeMiddle = function (row, startRange, result) {\n        var e_1, _a;\n        var counters = this.decodeMiddleCounters.map(function (x) { return x; });\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var end = row.getSize();\n        var rowOffset = startRange[1];\n        var lgPatternFound = 0;\n        for (var x = 0; x < 6 && rowOffset < end; x++) {\n            var bestMatch = UPCEReader.decodeDigit(row, counters, rowOffset, UPCEReader.L_AND_G_PATTERNS);\n            result += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n            try {\n                for (var counters_1 = (e_1 = void 0, __values(counters)), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    rowOffset += counter;\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            if (bestMatch >= 10) {\n                lgPatternFound |= 1 << (5 - x);\n            }\n        }\n        UPCEReader.determineNumSysAndCheckDigit(new StringBuilder(result), lgPatternFound);\n        return rowOffset;\n    };\n    /**\n     * @throws NotFoundException\n     */\n    // @Override\n    UPCEReader.prototype.decodeEnd = function (row, endStart) {\n        return UPCEReader.findGuardPatternWithoutCounters(row, endStart, true, UPCEReader.MIDDLE_END_PATTERN);\n    };\n    /**\n     * @throws FormatException\n     */\n    // @Override\n    UPCEReader.prototype.checkChecksum = function (s) {\n        return UPCEANReader.checkChecksum(UPCEReader.convertUPCEtoUPCA(s));\n    };\n    /**\n     * @throws NotFoundException\n     */\n    UPCEReader.determineNumSysAndCheckDigit = function (resultString, lgPatternFound) {\n        for (var numSys = 0; numSys <= 1; numSys++) {\n            for (var d = 0; d < 10; d++) {\n                if (lgPatternFound === this.NUMSYS_AND_CHECK_DIGIT_PATTERNS[numSys][d]) {\n                    resultString.insert(0, /*(char)*/ ('0' + numSys));\n                    resultString.append(/*(char)*/ ('0' + d));\n                    return;\n                }\n            }\n        }\n        throw NotFoundException.getNotFoundInstance();\n    };\n    // @Override\n    UPCEReader.prototype.getBarcodeFormat = function () {\n        return BarcodeFormat.UPC_E;\n    };\n    /**\n     * Expands a UPC-E value back into its full, equivalent UPC-A code value.\n     *\n     * @param upce UPC-E code as string of digits\n     * @return equivalent UPC-A code as string of digits\n     */\n    UPCEReader.convertUPCEtoUPCA = function (upce) {\n        // the following line is equivalent to upce.getChars(1, 7, upceChars, 0);\n        var upceChars = upce.slice(1, 7).split('').map(function (x) { return x.charCodeAt(0); });\n        var result = new StringBuilder( /*12*/);\n        result.append(upce.charAt(0));\n        var lastChar = upceChars[5];\n        switch (lastChar) {\n            case 0:\n            case 1:\n            case 2:\n                result.appendChars(upceChars, 0, 2);\n                result.append(lastChar);\n                result.append('0000');\n                result.appendChars(upceChars, 2, 3);\n                break;\n            case 3:\n                result.appendChars(upceChars, 0, 3);\n                result.append('00000');\n                result.appendChars(upceChars, 3, 2);\n                break;\n            case 4:\n                result.appendChars(upceChars, 0, 4);\n                result.append('00000');\n                result.append(upceChars[4]);\n                break;\n            default:\n                result.appendChars(upceChars, 0, 5);\n                result.append('0000');\n                result.append(lastChar);\n                break;\n        }\n        // Only append check digit in conversion if supplied\n        if (upce.length >= 8) {\n            result.append(upce.charAt(7));\n        }\n        return result.toString();\n    };\n    /**\n     * The pattern that marks the middle, and end, of a UPC-E pattern.\n     * There is no \"second half\" to a UPC-E barcode.\n     */\n    UPCEReader.MIDDLE_END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1]);\n    // For an UPC-E barcode, the final digit is represented by the parities used\n    // to encode the middle six digits, according to the table below.\n    //\n    //                Parity of next 6 digits\n    //    Digit   0     1     2     3     4     5\n    //       0    Even   Even  Even Odd  Odd   Odd\n    //       1    Even   Even  Odd  Even Odd   Odd\n    //       2    Even   Even  Odd  Odd  Even  Odd\n    //       3    Even   Even  Odd  Odd  Odd   Even\n    //       4    Even   Odd   Even Even Odd   Odd\n    //       5    Even   Odd   Odd  Even Even  Odd\n    //       6    Even   Odd   Odd  Odd  Even  Even\n    //       7    Even   Odd   Even Odd  Even  Odd\n    //       8    Even   Odd   Even Odd  Odd   Even\n    //       9    Even   Odd   Odd  Even Odd   Even\n    //\n    // The encoding is represented by the following array, which is a bit pattern\n    // using Odd = 0 and Even = 1. For example, 5 is represented by:\n    //\n    //              Odd Even Even Odd Odd Even\n    // in binary:\n    //                0    1    1   0   0    1   == 0x19\n    //\n    /**\n     * See {@link #L_AND_G_PATTERNS}; these values similarly represent patterns of\n     * even-odd parity encodings of digits that imply both the number system (0 or 1)\n     * used, and the check digit.\n     */\n    UPCEReader.NUMSYS_AND_CHECK_DIGIT_PATTERNS = [\n        Int32Array.from([0x38, 0x34, 0x32, 0x31, 0x2C, 0x26, 0x23, 0x2A, 0x29, 0x25]),\n        Int32Array.from([0x07, 0x0B, 0x0D, 0x0E, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1]),\n    ];\n    return UPCEReader;\n}(UPCEANReader));\nexport default UPCEReader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport Result from '../Result';\nimport OneDReader from './OneDReader';\nimport EAN13Reader from './EAN13Reader';\nimport EAN8Reader from './EAN8Reader';\nimport UPCAReader from './UPCAReader';\nimport NotFoundException from '../NotFoundException';\nimport UPCEReader from './UPCEReader';\n/**\n * <p>A reader that can read all available UPC/EAN formats. If a caller wants to try to\n * read all such formats, it is most efficient to use this implementation rather than invoke\n * individual readers.</p>\n *\n * @author Sean Owen\n */\nvar MultiFormatUPCEANReader = /** @class */ (function (_super) {\n    __extends(MultiFormatUPCEANReader, _super);\n    function MultiFormatUPCEANReader(hints) {\n        var _this = _super.call(this) || this;\n        var possibleFormats = hints == null ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n        var readers = [];\n        if (possibleFormats != null) {\n            if (possibleFormats.indexOf(BarcodeFormat.EAN_13) > -1) {\n                readers.push(new EAN13Reader());\n            }\n            else if (possibleFormats.indexOf(BarcodeFormat.UPC_A) > -1) {\n                readers.push(new UPCAReader());\n            }\n            if (possibleFormats.indexOf(BarcodeFormat.EAN_8) > -1) {\n                readers.push(new EAN8Reader());\n            }\n            if (possibleFormats.indexOf(BarcodeFormat.UPC_E) > -1) {\n                readers.push(new UPCEReader());\n            }\n        }\n        if (readers.length === 0) {\n            readers.push(new EAN13Reader());\n            // UPC-A is covered by EAN-13\n            readers.push(new EAN8Reader());\n            readers.push(new UPCEReader());\n        }\n        _this.readers = readers;\n        return _this;\n    }\n    MultiFormatUPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n        var e_1, _a;\n        try {\n            for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var reader = _c.value;\n                try {\n                    // const result: Result = reader.decodeRow(rowNumber, row, startGuardPattern, hints);\n                    var result = reader.decodeRow(rowNumber, row, hints);\n                    // Special case: a 12-digit code encoded in UPC-A is identical to a \"0\"\n                    // followed by those 12 digits encoded as EAN-13. Each will recognize such a code,\n                    // UPC-A as a 12-digit string and EAN-13 as a 13-digit string starting with \"0\".\n                    // Individually these are correct and their readers will both read such a code\n                    // and correctly call it EAN-13, or UPC-A, respectively.\n                    //\n                    // In this case, if we've been looking for both types, we'd like to call it\n                    // a UPC-A code. But for efficiency we only run the EAN-13 decoder to also read\n                    // UPC-A. So we special case it here, and convert an EAN-13 result to a UPC-A\n                    // result if appropriate.\n                    //\n                    // But, don't return UPC-A if UPC-A was not a requested format!\n                    var ean13MayBeUPCA = result.getBarcodeFormat() === BarcodeFormat.EAN_13 &&\n                        result.getText().charAt(0) === '0';\n                    // @SuppressWarnings(\"unchecked\")\n                    var possibleFormats = hints == null ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n                    var canReturnUPCA = possibleFormats == null || possibleFormats.includes(BarcodeFormat.UPC_A);\n                    if (ean13MayBeUPCA && canReturnUPCA) {\n                        var rawBytes = result.getRawBytes();\n                        // Transfer the metadata across\n                        var resultUPCA = new Result(result.getText().substring(1), rawBytes, rawBytes.length, result.getResultPoints(), BarcodeFormat.UPC_A);\n                        resultUPCA.putAllMetadata(result.getResultMetadata());\n                        return resultUPCA;\n                    }\n                    return result;\n                }\n                catch (err) {\n                    // continue;\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        throw new NotFoundException();\n    };\n    MultiFormatUPCEANReader.prototype.reset = function () {\n        var e_2, _a;\n        try {\n            for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var reader = _c.value;\n                reader.reset();\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n    };\n    return MultiFormatUPCEANReader;\n}(OneDReader));\nexport default MultiFormatUPCEANReader;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport MathUtils from '../../common/detector/MathUtils';\nimport NotFoundException from '../../NotFoundException';\nimport OneDReader from '../OneDReader';\n// import Integer from '../../util/Integer';\n// import Float from '../../util/Float';\nvar AbstractRSSReader = /** @class */ (function (_super) {\n    __extends(AbstractRSSReader, _super);\n    function AbstractRSSReader() {\n        var _this = _super.call(this) || this;\n        _this.decodeFinderCounters = new Int32Array(4);\n        _this.dataCharacterCounters = new Int32Array(8);\n        _this.oddRoundingErrors = new Array(4);\n        _this.evenRoundingErrors = new Array(4);\n        _this.oddCounts = new Array(_this.dataCharacterCounters.length / 2);\n        _this.evenCounts = new Array(_this.dataCharacterCounters.length / 2);\n        return _this;\n    }\n    AbstractRSSReader.prototype.getDecodeFinderCounters = function () {\n        return this.decodeFinderCounters;\n    };\n    AbstractRSSReader.prototype.getDataCharacterCounters = function () {\n        return this.dataCharacterCounters;\n    };\n    AbstractRSSReader.prototype.getOddRoundingErrors = function () {\n        return this.oddRoundingErrors;\n    };\n    AbstractRSSReader.prototype.getEvenRoundingErrors = function () {\n        return this.evenRoundingErrors;\n    };\n    AbstractRSSReader.prototype.getOddCounts = function () {\n        return this.oddCounts;\n    };\n    AbstractRSSReader.prototype.getEvenCounts = function () {\n        return this.evenCounts;\n    };\n    AbstractRSSReader.prototype.parseFinderValue = function (counters, finderPatterns) {\n        for (var value = 0; value < finderPatterns.length; value++) {\n            if (OneDReader.patternMatchVariance(counters, finderPatterns[value], AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE) < AbstractRSSReader.MAX_AVG_VARIANCE) {\n                return value;\n            }\n        }\n        throw new NotFoundException();\n    };\n    /**\n     * @param array values to sum\n     * @return sum of values\n     * @deprecated call {@link MathUtils#sum(int[])}\n     */\n    AbstractRSSReader.count = function (array) {\n        return MathUtils.sum(new Int32Array(array));\n    };\n    AbstractRSSReader.increment = function (array, errors) {\n        var index = 0;\n        var biggestError = errors[0];\n        for (var i = 1; i < array.length; i++) {\n            if (errors[i] > biggestError) {\n                biggestError = errors[i];\n                index = i;\n            }\n        }\n        array[index]++;\n    };\n    AbstractRSSReader.decrement = function (array, errors) {\n        var index = 0;\n        var biggestError = errors[0];\n        for (var i = 1; i < array.length; i++) {\n            if (errors[i] < biggestError) {\n                biggestError = errors[i];\n                index = i;\n            }\n        }\n        array[index]--;\n    };\n    AbstractRSSReader.isFinderPattern = function (counters) {\n        var e_1, _a;\n        var firstTwoSum = counters[0] + counters[1];\n        var sum = firstTwoSum + counters[2] + counters[3];\n        var ratio = firstTwoSum / sum;\n        if (ratio >= AbstractRSSReader.MIN_FINDER_PATTERN_RATIO && ratio <= AbstractRSSReader.MAX_FINDER_PATTERN_RATIO) {\n            // passes ratio test in spec, but see if the counts are unreasonable\n            var minCounter = Number.MAX_SAFE_INTEGER;\n            var maxCounter = Number.MIN_SAFE_INTEGER;\n            try {\n                for (var counters_1 = __values(counters), counters_1_1 = counters_1.next(); !counters_1_1.done; counters_1_1 = counters_1.next()) {\n                    var counter = counters_1_1.value;\n                    if (counter > maxCounter) {\n                        maxCounter = counter;\n                    }\n                    if (counter < minCounter) {\n                        minCounter = counter;\n                    }\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (counters_1_1 && !counters_1_1.done && (_a = counters_1.return)) _a.call(counters_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            return maxCounter < 10 * minCounter;\n        }\n        return false;\n    };\n    AbstractRSSReader.MAX_AVG_VARIANCE = 0.2;\n    AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE = 0.45;\n    AbstractRSSReader.MIN_FINDER_PATTERN_RATIO = 9.5 / 12.0;\n    AbstractRSSReader.MAX_FINDER_PATTERN_RATIO = 12.5 / 14.0;\n    return AbstractRSSReader;\n}(OneDReader));\nexport default AbstractRSSReader;\n","var DataCharacter = /** @class */ (function () {\n    function DataCharacter(value, checksumPortion) {\n        this.value = value;\n        this.checksumPortion = checksumPortion;\n    }\n    DataCharacter.prototype.getValue = function () {\n        return this.value;\n    };\n    DataCharacter.prototype.getChecksumPortion = function () {\n        return this.checksumPortion;\n    };\n    DataCharacter.prototype.toString = function () {\n        return this.value + '(' + this.checksumPortion + ')';\n    };\n    DataCharacter.prototype.equals = function (o) {\n        if (!(o instanceof DataCharacter)) {\n            return false;\n        }\n        var that = o;\n        return this.value === that.value && this.checksumPortion === that.checksumPortion;\n    };\n    DataCharacter.prototype.hashCode = function () {\n        return this.value ^ this.checksumPortion;\n    };\n    return DataCharacter;\n}());\nexport default DataCharacter;\n","import ResultPoint from '../../ResultPoint';\nvar FinderPattern = /** @class */ (function () {\n    function FinderPattern(value, startEnd, start, end, rowNumber) {\n        this.value = value;\n        this.startEnd = startEnd;\n        this.value = value;\n        this.startEnd = startEnd;\n        this.resultPoints = new Array();\n        this.resultPoints.push(new ResultPoint(start, rowNumber));\n        this.resultPoints.push(new ResultPoint(end, rowNumber));\n    }\n    FinderPattern.prototype.getValue = function () {\n        return this.value;\n    };\n    FinderPattern.prototype.getStartEnd = function () {\n        return this.startEnd;\n    };\n    FinderPattern.prototype.getResultPoints = function () {\n        return this.resultPoints;\n    };\n    FinderPattern.prototype.equals = function (o) {\n        if (!(o instanceof FinderPattern)) {\n            return false;\n        }\n        var that = o;\n        return this.value === that.value;\n    };\n    FinderPattern.prototype.hashCode = function () {\n        return this.value;\n    };\n    return FinderPattern;\n}());\nexport default FinderPattern;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * RSS util functions.\n */\nvar RSSUtils = /** @class */ (function () {\n    function RSSUtils() {\n    }\n    RSSUtils.getRSSvalue = function (widths, maxWidth, noNarrow) {\n        var e_1, _a;\n        var n = 0;\n        try {\n            for (var widths_1 = __values(widths), widths_1_1 = widths_1.next(); !widths_1_1.done; widths_1_1 = widths_1.next()) {\n                var width = widths_1_1.value;\n                n += width;\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (widths_1_1 && !widths_1_1.done && (_a = widths_1.return)) _a.call(widths_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        var val = 0;\n        var narrowMask = 0;\n        var elements = widths.length;\n        for (var bar = 0; bar < elements - 1; bar++) {\n            var elmWidth = void 0;\n            for (elmWidth = 1, narrowMask |= 1 << bar; elmWidth < widths[bar]; elmWidth++, narrowMask &= ~(1 << bar)) {\n                var subVal = RSSUtils.combins(n - elmWidth - 1, elements - bar - 2);\n                if (noNarrow && (narrowMask === 0) && (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) {\n                    subVal -= RSSUtils.combins(n - elmWidth - (elements - bar), elements - bar - 2);\n                }\n                if (elements - bar - 1 > 1) {\n                    var lessVal = 0;\n                    for (var mxwElement = n - elmWidth - (elements - bar - 2); mxwElement > maxWidth; mxwElement--) {\n                        lessVal += RSSUtils.combins(n - elmWidth - mxwElement - 1, elements - bar - 3);\n                    }\n                    subVal -= lessVal * (elements - 1 - bar);\n                }\n                else if (n - elmWidth > maxWidth) {\n                    subVal--;\n                }\n                val += subVal;\n            }\n            n -= elmWidth;\n        }\n        return val;\n    };\n    RSSUtils.combins = function (n, r) {\n        var maxDenom;\n        var minDenom;\n        if (n - r > r) {\n            minDenom = r;\n            maxDenom = n - r;\n        }\n        else {\n            minDenom = n - r;\n            maxDenom = r;\n        }\n        var val = 1;\n        var j = 1;\n        for (var i = n; i > maxDenom; i--) {\n            val *= i;\n            if (j <= minDenom) {\n                val /= j;\n                j++;\n            }\n        }\n        while ((j <= minDenom)) {\n            val /= j;\n            j++;\n        }\n        return val;\n    };\n    return RSSUtils;\n}());\nexport default RSSUtils;\n","import BitArray from '../../../common/BitArray';\nvar BitArrayBuilder = /** @class */ (function () {\n    function BitArrayBuilder() {\n    }\n    BitArrayBuilder.buildBitArray = function (pairs) {\n        var charNumber = (pairs.length * 2) - 1;\n        if (pairs[pairs.length - 1].getRightChar() == null) {\n            charNumber -= 1;\n        }\n        var size = 12 * charNumber;\n        var binary = new BitArray(size);\n        var accPos = 0;\n        var firstPair = pairs[0];\n        var firstValue = firstPair.getRightChar().getValue();\n        for (var i = 11; i >= 0; --i) {\n            if ((firstValue & (1 << i)) != 0) {\n                binary.set(accPos);\n            }\n            accPos++;\n        }\n        for (var i = 1; i < pairs.length; ++i) {\n            var currentPair = pairs[i];\n            var leftValue = currentPair.getLeftChar().getValue();\n            for (var j = 11; j >= 0; --j) {\n                if ((leftValue & (1 << j)) != 0) {\n                    binary.set(accPos);\n                }\n                accPos++;\n            }\n            if (currentPair.getRightChar() != null) {\n                var rightValue = currentPair.getRightChar().getValue();\n                for (var j = 11; j >= 0; --j) {\n                    if ((rightValue & (1 << j)) != 0) {\n                        binary.set(accPos);\n                    }\n                    accPos++;\n                }\n            }\n        }\n        return binary;\n    };\n    return BitArrayBuilder;\n}());\nexport default BitArrayBuilder;\n","var BlockParsedResult = /** @class */ (function () {\n    function BlockParsedResult(finished, decodedInformation) {\n        if (decodedInformation) {\n            this.decodedInformation = null;\n        }\n        else {\n            this.finished = finished;\n            this.decodedInformation = decodedInformation;\n        }\n    }\n    BlockParsedResult.prototype.getDecodedInformation = function () {\n        return this.decodedInformation;\n    };\n    BlockParsedResult.prototype.isFinished = function () {\n        return this.finished;\n    };\n    return BlockParsedResult;\n}());\nexport default BlockParsedResult;\n","var DecodedObject = /** @class */ (function () {\n    function DecodedObject(newPosition) {\n        this.newPosition = newPosition;\n    }\n    DecodedObject.prototype.getNewPosition = function () {\n        return this.newPosition;\n    };\n    return DecodedObject;\n}());\nexport default DecodedObject;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport DecodedObject from './DecodedObject';\nvar DecodedChar = /** @class */ (function (_super) {\n    __extends(DecodedChar, _super);\n    function DecodedChar(newPosition, value) {\n        var _this = _super.call(this, newPosition) || this;\n        _this.value = value;\n        return _this;\n    }\n    DecodedChar.prototype.getValue = function () {\n        return this.value;\n    };\n    DecodedChar.prototype.isFNC1 = function () {\n        return this.value === DecodedChar.FNC1;\n    };\n    DecodedChar.FNC1 = '$';\n    return DecodedChar;\n}(DecodedObject));\nexport default DecodedChar;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport DecodedObject from './DecodedObject';\nvar DecodedInformation = /** @class */ (function (_super) {\n    __extends(DecodedInformation, _super);\n    function DecodedInformation(newPosition, newString, remainingValue) {\n        var _this = _super.call(this, newPosition) || this;\n        if (remainingValue) {\n            _this.remaining = true;\n            _this.remainingValue = _this.remainingValue;\n        }\n        else {\n            _this.remaining = false;\n            _this.remainingValue = 0;\n        }\n        _this.newString = newString;\n        return _this;\n    }\n    DecodedInformation.prototype.getNewString = function () {\n        return this.newString;\n    };\n    DecodedInformation.prototype.isRemaining = function () {\n        return this.remaining;\n    };\n    DecodedInformation.prototype.getRemainingValue = function () {\n        return this.remainingValue;\n    };\n    return DecodedInformation;\n}(DecodedObject));\nexport default DecodedInformation;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport FormatException from '../../../../FormatException';\nimport DecodedObject from './DecodedObject';\nvar DecodedNumeric = /** @class */ (function (_super) {\n    __extends(DecodedNumeric, _super);\n    function DecodedNumeric(newPosition, firstDigit, secondDigit) {\n        var _this = _super.call(this, newPosition) || this;\n        if (firstDigit < 0 || firstDigit > 10 || secondDigit < 0 || secondDigit > 10) {\n            throw new FormatException();\n        }\n        _this.firstDigit = firstDigit;\n        _this.secondDigit = secondDigit;\n        return _this;\n    }\n    DecodedNumeric.prototype.getFirstDigit = function () {\n        return this.firstDigit;\n    };\n    DecodedNumeric.prototype.getSecondDigit = function () {\n        return this.secondDigit;\n    };\n    DecodedNumeric.prototype.getValue = function () {\n        return this.firstDigit * 10 + this.secondDigit;\n    };\n    DecodedNumeric.prototype.isFirstDigitFNC1 = function () {\n        return this.firstDigit === DecodedNumeric.FNC1;\n    };\n    DecodedNumeric.prototype.isSecondDigitFNC1 = function () {\n        return this.secondDigit === DecodedNumeric.FNC1;\n    };\n    DecodedNumeric.prototype.isAnyFNC1 = function () {\n        return this.firstDigit === DecodedNumeric.FNC1 || this.secondDigit === DecodedNumeric.FNC1;\n    };\n    DecodedNumeric.FNC1 = 10;\n    return DecodedNumeric;\n}(DecodedObject));\nexport default DecodedNumeric;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport NotFoundException from '../../../../NotFoundException';\nvar FieldParser = /** @class */ (function () {\n    function FieldParser() {\n    }\n    FieldParser.parseFieldsInGeneralPurpose = function (rawInformation) {\n        var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n        if (!rawInformation) {\n            return null;\n        }\n        // Processing 2-digit AIs\n        if (rawInformation.length < 2) {\n            throw new NotFoundException();\n        }\n        var firstTwoDigits = rawInformation.substring(0, 2);\n        try {\n            for (var _e = __values(FieldParser.TWO_DIGIT_DATA_LENGTH), _f = _e.next(); !_f.done; _f = _e.next()) {\n                var dataLength = _f.value;\n                if (dataLength[0] === firstTwoDigits) {\n                    if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n                        return FieldParser.processVariableAI(2, dataLength[2], rawInformation);\n                    }\n                    return FieldParser.processFixedAI(2, dataLength[1], rawInformation);\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        if (rawInformation.length < 3) {\n            throw new NotFoundException();\n        }\n        var firstThreeDigits = rawInformation.substring(0, 3);\n        try {\n            for (var _g = __values(FieldParser.THREE_DIGIT_DATA_LENGTH), _h = _g.next(); !_h.done; _h = _g.next()) {\n                var dataLength = _h.value;\n                if (dataLength[0] === firstThreeDigits) {\n                    if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n                        return FieldParser.processVariableAI(3, dataLength[2], rawInformation);\n                    }\n                    return FieldParser.processFixedAI(3, dataLength[1], rawInformation);\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        try {\n            for (var _j = __values(FieldParser.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH), _k = _j.next(); !_k.done; _k = _j.next()) {\n                var dataLength = _k.value;\n                if (dataLength[0] === firstThreeDigits) {\n                    if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n                        return FieldParser.processVariableAI(4, dataLength[2], rawInformation);\n                    }\n                    return FieldParser.processFixedAI(4, dataLength[1], rawInformation);\n                }\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (_k && !_k.done && (_c = _j.return)) _c.call(_j);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n        if (rawInformation.length < 4) {\n            throw new NotFoundException();\n        }\n        var firstFourDigits = rawInformation.substring(0, 4);\n        try {\n            for (var _l = __values(FieldParser.FOUR_DIGIT_DATA_LENGTH), _m = _l.next(); !_m.done; _m = _l.next()) {\n                var dataLength = _m.value;\n                if (dataLength[0] === firstFourDigits) {\n                    if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n                        return FieldParser.processVariableAI(4, dataLength[2], rawInformation);\n                    }\n                    return FieldParser.processFixedAI(4, dataLength[1], rawInformation);\n                }\n            }\n        }\n        catch (e_4_1) { e_4 = { error: e_4_1 }; }\n        finally {\n            try {\n                if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n            }\n            finally { if (e_4) throw e_4.error; }\n        }\n        throw new NotFoundException();\n    };\n    FieldParser.processFixedAI = function (aiSize, fieldSize, rawInformation) {\n        if (rawInformation.length < aiSize) {\n            throw new NotFoundException();\n        }\n        var ai = rawInformation.substring(0, aiSize);\n        if (rawInformation.length < aiSize + fieldSize) {\n            throw new NotFoundException();\n        }\n        var field = rawInformation.substring(aiSize, aiSize + fieldSize);\n        var remaining = rawInformation.substring(aiSize + fieldSize);\n        var result = '(' + ai + ')' + field;\n        var parsedAI = FieldParser.parseFieldsInGeneralPurpose(remaining);\n        return parsedAI == null ? result : result + parsedAI;\n    };\n    FieldParser.processVariableAI = function (aiSize, variableFieldSize, rawInformation) {\n        var ai = rawInformation.substring(0, aiSize);\n        var maxSize;\n        if (rawInformation.length < aiSize + variableFieldSize) {\n            maxSize = rawInformation.length;\n        }\n        else {\n            maxSize = aiSize + variableFieldSize;\n        }\n        var field = rawInformation.substring(aiSize, maxSize);\n        var remaining = rawInformation.substring(maxSize);\n        var result = '(' + ai + ')' + field;\n        var parsedAI = FieldParser.parseFieldsInGeneralPurpose(remaining);\n        return parsedAI == null ? result : result + parsedAI;\n    };\n    FieldParser.VARIABLE_LENGTH = [];\n    FieldParser.TWO_DIGIT_DATA_LENGTH = [\n        ['00', 18],\n        ['01', 14],\n        ['02', 14],\n        ['10', FieldParser.VARIABLE_LENGTH, 20],\n        ['11', 6],\n        ['12', 6],\n        ['13', 6],\n        ['15', 6],\n        ['17', 6],\n        ['20', 2],\n        ['21', FieldParser.VARIABLE_LENGTH, 20],\n        ['22', FieldParser.VARIABLE_LENGTH, 29],\n        ['30', FieldParser.VARIABLE_LENGTH, 8],\n        ['37', FieldParser.VARIABLE_LENGTH, 8],\n        // internal company codes\n        ['90', FieldParser.VARIABLE_LENGTH, 30],\n        ['91', FieldParser.VARIABLE_LENGTH, 30],\n        ['92', FieldParser.VARIABLE_LENGTH, 30],\n        ['93', FieldParser.VARIABLE_LENGTH, 30],\n        ['94', FieldParser.VARIABLE_LENGTH, 30],\n        ['95', FieldParser.VARIABLE_LENGTH, 30],\n        ['96', FieldParser.VARIABLE_LENGTH, 30],\n        ['97', FieldParser.VARIABLE_LENGTH, 3],\n        ['98', FieldParser.VARIABLE_LENGTH, 30],\n        ['99', FieldParser.VARIABLE_LENGTH, 30],\n    ];\n    FieldParser.THREE_DIGIT_DATA_LENGTH = [\n        // Same format as above\n        ['240', FieldParser.VARIABLE_LENGTH, 30],\n        ['241', FieldParser.VARIABLE_LENGTH, 30],\n        ['242', FieldParser.VARIABLE_LENGTH, 6],\n        ['250', FieldParser.VARIABLE_LENGTH, 30],\n        ['251', FieldParser.VARIABLE_LENGTH, 30],\n        ['253', FieldParser.VARIABLE_LENGTH, 17],\n        ['254', FieldParser.VARIABLE_LENGTH, 20],\n        ['400', FieldParser.VARIABLE_LENGTH, 30],\n        ['401', FieldParser.VARIABLE_LENGTH, 30],\n        ['402', 17],\n        ['403', FieldParser.VARIABLE_LENGTH, 30],\n        ['410', 13],\n        ['411', 13],\n        ['412', 13],\n        ['413', 13],\n        ['414', 13],\n        ['420', FieldParser.VARIABLE_LENGTH, 20],\n        ['421', FieldParser.VARIABLE_LENGTH, 15],\n        ['422', 3],\n        ['423', FieldParser.VARIABLE_LENGTH, 15],\n        ['424', 3],\n        ['425', 3],\n        ['426', 3],\n    ];\n    FieldParser.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH = [\n        // Same format as above\n        ['310', 6],\n        ['311', 6],\n        ['312', 6],\n        ['313', 6],\n        ['314', 6],\n        ['315', 6],\n        ['316', 6],\n        ['320', 6],\n        ['321', 6],\n        ['322', 6],\n        ['323', 6],\n        ['324', 6],\n        ['325', 6],\n        ['326', 6],\n        ['327', 6],\n        ['328', 6],\n        ['329', 6],\n        ['330', 6],\n        ['331', 6],\n        ['332', 6],\n        ['333', 6],\n        ['334', 6],\n        ['335', 6],\n        ['336', 6],\n        ['340', 6],\n        ['341', 6],\n        ['342', 6],\n        ['343', 6],\n        ['344', 6],\n        ['345', 6],\n        ['346', 6],\n        ['347', 6],\n        ['348', 6],\n        ['349', 6],\n        ['350', 6],\n        ['351', 6],\n        ['352', 6],\n        ['353', 6],\n        ['354', 6],\n        ['355', 6],\n        ['356', 6],\n        ['357', 6],\n        ['360', 6],\n        ['361', 6],\n        ['362', 6],\n        ['363', 6],\n        ['364', 6],\n        ['365', 6],\n        ['366', 6],\n        ['367', 6],\n        ['368', 6],\n        ['369', 6],\n        ['390', FieldParser.VARIABLE_LENGTH, 15],\n        ['391', FieldParser.VARIABLE_LENGTH, 18],\n        ['392', FieldParser.VARIABLE_LENGTH, 15],\n        ['393', FieldParser.VARIABLE_LENGTH, 18],\n        ['703', FieldParser.VARIABLE_LENGTH, 30],\n    ];\n    FieldParser.FOUR_DIGIT_DATA_LENGTH = [\n        // Same format as above\n        ['7001', 13],\n        ['7002', FieldParser.VARIABLE_LENGTH, 30],\n        ['7003', 10],\n        ['8001', 14],\n        ['8002', FieldParser.VARIABLE_LENGTH, 20],\n        ['8003', FieldParser.VARIABLE_LENGTH, 30],\n        ['8004', FieldParser.VARIABLE_LENGTH, 30],\n        ['8005', 6],\n        ['8006', 18],\n        ['8007', FieldParser.VARIABLE_LENGTH, 30],\n        ['8008', FieldParser.VARIABLE_LENGTH, 12],\n        ['8018', 18],\n        ['8020', FieldParser.VARIABLE_LENGTH, 25],\n        ['8100', 6],\n        ['8101', 10],\n        ['8102', 2],\n        ['8110', FieldParser.VARIABLE_LENGTH, 70],\n        ['8200', FieldParser.VARIABLE_LENGTH, 70],\n    ];\n    return FieldParser;\n}());\nexport default FieldParser;\n","import FormatException from '../../../../FormatException';\nimport IllegalStateException from '../../../../IllegalStateException';\nimport StringBuilder from '../../../../util/StringBuilder';\nimport BlockParsedResult from './BlockParsedResult';\nimport DecodedChar from './DecodedChar';\nimport DecodedInformation from './DecodedInformation';\nimport DecodedNumeric from './DecodedNumeric';\nimport FieldParser from './FieldParser';\nvar GeneralAppIdDecoder = /** @class */ (function () {\n    function GeneralAppIdDecoder(information) {\n        this.buffer = new StringBuilder();\n        this.information = information;\n    }\n    GeneralAppIdDecoder.prototype.decodeAllCodes = function (buff, initialPosition) {\n        var currentPosition = initialPosition;\n        var remaining = null;\n        do {\n            var info = this.decodeGeneralPurposeField(currentPosition, remaining);\n            var parsedFields = FieldParser.parseFieldsInGeneralPurpose(info.getNewString());\n            if (parsedFields != null) {\n                buff.append(parsedFields);\n            }\n            if (info.isRemaining()) {\n                remaining = '' + info.getRemainingValue();\n            }\n            else {\n                remaining = null;\n            }\n            if (currentPosition === info.getNewPosition()) { // No step forward!\n                break;\n            }\n            currentPosition = info.getNewPosition();\n        } while (true);\n        return buff.toString();\n    };\n    GeneralAppIdDecoder.prototype.isStillNumeric = function (pos) {\n        // It's numeric if it still has 7 positions\n        // and one of the first 4 bits is \"1\".\n        if (pos + 7 > this.information.getSize()) {\n            return pos + 4 <= this.information.getSize();\n        }\n        for (var i = pos; i < pos + 3; ++i) {\n            if (this.information.get(i)) {\n                return true;\n            }\n        }\n        return this.information.get(pos + 3);\n    };\n    GeneralAppIdDecoder.prototype.decodeNumeric = function (pos) {\n        if (pos + 7 > this.information.getSize()) {\n            var numeric_1 = this.extractNumericValueFromBitArray(pos, 4);\n            if (numeric_1 === 0) {\n                return new DecodedNumeric(this.information.getSize(), DecodedNumeric.FNC1, DecodedNumeric.FNC1);\n            }\n            return new DecodedNumeric(this.information.getSize(), numeric_1 - 1, DecodedNumeric.FNC1);\n        }\n        var numeric = this.extractNumericValueFromBitArray(pos, 7);\n        var digit1 = (numeric - 8) / 11;\n        var digit2 = (numeric - 8) % 11;\n        return new DecodedNumeric(pos + 7, digit1, digit2);\n    };\n    GeneralAppIdDecoder.prototype.extractNumericValueFromBitArray = function (pos, bits) {\n        return GeneralAppIdDecoder.extractNumericValueFromBitArray(this.information, pos, bits);\n    };\n    GeneralAppIdDecoder.extractNumericValueFromBitArray = function (information, pos, bits) {\n        var value = 0;\n        for (var i = 0; i < bits; ++i) {\n            if (information.get(pos + i)) {\n                value |= 1 << (bits - i - 1);\n            }\n        }\n        return value;\n    };\n    GeneralAppIdDecoder.prototype.decodeGeneralPurposeField = function (pos, remaining) {\n        // this.buffer.setLength(0);\n        this.buffer.setLengthToZero();\n        if (remaining != null) {\n            this.buffer.append(remaining);\n        }\n        this.current.setPosition(pos);\n        var lastDecoded = this.parseBlocks();\n        if (lastDecoded != null && lastDecoded.isRemaining()) {\n            return new DecodedInformation(this.current.getPosition(), this.buffer.toString(), lastDecoded.getRemainingValue());\n        }\n        return new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n    };\n    GeneralAppIdDecoder.prototype.parseBlocks = function () {\n        var isFinished;\n        var result;\n        do {\n            var initialPosition = this.current.getPosition();\n            if (this.current.isAlpha()) {\n                result = this.parseAlphaBlock();\n                isFinished = result.isFinished();\n            }\n            else if (this.current.isIsoIec646()) {\n                result = this.parseIsoIec646Block();\n                isFinished = result.isFinished();\n            }\n            else { // it must be numeric\n                result = this.parseNumericBlock();\n                isFinished = result.isFinished();\n            }\n            var positionChanged = initialPosition !== this.current.getPosition();\n            if (!positionChanged && !isFinished) {\n                break;\n            }\n        } while (!isFinished);\n        return result.getDecodedInformation();\n    };\n    GeneralAppIdDecoder.prototype.parseNumericBlock = function () {\n        while (this.isStillNumeric(this.current.getPosition())) {\n            var numeric = this.decodeNumeric(this.current.getPosition());\n            this.current.setPosition(numeric.getNewPosition());\n            if (numeric.isFirstDigitFNC1()) {\n                var information = void 0;\n                if (numeric.isSecondDigitFNC1()) {\n                    information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n                }\n                else {\n                    information = new DecodedInformation(this.current.getPosition(), this.buffer.toString(), numeric.getSecondDigit());\n                }\n                return new BlockParsedResult(true, information);\n            }\n            this.buffer.append(numeric.getFirstDigit());\n            if (numeric.isSecondDigitFNC1()) {\n                var information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n                return new BlockParsedResult(true, information);\n            }\n            this.buffer.append(numeric.getSecondDigit());\n        }\n        if (this.isNumericToAlphaNumericLatch(this.current.getPosition())) {\n            this.current.setAlpha();\n            this.current.incrementPosition(4);\n        }\n        return new BlockParsedResult(false);\n    };\n    GeneralAppIdDecoder.prototype.parseIsoIec646Block = function () {\n        while (this.isStillIsoIec646(this.current.getPosition())) {\n            var iso = this.decodeIsoIec646(this.current.getPosition());\n            this.current.setPosition(iso.getNewPosition());\n            if (iso.isFNC1()) {\n                var information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n                return new BlockParsedResult(true, information);\n            }\n            this.buffer.append(iso.getValue());\n        }\n        if (this.isAlphaOr646ToNumericLatch(this.current.getPosition())) {\n            this.current.incrementPosition(3);\n            this.current.setNumeric();\n        }\n        else if (this.isAlphaTo646ToAlphaLatch(this.current.getPosition())) {\n            if (this.current.getPosition() + 5 < this.information.getSize()) {\n                this.current.incrementPosition(5);\n            }\n            else {\n                this.current.setPosition(this.information.getSize());\n            }\n            this.current.setAlpha();\n        }\n        return new BlockParsedResult(false);\n    };\n    GeneralAppIdDecoder.prototype.parseAlphaBlock = function () {\n        while (this.isStillAlpha(this.current.getPosition())) {\n            var alpha = this.decodeAlphanumeric(this.current.getPosition());\n            this.current.setPosition(alpha.getNewPosition());\n            if (alpha.isFNC1()) {\n                var information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n                return new BlockParsedResult(true, information); // end of the char block\n            }\n            this.buffer.append(alpha.getValue());\n        }\n        if (this.isAlphaOr646ToNumericLatch(this.current.getPosition())) {\n            this.current.incrementPosition(3);\n            this.current.setNumeric();\n        }\n        else if (this.isAlphaTo646ToAlphaLatch(this.current.getPosition())) {\n            if (this.current.getPosition() + 5 < this.information.getSize()) {\n                this.current.incrementPosition(5);\n            }\n            else {\n                this.current.setPosition(this.information.getSize());\n            }\n            this.current.setIsoIec646();\n        }\n        return new BlockParsedResult(false);\n    };\n    GeneralAppIdDecoder.prototype.isStillIsoIec646 = function (pos) {\n        if (pos + 5 > this.information.getSize()) {\n            return false;\n        }\n        var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n        if (fiveBitValue >= 5 && fiveBitValue < 16) {\n            return true;\n        }\n        if (pos + 7 > this.information.getSize()) {\n            return false;\n        }\n        var sevenBitValue = this.extractNumericValueFromBitArray(pos, 7);\n        if (sevenBitValue >= 64 && sevenBitValue < 116) {\n            return true;\n        }\n        if (pos + 8 > this.information.getSize()) {\n            return false;\n        }\n        var eightBitValue = this.extractNumericValueFromBitArray(pos, 8);\n        return eightBitValue >= 232 && eightBitValue < 253;\n    };\n    GeneralAppIdDecoder.prototype.decodeIsoIec646 = function (pos) {\n        var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n        if (fiveBitValue === 15) {\n            return new DecodedChar(pos + 5, DecodedChar.FNC1);\n        }\n        if (fiveBitValue >= 5 && fiveBitValue < 15) {\n            return new DecodedChar(pos + 5, ('0' + (fiveBitValue - 5)));\n        }\n        var sevenBitValue = this.extractNumericValueFromBitArray(pos, 7);\n        if (sevenBitValue >= 64 && sevenBitValue < 90) {\n            return new DecodedChar(pos + 7, ('' + (sevenBitValue + 1)));\n        }\n        if (sevenBitValue >= 90 && sevenBitValue < 116) {\n            return new DecodedChar(pos + 7, ('' + (sevenBitValue + 7)));\n        }\n        var eightBitValue = this.extractNumericValueFromBitArray(pos, 8);\n        var c;\n        switch (eightBitValue) {\n            case 232:\n                c = '!';\n                break;\n            case 233:\n                c = '\"';\n                break;\n            case 234:\n                c = '%';\n                break;\n            case 235:\n                c = '&';\n                break;\n            case 236:\n                c = '\\'';\n                break;\n            case 237:\n                c = '(';\n                break;\n            case 238:\n                c = ')';\n                break;\n            case 239:\n                c = '*';\n                break;\n            case 240:\n                c = '+';\n                break;\n            case 241:\n                c = ',';\n                break;\n            case 242:\n                c = '-';\n                break;\n            case 243:\n                c = '.';\n                break;\n            case 244:\n                c = '/';\n                break;\n            case 245:\n                c = ':';\n                break;\n            case 246:\n                c = ';';\n                break;\n            case 247:\n                c = '<';\n                break;\n            case 248:\n                c = '=';\n                break;\n            case 249:\n                c = '>';\n                break;\n            case 250:\n                c = '?';\n                break;\n            case 251:\n                c = '_';\n                break;\n            case 252:\n                c = ' ';\n                break;\n            default:\n                throw new FormatException();\n        }\n        return new DecodedChar(pos + 8, c);\n    };\n    GeneralAppIdDecoder.prototype.isStillAlpha = function (pos) {\n        if (pos + 5 > this.information.getSize()) {\n            return false;\n        }\n        // We now check if it's a valid 5-bit value (0..9 and FNC1)\n        var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n        if (fiveBitValue >= 5 && fiveBitValue < 16) {\n            return true;\n        }\n        if (pos + 6 > this.information.getSize()) {\n            return false;\n        }\n        var sixBitValue = this.extractNumericValueFromBitArray(pos, 6);\n        return sixBitValue >= 16 && sixBitValue < 63; // 63 not included\n    };\n    GeneralAppIdDecoder.prototype.decodeAlphanumeric = function (pos) {\n        var fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n        if (fiveBitValue === 15) {\n            return new DecodedChar(pos + 5, DecodedChar.FNC1);\n        }\n        if (fiveBitValue >= 5 && fiveBitValue < 15) {\n            return new DecodedChar(pos + 5, ('0' + (fiveBitValue - 5)));\n        }\n        var sixBitValue = this.extractNumericValueFromBitArray(pos, 6);\n        if (sixBitValue >= 32 && sixBitValue < 58) {\n            return new DecodedChar(pos + 6, ('' + (sixBitValue + 33)));\n        }\n        var c;\n        switch (sixBitValue) {\n            case 58:\n                c = '*';\n                break;\n            case 59:\n                c = ',';\n                break;\n            case 60:\n                c = '-';\n                break;\n            case 61:\n                c = '.';\n                break;\n            case 62:\n                c = '/';\n                break;\n            default:\n                throw new IllegalStateException('Decoding invalid alphanumeric value: ' + sixBitValue);\n        }\n        return new DecodedChar(pos + 6, c);\n    };\n    GeneralAppIdDecoder.prototype.isAlphaTo646ToAlphaLatch = function (pos) {\n        if (pos + 1 > this.information.getSize()) {\n            return false;\n        }\n        for (var i = 0; i < 5 && i + pos < this.information.getSize(); ++i) {\n            if (i === 2) {\n                if (!this.information.get(pos + 2)) {\n                    return false;\n                }\n            }\n            else if (this.information.get(pos + i)) {\n                return false;\n            }\n        }\n        return true;\n    };\n    GeneralAppIdDecoder.prototype.isAlphaOr646ToNumericLatch = function (pos) {\n        // Next is alphanumeric if there are 3 positions and they are all zeros\n        if (pos + 3 > this.information.getSize()) {\n            return false;\n        }\n        for (var i = pos; i < pos + 3; ++i) {\n            if (this.information.get(i)) {\n                return false;\n            }\n        }\n        return true;\n    };\n    GeneralAppIdDecoder.prototype.isNumericToAlphaNumericLatch = function (pos) {\n        // Next is alphanumeric if there are 4 positions and they are all zeros, or\n        // if there is a subset of this just before the end of the symbol\n        if (pos + 1 > this.information.getSize()) {\n            return false;\n        }\n        for (var i = 0; i < 4 && i + pos < this.information.getSize(); ++i) {\n            if (this.information.get(pos + i)) {\n                return false;\n            }\n        }\n        return true;\n    };\n    return GeneralAppIdDecoder;\n}());\nexport default GeneralAppIdDecoder;\n","import GeneralAppIdDecoder from './GeneralAppIdDecoder';\nvar AbstractExpandedDecoder = /** @class */ (function () {\n    function AbstractExpandedDecoder(information) {\n        this.information = information;\n        this.generalDecoder = new GeneralAppIdDecoder(information);\n    }\n    AbstractExpandedDecoder.prototype.getInformation = function () {\n        return this.information;\n    };\n    AbstractExpandedDecoder.prototype.getGeneralDecoder = function () {\n        return this.generalDecoder;\n    };\n    return AbstractExpandedDecoder;\n}());\nexport default AbstractExpandedDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AbstractExpandedDecoder from './AbstractExpandedDecoder';\nvar AI01decoder = /** @class */ (function (_super) {\n    __extends(AI01decoder, _super);\n    function AI01decoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI01decoder.prototype.encodeCompressedGtin = function (buf, currentPos) {\n        buf.append('(01)');\n        var initialPosition = buf.length();\n        buf.append('9');\n        this.encodeCompressedGtinWithoutAI(buf, currentPos, initialPosition);\n    };\n    AI01decoder.prototype.encodeCompressedGtinWithoutAI = function (buf, currentPos, initialBufferPosition) {\n        for (var i = 0; i < 4; ++i) {\n            var currentBlock = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos + 10 * i, 10);\n            if (currentBlock / 100 === 0) {\n                buf.append('0');\n            }\n            if (currentBlock / 10 === 0) {\n                buf.append('0');\n            }\n            buf.append(currentBlock);\n        }\n        AI01decoder.appendCheckDigit(buf, initialBufferPosition);\n    };\n    AI01decoder.appendCheckDigit = function (buf, currentPos) {\n        var checkDigit = 0;\n        for (var i = 0; i < 13; i++) {\n            // let digit = buf.charAt(i + currentPos) - '0';\n            // To be checked\n            var digit = buf.charAt(i + currentPos).charCodeAt(0) - '0'.charCodeAt(0);\n            checkDigit += (i & 0x01) === 0 ? 3 * digit : digit;\n        }\n        checkDigit = 10 - (checkDigit % 10);\n        if (checkDigit === 10) {\n            checkDigit = 0;\n        }\n        buf.append(checkDigit);\n    };\n    AI01decoder.GTIN_SIZE = 40;\n    return AI01decoder;\n}(AbstractExpandedDecoder));\nexport default AI01decoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI01decoder from './AI01decoder';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI01AndOtherAIs = /** @class */ (function (_super) {\n    __extends(AI01AndOtherAIs, _super);\n    // the second one is the encodation method, and the other two are for the variable length\n    function AI01AndOtherAIs(information) {\n        return _super.call(this, information) || this;\n    }\n    AI01AndOtherAIs.prototype.parseInformation = function () {\n        var buff = new StringBuilder();\n        buff.append('(01)');\n        var initialGtinPosition = buff.length();\n        var firstGtinDigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01AndOtherAIs.HEADER_SIZE, 4);\n        buff.append(firstGtinDigit);\n        this.encodeCompressedGtinWithoutAI(buff, AI01AndOtherAIs.HEADER_SIZE + 4, initialGtinPosition);\n        return this.getGeneralDecoder().decodeAllCodes(buff, AI01AndOtherAIs.HEADER_SIZE + 44);\n    };\n    AI01AndOtherAIs.HEADER_SIZE = 1 + 1 + 2; // first bit encodes the linkage flag,\n    return AI01AndOtherAIs;\n}(AI01decoder));\nexport default AI01AndOtherAIs;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport StringBuilder from '../../../../util/StringBuilder';\nimport AbstractExpandedDecoder from './AbstractExpandedDecoder';\nvar AnyAIDecoder = /** @class */ (function (_super) {\n    __extends(AnyAIDecoder, _super);\n    function AnyAIDecoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AnyAIDecoder.prototype.parseInformation = function () {\n        var buf = new StringBuilder();\n        return this.getGeneralDecoder().decodeAllCodes(buf, AnyAIDecoder.HEADER_SIZE);\n    };\n    AnyAIDecoder.HEADER_SIZE = 2 + 1 + 2;\n    return AnyAIDecoder;\n}(AbstractExpandedDecoder));\nexport default AnyAIDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI01decoder from './AI01decoder';\nvar AI01weightDecoder = /** @class */ (function (_super) {\n    __extends(AI01weightDecoder, _super);\n    function AI01weightDecoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI01weightDecoder.prototype.encodeCompressedWeight = function (buf, currentPos, weightSize) {\n        var originalWeightNumeric = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, weightSize);\n        this.addWeightCode(buf, originalWeightNumeric);\n        var weightNumeric = this.checkWeight(originalWeightNumeric);\n        var currentDivisor = 100000;\n        for (var i = 0; i < 5; ++i) {\n            if (weightNumeric / currentDivisor === 0) {\n                buf.append('0');\n            }\n            currentDivisor /= 10;\n        }\n        buf.append(weightNumeric);\n    };\n    return AI01weightDecoder;\n}(AI01decoder));\nexport default AI01weightDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI01weightDecoder from './AI01weightDecoder';\nimport StringBuilder from '../../../../util/StringBuilder';\nimport NotFoundException from '../../../../NotFoundException';\nvar AI013x0xDecoder = /** @class */ (function (_super) {\n    __extends(AI013x0xDecoder, _super);\n    function AI013x0xDecoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI013x0xDecoder.prototype.parseInformation = function () {\n        if (this.getInformation().getSize() != AI013x0xDecoder.HEADER_SIZE + AI01weightDecoder.GTIN_SIZE + AI013x0xDecoder.WEIGHT_SIZE) {\n            throw new NotFoundException();\n        }\n        var buf = new StringBuilder();\n        this.encodeCompressedGtin(buf, AI013x0xDecoder.HEADER_SIZE);\n        this.encodeCompressedWeight(buf, AI013x0xDecoder.HEADER_SIZE + AI01weightDecoder.GTIN_SIZE, AI013x0xDecoder.WEIGHT_SIZE);\n        return buf.toString();\n    };\n    AI013x0xDecoder.HEADER_SIZE = 4 + 1;\n    AI013x0xDecoder.WEIGHT_SIZE = 15;\n    return AI013x0xDecoder;\n}(AI01weightDecoder));\nexport default AI013x0xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI013x0xDecoder from './AI013x0xDecoder';\nvar AI013103decoder = /** @class */ (function (_super) {\n    __extends(AI013103decoder, _super);\n    function AI013103decoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI013103decoder.prototype.addWeightCode = function (buf, weight) {\n        buf.append('(3103)');\n    };\n    AI013103decoder.prototype.checkWeight = function (weight) {\n        return weight;\n    };\n    return AI013103decoder;\n}(AI013x0xDecoder));\nexport default AI013103decoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI013x0xDecoder from './AI013x0xDecoder';\nvar AI01320xDecoder = /** @class */ (function (_super) {\n    __extends(AI01320xDecoder, _super);\n    function AI01320xDecoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI01320xDecoder.prototype.addWeightCode = function (buf, weight) {\n        if (weight < 10000) {\n            buf.append('(3202)');\n        }\n        else {\n            buf.append('(3203)');\n        }\n    };\n    AI01320xDecoder.prototype.checkWeight = function (weight) {\n        if (weight < 10000) {\n            return weight;\n        }\n        return weight - 10000;\n    };\n    return AI01320xDecoder;\n}(AI013x0xDecoder));\nexport default AI01320xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI01decoder from './AI01decoder';\nimport NotFoundException from '../../../../NotFoundException';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI01392xDecoder = /** @class */ (function (_super) {\n    __extends(AI01392xDecoder, _super);\n    function AI01392xDecoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI01392xDecoder.prototype.parseInformation = function () {\n        if (this.getInformation().getSize() < AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE) {\n            throw new NotFoundException();\n        }\n        var buf = new StringBuilder();\n        this.encodeCompressedGtin(buf, AI01392xDecoder.HEADER_SIZE);\n        var lastAIdigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE, AI01392xDecoder.LAST_DIGIT_SIZE);\n        buf.append('(392');\n        buf.append(lastAIdigit);\n        buf.append(')');\n        var decodedInformation = this.getGeneralDecoder().decodeGeneralPurposeField(AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01392xDecoder.LAST_DIGIT_SIZE, null);\n        buf.append(decodedInformation.getNewString());\n        return buf.toString();\n    };\n    AI01392xDecoder.HEADER_SIZE = 5 + 1 + 2;\n    AI01392xDecoder.LAST_DIGIT_SIZE = 2;\n    return AI01392xDecoder;\n}(AI01decoder));\nexport default AI01392xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI01decoder from './AI01decoder';\nimport NotFoundException from '../../../../NotFoundException';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI01393xDecoder = /** @class */ (function (_super) {\n    __extends(AI01393xDecoder, _super);\n    function AI01393xDecoder(information) {\n        return _super.call(this, information) || this;\n    }\n    AI01393xDecoder.prototype.parseInformation = function () {\n        if (this.getInformation().getSize() < AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE) {\n            throw new NotFoundException();\n        }\n        var buf = new StringBuilder();\n        this.encodeCompressedGtin(buf, AI01393xDecoder.HEADER_SIZE);\n        var lastAIdigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE, AI01393xDecoder.LAST_DIGIT_SIZE);\n        buf.append('(393');\n        buf.append(lastAIdigit);\n        buf.append(')');\n        var firstThreeDigits = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01393xDecoder.LAST_DIGIT_SIZE, AI01393xDecoder.FIRST_THREE_DIGITS_SIZE);\n        if (firstThreeDigits / 100 == 0) {\n            buf.append('0');\n        }\n        if (firstThreeDigits / 10 == 0) {\n            buf.append('0');\n        }\n        buf.append(firstThreeDigits);\n        var generalInformation = this.getGeneralDecoder().decodeGeneralPurposeField(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01393xDecoder.LAST_DIGIT_SIZE + AI01393xDecoder.FIRST_THREE_DIGITS_SIZE, null);\n        buf.append(generalInformation.getNewString());\n        return buf.toString();\n    };\n    AI01393xDecoder.HEADER_SIZE = 5 + 1 + 2;\n    AI01393xDecoder.LAST_DIGIT_SIZE = 2;\n    AI01393xDecoder.FIRST_THREE_DIGITS_SIZE = 10;\n    return AI01393xDecoder;\n}(AI01decoder));\nexport default AI01393xDecoder;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport AI01weightDecoder from './AI01weightDecoder';\nimport NotFoundException from '../../../../NotFoundException';\nimport StringBuilder from '../../../../util/StringBuilder';\nvar AI013x0x1xDecoder = /** @class */ (function (_super) {\n    __extends(AI013x0x1xDecoder, _super);\n    function AI013x0x1xDecoder(information, firstAIdigits, dateCode) {\n        var _this = _super.call(this, information) || this;\n        _this.dateCode = dateCode;\n        _this.firstAIdigits = firstAIdigits;\n        return _this;\n    }\n    AI013x0x1xDecoder.prototype.parseInformation = function () {\n        if (this.getInformation().getSize() != AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE + AI013x0x1xDecoder.WEIGHT_SIZE + AI013x0x1xDecoder.DATE_SIZE) {\n            throw new NotFoundException();\n        }\n        var buf = new StringBuilder();\n        this.encodeCompressedGtin(buf, AI013x0x1xDecoder.HEADER_SIZE);\n        this.encodeCompressedWeight(buf, AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE, AI013x0x1xDecoder.WEIGHT_SIZE);\n        this.encodeCompressedDate(buf, AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE + AI013x0x1xDecoder.WEIGHT_SIZE);\n        return buf.toString();\n    };\n    AI013x0x1xDecoder.prototype.encodeCompressedDate = function (buf, currentPos) {\n        var numericDate = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, AI013x0x1xDecoder.DATE_SIZE);\n        if (numericDate == 38400) {\n            return;\n        }\n        buf.append('(');\n        buf.append(this.dateCode);\n        buf.append(')');\n        var day = numericDate % 32;\n        numericDate /= 32;\n        var month = numericDate % 12 + 1;\n        numericDate /= 12;\n        var year = numericDate;\n        if (year / 10 == 0) {\n            buf.append('0');\n        }\n        buf.append(year);\n        if (month / 10 == 0) {\n            buf.append('0');\n        }\n        buf.append(month);\n        if (day / 10 == 0) {\n            buf.append('0');\n        }\n        buf.append(day);\n    };\n    AI013x0x1xDecoder.prototype.addWeightCode = function (buf, weight) {\n        buf.append('(');\n        buf.append(this.firstAIdigits);\n        buf.append(weight / 100000);\n        buf.append(')');\n    };\n    AI013x0x1xDecoder.prototype.checkWeight = function (weight) {\n        return weight % 100000;\n    };\n    AI013x0x1xDecoder.HEADER_SIZE = 7 + 1;\n    AI013x0x1xDecoder.WEIGHT_SIZE = 20;\n    AI013x0x1xDecoder.DATE_SIZE = 16;\n    return AI013x0x1xDecoder;\n}(AI01weightDecoder));\nexport default AI013x0x1xDecoder;\n","var ExpandedPair = /** @class */ (function () {\n    function ExpandedPair(leftChar, rightChar, finderPatter, mayBeLast) {\n        this.leftchar = leftChar;\n        this.rightchar = rightChar;\n        this.finderpattern = finderPatter;\n        this.maybeLast = mayBeLast;\n    }\n    ExpandedPair.prototype.mayBeLast = function () {\n        return this.maybeLast;\n    };\n    ExpandedPair.prototype.getLeftChar = function () {\n        return this.leftchar;\n    };\n    ExpandedPair.prototype.getRightChar = function () {\n        return this.rightchar;\n    };\n    ExpandedPair.prototype.getFinderPattern = function () {\n        return this.finderpattern;\n    };\n    ExpandedPair.prototype.mustBeLast = function () {\n        return this.rightchar == null;\n    };\n    ExpandedPair.prototype.toString = function () {\n        return '[ ' + this.leftchar + ', ' + this.rightchar + ' : ' + (this.finderpattern == null ? 'null' : this.finderpattern.getValue()) + ' ]';\n    };\n    ExpandedPair.equals = function (o1, o2) {\n        if (!(o1 instanceof ExpandedPair)) {\n            return false;\n        }\n        return ExpandedPair.equalsOrNull(o1.leftchar, o2.leftchar) &&\n            ExpandedPair.equalsOrNull(o1.rightchar, o2.rightchar) &&\n            ExpandedPair.equalsOrNull(o1.finderpattern, o2.finderpattern);\n    };\n    ExpandedPair.equalsOrNull = function (o1, o2) {\n        return o1 === null ? o2 === null : ExpandedPair.equals(o1, o2);\n    };\n    ExpandedPair.prototype.hashCode = function () {\n        // return ExpandedPair.hashNotNull(leftChar) ^ hashNotNull(rightChar) ^ hashNotNull(finderPattern);\n        var value = this.leftchar.getValue() ^ this.rightchar.getValue() ^ this.finderpattern.getValue();\n        return value;\n    };\n    return ExpandedPair;\n}());\nexport default ExpandedPair;\n","import DecoderResult from '../../common/DecoderResult';\nimport BitSource from '../../common/BitSource';\nimport StringBuilder from '../../util/StringBuilder';\nimport StringEncoding from '../../util/StringEncoding';\nimport StringUtils from '../../common/StringUtils';\nimport FormatException from '../../FormatException';\nimport IllegalStateException from '../../IllegalStateException';\n/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Mode;\n(function (Mode) {\n    Mode[Mode[\"PAD_ENCODE\"] = 0] = \"PAD_ENCODE\";\n    Mode[Mode[\"ASCII_ENCODE\"] = 1] = \"ASCII_ENCODE\";\n    Mode[Mode[\"C40_ENCODE\"] = 2] = \"C40_ENCODE\";\n    Mode[Mode[\"TEXT_ENCODE\"] = 3] = \"TEXT_ENCODE\";\n    Mode[Mode[\"ANSIX12_ENCODE\"] = 4] = \"ANSIX12_ENCODE\";\n    Mode[Mode[\"EDIFACT_ENCODE\"] = 5] = \"EDIFACT_ENCODE\";\n    Mode[Mode[\"BASE256_ENCODE\"] = 6] = \"BASE256_ENCODE\";\n})(Mode || (Mode = {}));\n/**\n * <p>Data Matrix Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one Data Matrix Code. This class decodes the bits back into text.</p>\n *\n * <p>See ISO 16022:2006, 5.2.1 - 5.2.9.2</p>\n *\n * @author bbrown@google.com (Brian Brown)\n * @author Sean Owen\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n    function DecodedBitStreamParser() {\n    }\n    DecodedBitStreamParser.decode = function (bytes) {\n        var bits = new BitSource(bytes);\n        var result = new StringBuilder();\n        var resultTrailer = new StringBuilder();\n        var byteSegments = new Array();\n        var mode = Mode.ASCII_ENCODE;\n        do {\n            if (mode === Mode.ASCII_ENCODE) {\n                mode = this.decodeAsciiSegment(bits, result, resultTrailer);\n            }\n            else {\n                switch (mode) {\n                    case Mode.C40_ENCODE:\n                        this.decodeC40Segment(bits, result);\n                        break;\n                    case Mode.TEXT_ENCODE:\n                        this.decodeTextSegment(bits, result);\n                        break;\n                    case Mode.ANSIX12_ENCODE:\n                        this.decodeAnsiX12Segment(bits, result);\n                        break;\n                    case Mode.EDIFACT_ENCODE:\n                        this.decodeEdifactSegment(bits, result);\n                        break;\n                    case Mode.BASE256_ENCODE:\n                        this.decodeBase256Segment(bits, result, byteSegments);\n                        break;\n                    default:\n                        throw new FormatException();\n                }\n                mode = Mode.ASCII_ENCODE;\n            }\n        } while (mode !== Mode.PAD_ENCODE && bits.available() > 0);\n        if (resultTrailer.length() > 0) {\n            result.append(resultTrailer.toString());\n        }\n        return new DecoderResult(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, null);\n    };\n    /**\n     * See ISO 16022:2006, 5.2.3 and Annex C, Table C.2\n     */\n    DecodedBitStreamParser.decodeAsciiSegment = function (bits, result, resultTrailer) {\n        var upperShift = false;\n        do {\n            var oneByte = bits.readBits(8);\n            if (oneByte === 0) {\n                throw new FormatException();\n            }\n            else if (oneByte <= 128) { // ASCII data (ASCII value + 1)\n                if (upperShift) {\n                    oneByte += 128;\n                    // upperShift = false;\n                }\n                result.append(String.fromCharCode(oneByte - 1));\n                return Mode.ASCII_ENCODE;\n            }\n            else if (oneByte === 129) { // Pad\n                return Mode.PAD_ENCODE;\n            }\n            else if (oneByte <= 229) { // 2-digit data 00-99 (Numeric Value + 130)\n                var value = oneByte - 130;\n                if (value < 10) { // pad with '0' for single digit values\n                    result.append('0');\n                }\n                result.append('' + value);\n            }\n            else {\n                switch (oneByte) {\n                    case 230: // Latch to C40 encodation\n                        return Mode.C40_ENCODE;\n                    case 231: // Latch to Base 256 encodation\n                        return Mode.BASE256_ENCODE;\n                    case 232: // FNC1\n                        result.append(String.fromCharCode(29)); // translate as ASCII 29\n                        break;\n                    case 233: // Structured Append\n                    case 234: // Reader Programming\n                        // Ignore these symbols for now\n                        // throw ReaderException.getInstance();\n                        break;\n                    case 235: // Upper Shift (shift to Extended ASCII)\n                        upperShift = true;\n                        break;\n                    case 236: // 05 Macro\n                        result.append('[)>\\u001E05\\u001D');\n                        resultTrailer.insert(0, '\\u001E\\u0004');\n                        break;\n                    case 237: // 06 Macro\n                        result.append('[)>\\u001E06\\u001D');\n                        resultTrailer.insert(0, '\\u001E\\u0004');\n                        break;\n                    case 238: // Latch to ANSI X12 encodation\n                        return Mode.ANSIX12_ENCODE;\n                    case 239: // Latch to Text encodation\n                        return Mode.TEXT_ENCODE;\n                    case 240: // Latch to EDIFACT encodation\n                        return Mode.EDIFACT_ENCODE;\n                    case 241: // ECI Character\n                        // TODO(bbrown): I think we need to support ECI\n                        // throw ReaderException.getInstance();\n                        // Ignore this symbol for now\n                        break;\n                    default:\n                        // Not to be used in ASCII encodation\n                        // but work around encoders that end with 254, latch back to ASCII\n                        if (oneByte !== 254 || bits.available() !== 0) {\n                            throw new FormatException();\n                        }\n                        break;\n                }\n            }\n        } while (bits.available() > 0);\n        return Mode.ASCII_ENCODE;\n    };\n    /**\n     * See ISO 16022:2006, 5.2.5 and Annex C, Table C.1\n     */\n    DecodedBitStreamParser.decodeC40Segment = function (bits, result) {\n        // Three C40 values are encoded in a 16-bit value as\n        // (1600 * C1) + (40 * C2) + C3 + 1\n        // TODO(bbrown): The Upper Shift with C40 doesn't work in the 4 value scenario all the time\n        var upperShift = false;\n        var cValues = [];\n        var shift = 0;\n        do {\n            // If there is only one byte left then it will be encoded as ASCII\n            if (bits.available() === 8) {\n                return;\n            }\n            var firstByte = bits.readBits(8);\n            if (firstByte === 254) { // Unlatch codeword\n                return;\n            }\n            this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n            for (var i = 0; i < 3; i++) {\n                var cValue = cValues[i];\n                switch (shift) {\n                    case 0:\n                        if (cValue < 3) {\n                            shift = cValue + 1;\n                        }\n                        else if (cValue < this.C40_BASIC_SET_CHARS.length) {\n                            var c40char = this.C40_BASIC_SET_CHARS[cValue];\n                            if (upperShift) {\n                                result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n                                upperShift = false;\n                            }\n                            else {\n                                result.append(c40char);\n                            }\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                    case 1:\n                        if (upperShift) {\n                            result.append(String.fromCharCode(cValue + 128));\n                            upperShift = false;\n                        }\n                        else {\n                            result.append(String.fromCharCode(cValue));\n                        }\n                        shift = 0;\n                        break;\n                    case 2:\n                        if (cValue < this.C40_SHIFT2_SET_CHARS.length) {\n                            var c40char = this.C40_SHIFT2_SET_CHARS[cValue];\n                            if (upperShift) {\n                                result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n                                upperShift = false;\n                            }\n                            else {\n                                result.append(c40char);\n                            }\n                        }\n                        else {\n                            switch (cValue) {\n                                case 27: // FNC1\n                                    result.append(String.fromCharCode(29)); // translate as ASCII 29\n                                    break;\n                                case 30: // Upper Shift\n                                    upperShift = true;\n                                    break;\n                                default:\n                                    throw new FormatException();\n                            }\n                        }\n                        shift = 0;\n                        break;\n                    case 3:\n                        if (upperShift) {\n                            result.append(String.fromCharCode(cValue + 224));\n                            upperShift = false;\n                        }\n                        else {\n                            result.append(String.fromCharCode(cValue + 96));\n                        }\n                        shift = 0;\n                        break;\n                    default:\n                        throw new FormatException();\n                }\n            }\n        } while (bits.available() > 0);\n    };\n    /**\n     * See ISO 16022:2006, 5.2.6 and Annex C, Table C.2\n     */\n    DecodedBitStreamParser.decodeTextSegment = function (bits, result) {\n        // Three Text values are encoded in a 16-bit value as\n        // (1600 * C1) + (40 * C2) + C3 + 1\n        // TODO(bbrown): The Upper Shift with Text doesn't work in the 4 value scenario all the time\n        var upperShift = false;\n        var cValues = [];\n        var shift = 0;\n        do {\n            // If there is only one byte left then it will be encoded as ASCII\n            if (bits.available() === 8) {\n                return;\n            }\n            var firstByte = bits.readBits(8);\n            if (firstByte === 254) { // Unlatch codeword\n                return;\n            }\n            this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n            for (var i = 0; i < 3; i++) {\n                var cValue = cValues[i];\n                switch (shift) {\n                    case 0:\n                        if (cValue < 3) {\n                            shift = cValue + 1;\n                        }\n                        else if (cValue < this.TEXT_BASIC_SET_CHARS.length) {\n                            var textChar = this.TEXT_BASIC_SET_CHARS[cValue];\n                            if (upperShift) {\n                                result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n                                upperShift = false;\n                            }\n                            else {\n                                result.append(textChar);\n                            }\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                    case 1:\n                        if (upperShift) {\n                            result.append(String.fromCharCode(cValue + 128));\n                            upperShift = false;\n                        }\n                        else {\n                            result.append(String.fromCharCode(cValue));\n                        }\n                        shift = 0;\n                        break;\n                    case 2:\n                        // Shift 2 for Text is the same encoding as C40\n                        if (cValue < this.TEXT_SHIFT2_SET_CHARS.length) {\n                            var textChar = this.TEXT_SHIFT2_SET_CHARS[cValue];\n                            if (upperShift) {\n                                result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n                                upperShift = false;\n                            }\n                            else {\n                                result.append(textChar);\n                            }\n                        }\n                        else {\n                            switch (cValue) {\n                                case 27: // FNC1\n                                    result.append(String.fromCharCode(29)); // translate as ASCII 29\n                                    break;\n                                case 30: // Upper Shift\n                                    upperShift = true;\n                                    break;\n                                default:\n                                    throw new FormatException();\n                            }\n                        }\n                        shift = 0;\n                        break;\n                    case 3:\n                        if (cValue < this.TEXT_SHIFT3_SET_CHARS.length) {\n                            var textChar = this.TEXT_SHIFT3_SET_CHARS[cValue];\n                            if (upperShift) {\n                                result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n                                upperShift = false;\n                            }\n                            else {\n                                result.append(textChar);\n                            }\n                            shift = 0;\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                    default:\n                        throw new FormatException();\n                }\n            }\n        } while (bits.available() > 0);\n    };\n    /**\n     * See ISO 16022:2006, 5.2.7\n     */\n    DecodedBitStreamParser.decodeAnsiX12Segment = function (bits, result) {\n        // Three ANSI X12 values are encoded in a 16-bit value as\n        // (1600 * C1) + (40 * C2) + C3 + 1\n        var cValues = [];\n        do {\n            // If there is only one byte left then it will be encoded as ASCII\n            if (bits.available() === 8) {\n                return;\n            }\n            var firstByte = bits.readBits(8);\n            if (firstByte === 254) { // Unlatch codeword\n                return;\n            }\n            this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n            for (var i = 0; i < 3; i++) {\n                var cValue = cValues[i];\n                switch (cValue) {\n                    case 0: // X12 segment terminator <CR>\n                        result.append('\\r');\n                        break;\n                    case 1: // X12 segment separator *\n                        result.append('*');\n                        break;\n                    case 2: // X12 sub-element separator >\n                        result.append('>');\n                        break;\n                    case 3: // space\n                        result.append(' ');\n                        break;\n                    default:\n                        if (cValue < 14) { // 0 - 9\n                            result.append(String.fromCharCode(cValue + 44));\n                        }\n                        else if (cValue < 40) { // A - Z\n                            result.append(String.fromCharCode(cValue + 51));\n                        }\n                        else {\n                            throw new FormatException();\n                        }\n                        break;\n                }\n            }\n        } while (bits.available() > 0);\n    };\n    DecodedBitStreamParser.parseTwoBytes = function (firstByte, secondByte, result) {\n        var fullBitValue = (firstByte << 8) + secondByte - 1;\n        var temp = Math.floor(fullBitValue / 1600);\n        result[0] = temp;\n        fullBitValue -= temp * 1600;\n        temp = Math.floor(fullBitValue / 40);\n        result[1] = temp;\n        result[2] = fullBitValue - temp * 40;\n    };\n    /**\n     * See ISO 16022:2006, 5.2.8 and Annex C Table C.3\n     */\n    DecodedBitStreamParser.decodeEdifactSegment = function (bits, result) {\n        do {\n            // If there is only two or less bytes left then it will be encoded as ASCII\n            if (bits.available() <= 16) {\n                return;\n            }\n            for (var i = 0; i < 4; i++) {\n                var edifactValue = bits.readBits(6);\n                // Check for the unlatch character\n                if (edifactValue === 0x1F) { // 011111\n                    // Read rest of byte, which should be 0, and stop\n                    var bitsLeft = 8 - bits.getBitOffset();\n                    if (bitsLeft !== 8) {\n                        bits.readBits(bitsLeft);\n                    }\n                    return;\n                }\n                if ((edifactValue & 0x20) === 0) { // no 1 in the leading (6th) bit\n                    edifactValue |= 0x40; // Add a leading 01 to the 6 bit binary value\n                }\n                result.append(String.fromCharCode(edifactValue));\n            }\n        } while (bits.available() > 0);\n    };\n    /**\n     * See ISO 16022:2006, 5.2.9 and Annex B, B.2\n     */\n    DecodedBitStreamParser.decodeBase256Segment = function (bits, result, byteSegments) {\n        // Figure out how long the Base 256 Segment is.\n        var codewordPosition = 1 + bits.getByteOffset(); // position is 1-indexed\n        var d1 = this.unrandomize255State(bits.readBits(8), codewordPosition++);\n        var count;\n        if (d1 === 0) { // Read the remainder of the symbol\n            count = bits.available() / 8 | 0;\n        }\n        else if (d1 < 250) {\n            count = d1;\n        }\n        else {\n            count = 250 * (d1 - 249) + this.unrandomize255State(bits.readBits(8), codewordPosition++);\n        }\n        // We're seeing NegativeArraySizeException errors from users.\n        if (count < 0) {\n            throw new FormatException();\n        }\n        var bytes = new Uint8Array(count);\n        for (var i = 0; i < count; i++) {\n            // Have seen this particular error in the wild, such as at\n            // http://www.bcgen.com/demo/IDAutomationStreamingDataMatrix.aspx?MODE=3&D=Fred&PFMT=3&PT=F&X=0.3&O=0&LM=0.2\n            if (bits.available() < 8) {\n                throw new FormatException();\n            }\n            bytes[i] = this.unrandomize255State(bits.readBits(8), codewordPosition++);\n        }\n        byteSegments.push(bytes);\n        try {\n            result.append(StringEncoding.decode(bytes, StringUtils.ISO88591));\n        }\n        catch (uee) {\n            throw new IllegalStateException('Platform does not support required encoding: ' + uee.message);\n        }\n    };\n    /**\n     * See ISO 16022:2006, Annex B, B.2\n     */\n    DecodedBitStreamParser.unrandomize255State = function (randomizedBase256Codeword, base256CodewordPosition) {\n        var pseudoRandomNumber = ((149 * base256CodewordPosition) % 255) + 1;\n        var tempVariable = randomizedBase256Codeword - pseudoRandomNumber;\n        return tempVariable >= 0 ? tempVariable : tempVariable + 256;\n    };\n    /**\n     * See ISO 16022:2006, Annex C Table C.1\n     * The C40 Basic Character Set (*'s used for placeholders for the shift values)\n     */\n    DecodedBitStreamParser.C40_BASIC_SET_CHARS = [\n        '*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n        'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n    ];\n    DecodedBitStreamParser.C40_SHIFT2_SET_CHARS = [\n        '!', '\"', '#', '$', '%', '&', '\\'', '(', ')', '*', '+', ',', '-', '.',\n        '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\\\', ']', '^', '_'\n    ];\n    /**\n     * See ISO 16022:2006, Annex C Table C.2\n     * The Text Basic Character Set (*'s used for placeholders for the shift values)\n     */\n    DecodedBitStreamParser.TEXT_BASIC_SET_CHARS = [\n        '*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',\n        'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'\n    ];\n    // Shift 2 for Text is the same encoding as C40\n    DecodedBitStreamParser.TEXT_SHIFT2_SET_CHARS = DecodedBitStreamParser.C40_SHIFT2_SET_CHARS;\n    DecodedBitStreamParser.TEXT_SHIFT3_SET_CHARS = [\n        '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n        'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', String.fromCharCode(127)\n    ];\n    return DecodedBitStreamParser;\n}());\nexport default DecodedBitStreamParser;\n","var ExpandedRow = /** @class */ (function () {\n    function ExpandedRow(pairs, rowNumber, wasReversed) {\n        this.pairs = pairs;\n        this.rowNumber = rowNumber;\n        this.wasReversed = wasReversed;\n    }\n    ExpandedRow.prototype.getPairs = function () {\n        return this.pairs;\n    };\n    ExpandedRow.prototype.getRowNumber = function () {\n        return this.rowNumber;\n    };\n    ExpandedRow.prototype.isReversed = function () {\n        return this.wasReversed;\n    };\n    // check implementation\n    ExpandedRow.prototype.isEquivalent = function (otherPairs) {\n        return this.checkEqualitity(this, otherPairs);\n    };\n    // @Override\n    ExpandedRow.prototype.toString = function () {\n        return '{ ' + this.pairs + ' }';\n    };\n    /**\n     * Two rows are equal if they contain the same pairs in the same order.\n     */\n    // @Override\n    // check implementation\n    ExpandedRow.prototype.equals = function (o1, o2) {\n        if (!(o1 instanceof ExpandedRow)) {\n            return false;\n        }\n        return this.checkEqualitity(o1, o2) && o1.wasReversed === o2.wasReversed;\n    };\n    ExpandedRow.prototype.checkEqualitity = function (pair1, pair2) {\n        if (!pair1 || !pair2)\n            return;\n        var result;\n        pair1.forEach(function (e1, i) {\n            pair2.forEach(function (e2) {\n                if (e1.getLeftChar().getValue() === e2.getLeftChar().getValue() && e1.getRightChar().getValue() === e2.getRightChar().getValue() && e1.getFinderPatter().getValue() === e2.getFinderPatter().getValue()) {\n                    result = true;\n                }\n            });\n        });\n        return result;\n    };\n    return ExpandedRow;\n}());\nexport default ExpandedRow;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BarcodeFormat from '../../../BarcodeFormat';\nimport MathUtils from '../../../common/detector/MathUtils';\n// import FormatException from '../../../FormatException';\nimport NotFoundException from '../../../NotFoundException';\nimport Result from '../../../Result';\nimport System from '../../../util/System';\nimport AbstractRSSReader from '../../rss/AbstractRSSReader';\nimport DataCharacter from '../../rss/DataCharacter';\nimport FinderPattern from '../../rss/FinderPattern';\nimport RSSUtils from '../../rss/RSSUtils';\nimport BitArrayBuilder from './BitArrayBuilder';\nimport { createDecoder } from './decoders/AbstractExpandedDecoderComplement';\nimport ExpandedPair from './ExpandedPair';\nimport ExpandedRow from './ExpandedRow';\n// import java.util.ArrayList;\n// import java.util.Iterator;\n// import java.util.List;\n// import java.util.Map;\n// import java.util.Collections;\n/** @experimental */\nvar RSSExpandedReader = /** @class */ (function (_super) {\n    __extends(RSSExpandedReader, _super);\n    function RSSExpandedReader() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.pairs = new Array(RSSExpandedReader.MAX_PAIRS);\n        _this.rows = new Array();\n        _this.startEnd = [2];\n        return _this;\n    }\n    RSSExpandedReader.prototype.decodeRow = function (rowNumber, row, hints) {\n        // Rows can start with even pattern in case in prev rows there where odd number of patters.\n        // So lets try twice\n        // this.pairs.clear();\n        this.pairs.length = 0;\n        this.startFromEven = false;\n        try {\n            return RSSExpandedReader.constructResult(this.decodeRow2pairs(rowNumber, row));\n        }\n        catch (e) {\n            // OK\n            // console.log(e);\n        }\n        this.pairs.length = 0;\n        this.startFromEven = true;\n        return RSSExpandedReader.constructResult(this.decodeRow2pairs(rowNumber, row));\n    };\n    RSSExpandedReader.prototype.reset = function () {\n        this.pairs.length = 0;\n        this.rows.length = 0;\n    };\n    // Not private for testing\n    RSSExpandedReader.prototype.decodeRow2pairs = function (rowNumber, row) {\n        var done = false;\n        while (!done) {\n            try {\n                this.pairs.push(this.retrieveNextPair(row, this.pairs, rowNumber));\n            }\n            catch (error) {\n                if (error instanceof NotFoundException) {\n                    if (!this.pairs.length) {\n                        throw new NotFoundException();\n                    }\n                    // exit this loop when retrieveNextPair() fails and throws\n                    done = true;\n                }\n            }\n        }\n        // TODO: verify sequence of finder patterns as in checkPairSequence()\n        if (this.checkChecksum()) {\n            return this.pairs;\n        }\n        var tryStackedDecode;\n        if (this.rows.length) {\n            tryStackedDecode = true;\n        }\n        else {\n            tryStackedDecode = false;\n        }\n        // let tryStackedDecode = !this.rows.isEmpty();\n        this.storeRow(rowNumber, false); // TODO: deal with reversed rows\n        if (tryStackedDecode) {\n            // When the image is 180-rotated, then rows are sorted in wrong direction.\n            // Try twice with both the directions.\n            var ps = this.checkRowsBoolean(false);\n            if (ps != null) {\n                return ps;\n            }\n            ps = this.checkRowsBoolean(true);\n            if (ps != null) {\n                return ps;\n            }\n        }\n        throw new NotFoundException();\n    };\n    // Need to Verify\n    RSSExpandedReader.prototype.checkRowsBoolean = function (reverse) {\n        // Limit number of rows we are checking\n        // We use recursive algorithm with pure complexity and don't want it to take forever\n        // Stacked barcode can have up to 11 rows, so 25 seems reasonable enough\n        if (this.rows.length > 25) {\n            this.rows.length = 0; // We will never have a chance to get result, so clear it\n            return null;\n        }\n        this.pairs.length = 0;\n        if (reverse) {\n            this.rows = this.rows.reverse();\n            // Collections.reverse(this.rows);\n        }\n        var ps = null;\n        try {\n            ps = this.checkRows(new Array(), 0);\n        }\n        catch (e) {\n            // OK\n            console.log(e);\n        }\n        if (reverse) {\n            this.rows = this.rows.reverse();\n            // Collections.reverse(this.rows);\n        }\n        return ps;\n    };\n    // Try to construct a valid rows sequence\n    // Recursion is used to implement backtracking\n    RSSExpandedReader.prototype.checkRows = function (collectedRows, currentRow) {\n        var e_1, _a;\n        for (var i = currentRow; i < this.rows.length; i++) {\n            var row = this.rows[i];\n            this.pairs.length = 0;\n            try {\n                for (var collectedRows_1 = (e_1 = void 0, __values(collectedRows)), collectedRows_1_1 = collectedRows_1.next(); !collectedRows_1_1.done; collectedRows_1_1 = collectedRows_1.next()) {\n                    var collectedRow = collectedRows_1_1.value;\n                    this.pairs.push(collectedRow.getPairs());\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (collectedRows_1_1 && !collectedRows_1_1.done && (_a = collectedRows_1.return)) _a.call(collectedRows_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            this.pairs.push(row.getPairs());\n            if (!RSSExpandedReader.isValidSequence(this.pairs)) {\n                continue;\n            }\n            if (this.checkChecksum()) {\n                return this.pairs;\n            }\n            var rs = new Array(collectedRows);\n            rs.push(row);\n            try {\n                // Recursion: try to add more rows\n                return this.checkRows(rs, i + 1);\n            }\n            catch (e) {\n                // We failed, try the next candidate\n                console.log(e);\n            }\n        }\n        throw new NotFoundException();\n    };\n    // Whether the pairs form a valid find pattern sequence,\n    // either complete or a prefix\n    RSSExpandedReader.isValidSequence = function (pairs) {\n        var e_2, _a;\n        try {\n            for (var _b = __values(RSSExpandedReader.FINDER_PATTERN_SEQUENCES), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var sequence = _c.value;\n                if (pairs.length > sequence.length) {\n                    continue;\n                }\n                var stop_1 = true;\n                for (var j = 0; j < pairs.length; j++) {\n                    if (pairs[j].getFinderPattern().getValue() != sequence[j]) {\n                        stop_1 = false;\n                        break;\n                    }\n                }\n                if (stop_1) {\n                    return true;\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        return false;\n    };\n    RSSExpandedReader.prototype.storeRow = function (rowNumber, wasReversed) {\n        // Discard if duplicate above or below; otherwise insert in order by row number.\n        var insertPos = 0;\n        var prevIsSame = false;\n        var nextIsSame = false;\n        while (insertPos < this.rows.length) {\n            var erow = this.rows[insertPos];\n            if (erow.getRowNumber() > rowNumber) {\n                nextIsSame = erow.isEquivalent(this.pairs);\n                break;\n            }\n            prevIsSame = erow.isEquivalent(this.pairs);\n            insertPos++;\n        }\n        if (nextIsSame || prevIsSame) {\n            return;\n        }\n        // When the row was partially decoded (e.g. 2 pairs found instead of 3),\n        // it will prevent us from detecting the barcode.\n        // Try to merge partial rows\n        // Check whether the row is part of an allready detected row\n        if (RSSExpandedReader.isPartialRow(this.pairs, this.rows)) {\n            return;\n        }\n        this.rows.push(insertPos, new ExpandedRow(this.pairs, rowNumber, wasReversed));\n        this.removePartialRows(this.pairs, this.rows);\n    };\n    // Remove all the rows that contains only specified pairs\n    RSSExpandedReader.prototype.removePartialRows = function (pairs, rows) {\n        var e_3, _a, e_4, _b, e_5, _c;\n        try {\n            // for (Iterator<ExpandedRow> iterator = rows.iterator(); iterator.hasNext();) {\n            //   ExpandedRow r = iterator.next();\n            //   if (r.getPairs().size() == pairs.size()) {\n            //     continue;\n            //   }\n            //   boolean allFound = true;\n            //   for (ExpandedPair p : r.getPairs()) {\n            //     boolean found = false;\n            //     for (ExpandedPair pp : pairs) {\n            //       if (p.equals(pp)) {\n            //         found = true;\n            //         break;\n            //       }\n            //     }\n            //     if (!found) {\n            //       allFound = false;\n            //       break;\n            //     }\n            //   }\n            //   if (allFound) {\n            //     // 'pairs' contains all the pairs from the row 'r'\n            //     iterator.remove();\n            //   }\n            // }\n            for (var rows_1 = __values(rows), rows_1_1 = rows_1.next(); !rows_1_1.done; rows_1_1 = rows_1.next()) {\n                var row = rows_1_1.value;\n                if (row.getPairs().length === pairs.length) {\n                    continue;\n                }\n                var allFound = true;\n                try {\n                    for (var _d = (e_4 = void 0, __values(row.getPairs())), _e = _d.next(); !_e.done; _e = _d.next()) {\n                        var p = _e.value;\n                        var found = false;\n                        try {\n                            for (var pairs_1 = (e_5 = void 0, __values(pairs)), pairs_1_1 = pairs_1.next(); !pairs_1_1.done; pairs_1_1 = pairs_1.next()) {\n                                var pp = pairs_1_1.value;\n                                if (ExpandedPair.equals(p, pp)) {\n                                    found = true;\n                                    break;\n                                }\n                            }\n                        }\n                        catch (e_5_1) { e_5 = { error: e_5_1 }; }\n                        finally {\n                            try {\n                                if (pairs_1_1 && !pairs_1_1.done && (_c = pairs_1.return)) _c.call(pairs_1);\n                            }\n                            finally { if (e_5) throw e_5.error; }\n                        }\n                        if (!found) {\n                            allFound = false;\n                        }\n                    }\n                }\n                catch (e_4_1) { e_4 = { error: e_4_1 }; }\n                finally {\n                    try {\n                        if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n                    }\n                    finally { if (e_4) throw e_4.error; }\n                }\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (rows_1_1 && !rows_1_1.done && (_a = rows_1.return)) _a.call(rows_1);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n    };\n    // Returns true when one of the rows already contains all the pairs\n    RSSExpandedReader.isPartialRow = function (pairs, rows) {\n        var e_6, _a, e_7, _b, e_8, _c;\n        try {\n            for (var rows_2 = __values(rows), rows_2_1 = rows_2.next(); !rows_2_1.done; rows_2_1 = rows_2.next()) {\n                var r = rows_2_1.value;\n                var allFound = true;\n                try {\n                    for (var pairs_2 = (e_7 = void 0, __values(pairs)), pairs_2_1 = pairs_2.next(); !pairs_2_1.done; pairs_2_1 = pairs_2.next()) {\n                        var p = pairs_2_1.value;\n                        var found = false;\n                        try {\n                            for (var _d = (e_8 = void 0, __values(r.getPairs())), _e = _d.next(); !_e.done; _e = _d.next()) {\n                                var pp = _e.value;\n                                if (p.equals(pp)) {\n                                    found = true;\n                                    break;\n                                }\n                            }\n                        }\n                        catch (e_8_1) { e_8 = { error: e_8_1 }; }\n                        finally {\n                            try {\n                                if (_e && !_e.done && (_c = _d.return)) _c.call(_d);\n                            }\n                            finally { if (e_8) throw e_8.error; }\n                        }\n                        if (!found) {\n                            allFound = false;\n                            break;\n                        }\n                    }\n                }\n                catch (e_7_1) { e_7 = { error: e_7_1 }; }\n                finally {\n                    try {\n                        if (pairs_2_1 && !pairs_2_1.done && (_b = pairs_2.return)) _b.call(pairs_2);\n                    }\n                    finally { if (e_7) throw e_7.error; }\n                }\n                if (allFound) {\n                    // the row 'r' contain all the pairs from 'pairs'\n                    return true;\n                }\n            }\n        }\n        catch (e_6_1) { e_6 = { error: e_6_1 }; }\n        finally {\n            try {\n                if (rows_2_1 && !rows_2_1.done && (_a = rows_2.return)) _a.call(rows_2);\n            }\n            finally { if (e_6) throw e_6.error; }\n        }\n        return false;\n    };\n    // Only used for unit testing\n    RSSExpandedReader.prototype.getRows = function () {\n        return this.rows;\n    };\n    // Not private for unit testing\n    RSSExpandedReader.constructResult = function (pairs) {\n        var binary = BitArrayBuilder.buildBitArray(pairs);\n        var decoder = createDecoder(binary);\n        var resultingString = decoder.parseInformation();\n        var firstPoints = pairs[0].getFinderPattern().getResultPoints();\n        var lastPoints = pairs[pairs.length - 1].getFinderPattern().getResultPoints();\n        var points = [firstPoints[0], firstPoints[1], lastPoints[0], lastPoints[1]];\n        return new Result(resultingString, null, null, points, BarcodeFormat.RSS_EXPANDED, null);\n    };\n    RSSExpandedReader.prototype.checkChecksum = function () {\n        var firstPair = this.pairs.get(0);\n        var checkCharacter = firstPair.getLeftChar();\n        var firstCharacter = firstPair.getRightChar();\n        if (firstCharacter == null) {\n            return false;\n        }\n        var checksum = firstCharacter.getChecksumPortion();\n        var s = 2;\n        for (var i = 1; i < this.pairs.size(); ++i) {\n            var currentPair = this.pairs.get(i);\n            checksum += currentPair.getLeftChar().getChecksumPortion();\n            s++;\n            var currentRightChar = currentPair.getRightChar();\n            if (currentRightChar != null) {\n                checksum += currentRightChar.getChecksumPortion();\n                s++;\n            }\n        }\n        checksum %= 211;\n        var checkCharacterValue = 211 * (s - 4) + checksum;\n        return checkCharacterValue == checkCharacter.getValue();\n    };\n    RSSExpandedReader.getNextSecondBar = function (row, initialPos) {\n        var currentPos;\n        if (row.get(initialPos)) {\n            currentPos = row.getNextUnset(initialPos);\n            currentPos = row.getNextSet(currentPos);\n        }\n        else {\n            currentPos = row.getNextSet(initialPos);\n            currentPos = row.getNextUnset(currentPos);\n        }\n        return currentPos;\n    };\n    // not private for testing\n    RSSExpandedReader.prototype.retrieveNextPair = function (row, previousPairs, rowNumber) {\n        var isOddPattern = previousPairs.length % 2 == 0;\n        if (this.startFromEven) {\n            isOddPattern = !isOddPattern;\n        }\n        var pattern;\n        var keepFinding = true;\n        var forcedOffset = -1;\n        do {\n            this.findNextPair(row, previousPairs, forcedOffset);\n            pattern = this.parseFoundFinderPattern(row, rowNumber, isOddPattern);\n            if (pattern == null) {\n                forcedOffset = RSSExpandedReader.getNextSecondBar(row, this.startEnd[0]);\n            }\n            else {\n                keepFinding = false;\n            }\n        } while (keepFinding);\n        // When stacked symbol is split over multiple rows, there's no way to guess if this pair can be last or not.\n        // boolean mayBeLast = checkPairSequence(previousPairs, pattern);\n        var leftChar = this.decodeDataCharacter(row, pattern, isOddPattern, true);\n        if (!this.isEmptyPair(previousPairs) && previousPairs[previousPairs.length - 1].mustBeLast()) {\n            throw new NotFoundException();\n        }\n        var rightChar;\n        try {\n            rightChar = this.decodeDataCharacter(row, pattern, isOddPattern, false);\n        }\n        catch (e) {\n            rightChar = null;\n            console.log(e);\n        }\n        return new ExpandedPair(leftChar, rightChar, pattern, true);\n    };\n    RSSExpandedReader.prototype.isEmptyPair = function (pairs) {\n        if (pairs.length === 0) {\n            return true;\n        }\n        return false;\n    };\n    RSSExpandedReader.prototype.findNextPair = function (row, previousPairs, forcedOffset) {\n        var counters = this.getDecodeFinderCounters();\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var width = row.getSize();\n        var rowOffset;\n        if (forcedOffset >= 0) {\n            rowOffset = forcedOffset;\n        }\n        else if (this.isEmptyPair(previousPairs)) {\n            rowOffset = 0;\n        }\n        else {\n            var lastPair = previousPairs[previousPairs.length - 1];\n            rowOffset = lastPair.getFinderPattern().getStartEnd()[1];\n        }\n        var searchingEvenPair = previousPairs.length % 2 != 0;\n        if (this.startFromEven) {\n            searchingEvenPair = !searchingEvenPair;\n        }\n        var isWhite = false;\n        while (rowOffset < width) {\n            isWhite = !row.get(rowOffset);\n            if (!isWhite) {\n                break;\n            }\n            rowOffset++;\n        }\n        var counterPosition = 0;\n        var patternStart = rowOffset;\n        for (var x = rowOffset; x < width; x++) {\n            if (row.get(x) != isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition == 3) {\n                    if (searchingEvenPair) {\n                        RSSExpandedReader.reverseCounters(counters);\n                    }\n                    if (RSSExpandedReader.isFinderPattern(counters)) {\n                        this.startEnd[0] = patternStart;\n                        this.startEnd[1] = x;\n                        return;\n                    }\n                    if (searchingEvenPair) {\n                        RSSExpandedReader.reverseCounters(counters);\n                    }\n                    patternStart += counters[0] + counters[1];\n                    counters[0] = counters[2];\n                    counters[1] = counters[3];\n                    counters[2] = 0;\n                    counters[3] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        throw new NotFoundException();\n    };\n    RSSExpandedReader.reverseCounters = function (counters) {\n        var length = counters.length;\n        for (var i = 0; i < length / 2; ++i) {\n            var tmp = counters[i];\n            counters[i] = counters[length - i - 1];\n            counters[length - i - 1] = tmp;\n        }\n    };\n    RSSExpandedReader.prototype.parseFoundFinderPattern = function (row, rowNumber, oddPattern) {\n        // Actually we found elements 2-5.\n        var firstCounter;\n        var start;\n        var end;\n        if (oddPattern) {\n            // If pattern number is odd, we need to locate element 1 *before* the current block.\n            var firstElementStart = this.startEnd[0] - 1;\n            // Locate element 1\n            while (firstElementStart >= 0 && !row.get(firstElementStart)) {\n                firstElementStart--;\n            }\n            firstElementStart++;\n            firstCounter = this.startEnd[0] - firstElementStart;\n            start = firstElementStart;\n            end = this.startEnd[1];\n        }\n        else {\n            // If pattern number is even, the pattern is reversed, so we need to locate element 1 *after* the current block.\n            start = this.startEnd[0];\n            end = row.getNextUnset(this.startEnd[1] + 1);\n            firstCounter = end - this.startEnd[1];\n        }\n        // Make 'counters' hold 1-4\n        var counters = this.getDecodeFinderCounters();\n        System.arraycopy(counters, 0, counters, 1, counters.length - 1);\n        counters[0] = firstCounter;\n        var value;\n        try {\n            value = this.parseFinderValue(counters, RSSExpandedReader.FINDER_PATTERNS);\n        }\n        catch (e) {\n            return null;\n            console.log(e);\n        }\n        // return new FinderPattern(value, new int[] { start, end }, start, end, rowNumber});\n        return new FinderPattern(value, [start, end], start, end, rowNumber);\n    };\n    RSSExpandedReader.prototype.decodeDataCharacter = function (row, pattern, isOddPattern, leftChar) {\n        var counters = this.getDataCharacterCounters();\n        for (var x = 0; x < counters.length; x++) {\n            counters[x] = 0;\n        }\n        if (leftChar) {\n            RSSExpandedReader.recordPatternInReverse(row, pattern.getStartEnd()[0], counters);\n        }\n        else {\n            RSSExpandedReader.recordPattern(row, pattern.getStartEnd()[1], counters);\n            // reverse it\n            for (var i = 0, j = counters.length - 1; i < j; i++, j--) {\n                var temp = counters[i];\n                counters[i] = counters[j];\n                counters[j] = temp;\n            }\n        } // counters[] has the pixels of the module\n        var numModules = 17; // left and right data characters have all the same length\n        var elementWidth = MathUtils.sum(new Int32Array(counters)) / numModules;\n        // Sanity check: element width for pattern and the character should match\n        var expectedElementWidth = (pattern.getStartEnd()[1] - pattern.getStartEnd()[0]) / 15.0;\n        if (Math.abs(elementWidth - expectedElementWidth) / expectedElementWidth > 0.3) {\n            throw new NotFoundException();\n        }\n        var oddCounts = this.getOddCounts();\n        var evenCounts = this.getEvenCounts();\n        var oddRoundingErrors = this.getOddRoundingErrors();\n        var evenRoundingErrors = this.getEvenRoundingErrors();\n        for (var i = 0; i < counters.length; i++) {\n            var value_1 = 1.0 * counters[i] / elementWidth;\n            var count = value_1 + 0.5; // Round\n            if (count < 1) {\n                if (value_1 < 0.3) {\n                    throw new NotFoundException();\n                }\n                count = 1;\n            }\n            else if (count > 8) {\n                if (value_1 > 8.7) {\n                    throw new NotFoundException();\n                }\n                count = 8;\n            }\n            var offset = i / 2;\n            if ((i & 0x01) == 0) {\n                oddCounts[offset] = count;\n                oddRoundingErrors[offset] = value_1 - count;\n            }\n            else {\n                evenCounts[offset] = count;\n                evenRoundingErrors[offset] = value_1 - count;\n            }\n        }\n        this.adjustOddEvenCounts(numModules);\n        var weightRowNumber = 4 * pattern.getValue() + (isOddPattern ? 0 : 2) + (leftChar ? 0 : 1) - 1;\n        var oddSum = 0;\n        var oddChecksumPortion = 0;\n        for (var i = oddCounts.length - 1; i >= 0; i--) {\n            if (RSSExpandedReader.isNotA1left(pattern, isOddPattern, leftChar)) {\n                var weight = RSSExpandedReader.WEIGHTS[weightRowNumber][2 * i];\n                oddChecksumPortion += oddCounts[i] * weight;\n            }\n            oddSum += oddCounts[i];\n        }\n        var evenChecksumPortion = 0;\n        // int evenSum = 0;\n        for (var i = evenCounts.length - 1; i >= 0; i--) {\n            if (RSSExpandedReader.isNotA1left(pattern, isOddPattern, leftChar)) {\n                var weight = RSSExpandedReader.WEIGHTS[weightRowNumber][2 * i + 1];\n                evenChecksumPortion += evenCounts[i] * weight;\n            }\n            // evenSum += evenCounts[i];\n        }\n        var checksumPortion = oddChecksumPortion + evenChecksumPortion;\n        if ((oddSum & 0x01) != 0 || oddSum > 13 || oddSum < 4) {\n            throw new NotFoundException();\n        }\n        var group = (13 - oddSum) / 2;\n        var oddWidest = RSSExpandedReader.SYMBOL_WIDEST[group];\n        var evenWidest = 9 - oddWidest;\n        var vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true);\n        var vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false);\n        var tEven = RSSExpandedReader.EVEN_TOTAL_SUBSET[group];\n        var gSum = RSSExpandedReader.GSUM[group];\n        var value = vOdd * tEven + vEven + gSum;\n        return new DataCharacter(value, checksumPortion);\n    };\n    RSSExpandedReader.isNotA1left = function (pattern, isOddPattern, leftChar) {\n        // A1: pattern.getValue is 0 (A), and it's an oddPattern, and it is a left char\n        return !(pattern.getValue() == 0 && isOddPattern && leftChar);\n    };\n    RSSExpandedReader.prototype.adjustOddEvenCounts = function (numModules) {\n        var oddSum = MathUtils.sum(new Int32Array(this.getOddCounts()));\n        var evenSum = MathUtils.sum(new Int32Array(this.getEvenCounts()));\n        var incrementOdd = false;\n        var decrementOdd = false;\n        if (oddSum > 13) {\n            decrementOdd = true;\n        }\n        else if (oddSum < 4) {\n            incrementOdd = true;\n        }\n        var incrementEven = false;\n        var decrementEven = false;\n        if (evenSum > 13) {\n            decrementEven = true;\n        }\n        else if (evenSum < 4) {\n            incrementEven = true;\n        }\n        var mismatch = oddSum + evenSum - numModules;\n        var oddParityBad = (oddSum & 0x01) == 1;\n        var evenParityBad = (evenSum & 0x01) == 0;\n        if (mismatch == 1) {\n            if (oddParityBad) {\n                if (evenParityBad) {\n                    throw new NotFoundException();\n                }\n                decrementOdd = true;\n            }\n            else {\n                if (!evenParityBad) {\n                    throw new NotFoundException();\n                }\n                decrementEven = true;\n            }\n        }\n        else if (mismatch == -1) {\n            if (oddParityBad) {\n                if (evenParityBad) {\n                    throw new NotFoundException();\n                }\n                incrementOdd = true;\n            }\n            else {\n                if (!evenParityBad) {\n                    throw new NotFoundException();\n                }\n                incrementEven = true;\n            }\n        }\n        else if (mismatch == 0) {\n            if (oddParityBad) {\n                if (!evenParityBad) {\n                    throw new NotFoundException();\n                }\n                // Both bad\n                if (oddSum < evenSum) {\n                    incrementOdd = true;\n                    decrementEven = true;\n                }\n                else {\n                    decrementOdd = true;\n                    incrementEven = true;\n                }\n            }\n            else {\n                if (evenParityBad) {\n                    throw new NotFoundException();\n                }\n                // Nothing to do!\n            }\n        }\n        else {\n            throw new NotFoundException();\n        }\n        if (incrementOdd) {\n            if (decrementOdd) {\n                throw new NotFoundException();\n            }\n            RSSExpandedReader.increment(this.getOddCounts(), this.getOddRoundingErrors());\n        }\n        if (decrementOdd) {\n            RSSExpandedReader.decrement(this.getOddCounts(), this.getOddRoundingErrors());\n        }\n        if (incrementEven) {\n            if (decrementEven) {\n                throw new NotFoundException();\n            }\n            RSSExpandedReader.increment(this.getEvenCounts(), this.getOddRoundingErrors());\n        }\n        if (decrementEven) {\n            RSSExpandedReader.decrement(this.getEvenCounts(), this.getEvenRoundingErrors());\n        }\n    };\n    RSSExpandedReader.SYMBOL_WIDEST = [7, 5, 4, 3, 1];\n    RSSExpandedReader.EVEN_TOTAL_SUBSET = [4, 20, 52, 104, 204];\n    RSSExpandedReader.GSUM = [0, 348, 1388, 2948, 3988];\n    RSSExpandedReader.FINDER_PATTERNS = [\n        Int32Array.from([1, 8, 4, 1]),\n        Int32Array.from([3, 6, 4, 1]),\n        Int32Array.from([3, 4, 6, 1]),\n        Int32Array.from([3, 2, 8, 1]),\n        Int32Array.from([2, 6, 5, 1]),\n        Int32Array.from([2, 2, 9, 1]) // F\n    ];\n    RSSExpandedReader.WEIGHTS = [\n        [1, 3, 9, 27, 81, 32, 96, 77],\n        [20, 60, 180, 118, 143, 7, 21, 63],\n        [189, 145, 13, 39, 117, 140, 209, 205],\n        [193, 157, 49, 147, 19, 57, 171, 91],\n        [62, 186, 136, 197, 169, 85, 44, 132],\n        [185, 133, 188, 142, 4, 12, 36, 108],\n        [113, 128, 173, 97, 80, 29, 87, 50],\n        [150, 28, 84, 41, 123, 158, 52, 156],\n        [46, 138, 203, 187, 139, 206, 196, 166],\n        [76, 17, 51, 153, 37, 111, 122, 155],\n        [43, 129, 176, 106, 107, 110, 119, 146],\n        [16, 48, 144, 10, 30, 90, 59, 177],\n        [109, 116, 137, 200, 178, 112, 125, 164],\n        [70, 210, 208, 202, 184, 130, 179, 115],\n        [134, 191, 151, 31, 93, 68, 204, 190],\n        [148, 22, 66, 198, 172, 94, 71, 2],\n        [6, 18, 54, 162, 64, 192, 154, 40],\n        [120, 149, 25, 75, 14, 42, 126, 167],\n        [79, 26, 78, 23, 69, 207, 199, 175],\n        [103, 98, 83, 38, 114, 131, 182, 124],\n        [161, 61, 183, 127, 170, 88, 53, 159],\n        [55, 165, 73, 8, 24, 72, 5, 15],\n        [45, 135, 194, 160, 58, 174, 100, 89]\n    ];\n    RSSExpandedReader.FINDER_PAT_A = 0;\n    RSSExpandedReader.FINDER_PAT_B = 1;\n    RSSExpandedReader.FINDER_PAT_C = 2;\n    RSSExpandedReader.FINDER_PAT_D = 3;\n    RSSExpandedReader.FINDER_PAT_E = 4;\n    RSSExpandedReader.FINDER_PAT_F = 5;\n    RSSExpandedReader.FINDER_PATTERN_SEQUENCES = [\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_A],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_B],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_D],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_C],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_F],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_F, RSSExpandedReader.FINDER_PAT_F],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_D],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_E],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_F, RSSExpandedReader.FINDER_PAT_F],\n        [RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_A, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_B, RSSExpandedReader.FINDER_PAT_C, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_D, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_E, RSSExpandedReader.FINDER_PAT_F, RSSExpandedReader.FINDER_PAT_F],\n    ];\n    RSSExpandedReader.MAX_PAIRS = 11;\n    return RSSExpandedReader;\n}(AbstractRSSReader));\nexport default RSSExpandedReader;\n","import IllegalStateException from '../../../../IllegalStateException';\nimport GeneralAppIdDecoder from './GeneralAppIdDecoder';\nimport AI01AndOtherAIs from './AI01AndOtherAIs';\nimport AnyAIDecoder from './AnyAIDecoder';\nimport AI013103decoder from './AI013103decoder';\nimport AI01320xDecoder from './AI01320xDecoder';\nimport AI01392xDecoder from './AI01392xDecoder';\nimport AI01393xDecoder from './AI01393xDecoder';\nimport AI013x0x1xDecoder from './AI013x0x1xDecoder';\nexport function createDecoder(information) {\n    try {\n        if (information.get(1)) {\n            return new AI01AndOtherAIs(information);\n        }\n        if (!information.get(2)) {\n            return new AnyAIDecoder(information);\n        }\n        var fourBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 4);\n        switch (fourBitEncodationMethod) {\n            case 4: return new AI013103decoder(information);\n            case 5: return new AI01320xDecoder(information);\n        }\n        var fiveBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 5);\n        switch (fiveBitEncodationMethod) {\n            case 12: return new AI01392xDecoder(information);\n            case 13: return new AI01393xDecoder(information);\n        }\n        var sevenBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 7);\n        switch (sevenBitEncodationMethod) {\n            case 56: return new AI013x0x1xDecoder(information, '310', '11');\n            case 57: return new AI013x0x1xDecoder(information, '320', '11');\n            case 58: return new AI013x0x1xDecoder(information, '310', '13');\n            case 59: return new AI013x0x1xDecoder(information, '320', '13');\n            case 60: return new AI013x0x1xDecoder(information, '310', '15');\n            case 61: return new AI013x0x1xDecoder(information, '320', '15');\n            case 62: return new AI013x0x1xDecoder(information, '310', '17');\n            case 63: return new AI013x0x1xDecoder(information, '320', '17');\n        }\n    }\n    catch (e) {\n        console.log(e);\n        throw new IllegalStateException('unknown decoder: ' + information);\n    }\n}\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport DataCharacter from './DataCharacter';\nvar Pair = /** @class */ (function (_super) {\n    __extends(Pair, _super);\n    function Pair(value, checksumPortion, finderPattern) {\n        var _this = _super.call(this, value, checksumPortion) || this;\n        _this.count = 0;\n        _this.finderPattern = finderPattern;\n        return _this;\n    }\n    Pair.prototype.getFinderPattern = function () {\n        return this.finderPattern;\n    };\n    Pair.prototype.getCount = function () {\n        return this.count;\n    };\n    Pair.prototype.incrementCount = function () {\n        this.count++;\n    };\n    return Pair;\n}(DataCharacter));\nexport default Pair;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport AbstractRSSReader from './AbstractRSSReader';\nimport Pair from './Pair';\nimport Result from '../../Result';\nimport DecodeHintType from '../../DecodeHintType';\nimport NotFoundException from '../../NotFoundException';\nimport StringBuilder from '../../util/StringBuilder';\nimport BarcodeFormat from '../../BarcodeFormat';\nimport ResultPoint from '../../ResultPoint';\nimport FinderPattern from './FinderPattern';\nimport DataCharacter from './DataCharacter';\nimport MathUtils from '../../common/detector/MathUtils';\nimport RSSUtils from './RSSUtils';\nimport System from '../../util/System';\nimport OneDReader from '../OneDReader';\nvar RSS14Reader = /** @class */ (function (_super) {\n    __extends(RSS14Reader, _super);\n    function RSS14Reader() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.possibleLeftPairs = [];\n        _this.possibleRightPairs = [];\n        return _this;\n    }\n    RSS14Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n        var e_1, _a, e_2, _b;\n        var leftPair = this.decodePair(row, false, rowNumber, hints);\n        RSS14Reader.addOrTally(this.possibleLeftPairs, leftPair);\n        row.reverse();\n        var rightPair = this.decodePair(row, true, rowNumber, hints);\n        RSS14Reader.addOrTally(this.possibleRightPairs, rightPair);\n        row.reverse();\n        try {\n            for (var _c = __values(this.possibleLeftPairs), _d = _c.next(); !_d.done; _d = _c.next()) {\n                var left = _d.value;\n                if (left.getCount() > 1) {\n                    try {\n                        for (var _e = (e_2 = void 0, __values(this.possibleRightPairs)), _f = _e.next(); !_f.done; _f = _e.next()) {\n                            var right = _f.value;\n                            if (right.getCount() > 1 && RSS14Reader.checkChecksum(left, right)) {\n                                return RSS14Reader.constructResult(left, right);\n                            }\n                        }\n                    }\n                    catch (e_2_1) { e_2 = { error: e_2_1 }; }\n                    finally {\n                        try {\n                            if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n                        }\n                        finally { if (e_2) throw e_2.error; }\n                    }\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        throw new NotFoundException();\n    };\n    RSS14Reader.addOrTally = function (possiblePairs, pair) {\n        var e_3, _a;\n        if (pair == null) {\n            return;\n        }\n        var found = false;\n        try {\n            for (var possiblePairs_1 = __values(possiblePairs), possiblePairs_1_1 = possiblePairs_1.next(); !possiblePairs_1_1.done; possiblePairs_1_1 = possiblePairs_1.next()) {\n                var other = possiblePairs_1_1.value;\n                if (other.getValue() === pair.getValue()) {\n                    other.incrementCount();\n                    found = true;\n                    break;\n                }\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (possiblePairs_1_1 && !possiblePairs_1_1.done && (_a = possiblePairs_1.return)) _a.call(possiblePairs_1);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n        if (!found) {\n            possiblePairs.push(pair);\n        }\n    };\n    RSS14Reader.prototype.reset = function () {\n        this.possibleLeftPairs.length = 0;\n        this.possibleRightPairs.length = 0;\n    };\n    RSS14Reader.constructResult = function (leftPair, rightPair) {\n        var symbolValue = 4537077 * leftPair.getValue() + rightPair.getValue();\n        var text = new String(symbolValue).toString();\n        var buffer = new StringBuilder();\n        for (var i = 13 - text.length; i > 0; i--) {\n            buffer.append('0');\n        }\n        buffer.append(text);\n        var checkDigit = 0;\n        for (var i = 0; i < 13; i++) {\n            var digit = buffer.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n            checkDigit += ((i & 0x01) === 0) ? 3 * digit : digit;\n        }\n        checkDigit = 10 - (checkDigit % 10);\n        if (checkDigit === 10) {\n            checkDigit = 0;\n        }\n        buffer.append(checkDigit.toString());\n        var leftPoints = leftPair.getFinderPattern().getResultPoints();\n        var rightPoints = rightPair.getFinderPattern().getResultPoints();\n        return new Result(buffer.toString(), null, 0, [leftPoints[0], leftPoints[1], rightPoints[0], rightPoints[1]], BarcodeFormat.RSS_14, new Date().getTime());\n    };\n    RSS14Reader.checkChecksum = function (leftPair, rightPair) {\n        var checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79;\n        var targetCheckValue = 9 * leftPair.getFinderPattern().getValue() + rightPair.getFinderPattern().getValue();\n        if (targetCheckValue > 72) {\n            targetCheckValue--;\n        }\n        if (targetCheckValue > 8) {\n            targetCheckValue--;\n        }\n        return checkValue === targetCheckValue;\n    };\n    RSS14Reader.prototype.decodePair = function (row, right, rowNumber, hints) {\n        try {\n            var startEnd = this.findFinderPattern(row, right);\n            var pattern = this.parseFoundFinderPattern(row, rowNumber, right, startEnd);\n            var resultPointCallback = hints == null ? null : hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n            if (resultPointCallback != null) {\n                var center = (startEnd[0] + startEnd[1]) / 2.0;\n                if (right) {\n                    // row is actually reversed\n                    center = row.getSize() - 1 - center;\n                }\n                resultPointCallback.foundPossibleResultPoint(new ResultPoint(center, rowNumber));\n            }\n            var outside = this.decodeDataCharacter(row, pattern, true);\n            var inside = this.decodeDataCharacter(row, pattern, false);\n            return new Pair(1597 * outside.getValue() + inside.getValue(), outside.getChecksumPortion() + 4 * inside.getChecksumPortion(), pattern);\n        }\n        catch (err) {\n            return null;\n        }\n    };\n    RSS14Reader.prototype.decodeDataCharacter = function (row, pattern, outsideChar) {\n        var counters = this.getDataCharacterCounters();\n        for (var x = 0; x < counters.length; x++) {\n            counters[x] = 0;\n        }\n        if (outsideChar) {\n            OneDReader.recordPatternInReverse(row, pattern.getStartEnd()[0], counters);\n        }\n        else {\n            OneDReader.recordPattern(row, pattern.getStartEnd()[1] + 1, counters);\n            // reverse it\n            for (var i = 0, j = counters.length - 1; i < j; i++, j--) {\n                var temp = counters[i];\n                counters[i] = counters[j];\n                counters[j] = temp;\n            }\n        }\n        var numModules = outsideChar ? 16 : 15;\n        var elementWidth = MathUtils.sum(new Int32Array(counters)) / numModules;\n        var oddCounts = this.getOddCounts();\n        var evenCounts = this.getEvenCounts();\n        var oddRoundingErrors = this.getOddRoundingErrors();\n        var evenRoundingErrors = this.getEvenRoundingErrors();\n        for (var i = 0; i < counters.length; i++) {\n            var value = counters[i] / elementWidth;\n            var count = Math.floor(value + 0.5);\n            if (count < 1) {\n                count = 1;\n            }\n            else if (count > 8) {\n                count = 8;\n            }\n            var offset = Math.floor(i / 2);\n            if ((i & 0x01) === 0) {\n                oddCounts[offset] = count;\n                oddRoundingErrors[offset] = value - count;\n            }\n            else {\n                evenCounts[offset] = count;\n                evenRoundingErrors[offset] = value - count;\n            }\n        }\n        this.adjustOddEvenCounts(outsideChar, numModules);\n        var oddSum = 0;\n        var oddChecksumPortion = 0;\n        for (var i = oddCounts.length - 1; i >= 0; i--) {\n            oddChecksumPortion *= 9;\n            oddChecksumPortion += oddCounts[i];\n            oddSum += oddCounts[i];\n        }\n        var evenChecksumPortion = 0;\n        var evenSum = 0;\n        for (var i = evenCounts.length - 1; i >= 0; i--) {\n            evenChecksumPortion *= 9;\n            evenChecksumPortion += evenCounts[i];\n            evenSum += evenCounts[i];\n        }\n        var checksumPortion = oddChecksumPortion + 3 * evenChecksumPortion;\n        if (outsideChar) {\n            if ((oddSum & 0x01) !== 0 || oddSum > 12 || oddSum < 4) {\n                throw new NotFoundException();\n            }\n            var group = (12 - oddSum) / 2;\n            var oddWidest = RSS14Reader.OUTSIDE_ODD_WIDEST[group];\n            var evenWidest = 9 - oddWidest;\n            var vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, false);\n            var vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, true);\n            var tEven = RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET[group];\n            var gSum = RSS14Reader.OUTSIDE_GSUM[group];\n            return new DataCharacter(vOdd * tEven + vEven + gSum, checksumPortion);\n        }\n        else {\n            if ((evenSum & 0x01) !== 0 || evenSum > 10 || evenSum < 4) {\n                throw new NotFoundException();\n            }\n            var group = (10 - evenSum) / 2;\n            var oddWidest = RSS14Reader.INSIDE_ODD_WIDEST[group];\n            var evenWidest = 9 - oddWidest;\n            var vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true);\n            var vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false);\n            var tOdd = RSS14Reader.INSIDE_ODD_TOTAL_SUBSET[group];\n            var gSum = RSS14Reader.INSIDE_GSUM[group];\n            return new DataCharacter(vEven * tOdd + vOdd + gSum, checksumPortion);\n        }\n    };\n    RSS14Reader.prototype.findFinderPattern = function (row, rightFinderPattern) {\n        var counters = this.getDecodeFinderCounters();\n        counters[0] = 0;\n        counters[1] = 0;\n        counters[2] = 0;\n        counters[3] = 0;\n        var width = row.getSize();\n        var isWhite = false;\n        var rowOffset = 0;\n        while (rowOffset < width) {\n            isWhite = !row.get(rowOffset);\n            if (rightFinderPattern === isWhite) {\n                // Will encounter white first when searching for right finder pattern\n                break;\n            }\n            rowOffset++;\n        }\n        var counterPosition = 0;\n        var patternStart = rowOffset;\n        for (var x = rowOffset; x < width; x++) {\n            if (row.get(x) !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition === 3) {\n                    if (AbstractRSSReader.isFinderPattern(counters)) {\n                        return [patternStart, x];\n                    }\n                    patternStart += counters[0] + counters[1];\n                    counters[0] = counters[2];\n                    counters[1] = counters[3];\n                    counters[2] = 0;\n                    counters[3] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        throw new NotFoundException();\n    };\n    RSS14Reader.prototype.parseFoundFinderPattern = function (row, rowNumber, right, startEnd) {\n        // Actually we found elements 2-5\n        var firstIsBlack = row.get(startEnd[0]);\n        var firstElementStart = startEnd[0] - 1;\n        // Locate element 1\n        while (firstElementStart >= 0 && firstIsBlack !== row.get(firstElementStart)) {\n            firstElementStart--;\n        }\n        firstElementStart++;\n        var firstCounter = startEnd[0] - firstElementStart;\n        // Make 'counters' hold 1-4\n        var counters = this.getDecodeFinderCounters();\n        var copy = new Int32Array(counters.length);\n        System.arraycopy(counters, 0, copy, 1, counters.length - 1);\n        copy[0] = firstCounter;\n        var value = this.parseFinderValue(copy, RSS14Reader.FINDER_PATTERNS);\n        var start = firstElementStart;\n        var end = startEnd[1];\n        if (right) {\n            // row is actually reversed\n            start = row.getSize() - 1 - start;\n            end = row.getSize() - 1 - end;\n        }\n        return new FinderPattern(value, [firstElementStart, startEnd[1]], start, end, rowNumber);\n    };\n    RSS14Reader.prototype.adjustOddEvenCounts = function (outsideChar, numModules) {\n        var oddSum = MathUtils.sum(new Int32Array(this.getOddCounts()));\n        var evenSum = MathUtils.sum(new Int32Array(this.getEvenCounts()));\n        var incrementOdd = false;\n        var decrementOdd = false;\n        var incrementEven = false;\n        var decrementEven = false;\n        if (outsideChar) {\n            if (oddSum > 12) {\n                decrementOdd = true;\n            }\n            else if (oddSum < 4) {\n                incrementOdd = true;\n            }\n            if (evenSum > 12) {\n                decrementEven = true;\n            }\n            else if (evenSum < 4) {\n                incrementEven = true;\n            }\n        }\n        else {\n            if (oddSum > 11) {\n                decrementOdd = true;\n            }\n            else if (oddSum < 5) {\n                incrementOdd = true;\n            }\n            if (evenSum > 10) {\n                decrementEven = true;\n            }\n            else if (evenSum < 4) {\n                incrementEven = true;\n            }\n        }\n        var mismatch = oddSum + evenSum - numModules;\n        var oddParityBad = (oddSum & 0x01) === (outsideChar ? 1 : 0);\n        var evenParityBad = (evenSum & 0x01) === 1;\n        if (mismatch === 1) {\n            if (oddParityBad) {\n                if (evenParityBad) {\n                    throw new NotFoundException();\n                }\n                decrementOdd = true;\n            }\n            else {\n                if (!evenParityBad) {\n                    throw new NotFoundException();\n                }\n                decrementEven = true;\n            }\n        }\n        else if (mismatch === -1) {\n            if (oddParityBad) {\n                if (evenParityBad) {\n                    throw new NotFoundException();\n                }\n                incrementOdd = true;\n            }\n            else {\n                if (!evenParityBad) {\n                    throw new NotFoundException();\n                }\n                incrementEven = true;\n            }\n        }\n        else if (mismatch === 0) {\n            if (oddParityBad) {\n                if (!evenParityBad) {\n                    throw new NotFoundException();\n                }\n                // Both bad\n                if (oddSum < evenSum) {\n                    incrementOdd = true;\n                    decrementEven = true;\n                }\n                else {\n                    decrementOdd = true;\n                    incrementEven = true;\n                }\n            }\n            else {\n                if (evenParityBad) {\n                    throw new NotFoundException();\n                }\n                // Nothing to do!\n            }\n        }\n        else {\n            throw new NotFoundException();\n        }\n        if (incrementOdd) {\n            if (decrementOdd) {\n                throw new NotFoundException();\n            }\n            AbstractRSSReader.increment(this.getOddCounts(), this.getOddRoundingErrors());\n        }\n        if (decrementOdd) {\n            AbstractRSSReader.decrement(this.getOddCounts(), this.getOddRoundingErrors());\n        }\n        if (incrementEven) {\n            if (decrementEven) {\n                throw new NotFoundException();\n            }\n            AbstractRSSReader.increment(this.getEvenCounts(), this.getOddRoundingErrors());\n        }\n        if (decrementEven) {\n            AbstractRSSReader.decrement(this.getEvenCounts(), this.getEvenRoundingErrors());\n        }\n    };\n    RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET = [1, 10, 34, 70, 126];\n    RSS14Reader.INSIDE_ODD_TOTAL_SUBSET = [4, 20, 48, 81];\n    RSS14Reader.OUTSIDE_GSUM = [0, 161, 961, 2015, 2715];\n    RSS14Reader.INSIDE_GSUM = [0, 336, 1036, 1516];\n    RSS14Reader.OUTSIDE_ODD_WIDEST = [8, 6, 4, 3, 1];\n    RSS14Reader.INSIDE_ODD_WIDEST = [2, 4, 6, 8];\n    RSS14Reader.FINDER_PATTERNS = [\n        Int32Array.from([3, 8, 2, 1]),\n        Int32Array.from([3, 5, 5, 1]),\n        Int32Array.from([3, 3, 7, 1]),\n        Int32Array.from([3, 1, 9, 1]),\n        Int32Array.from([2, 7, 4, 1]),\n        Int32Array.from([2, 5, 6, 1]),\n        Int32Array.from([2, 3, 8, 1]),\n        Int32Array.from([1, 5, 7, 1]),\n        Int32Array.from([1, 3, 9, 1]),\n    ];\n    return RSS14Reader;\n}(AbstractRSSReader));\nexport default RSS14Reader;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.oned {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport DecodeHintType from '../DecodeHintType';\nimport NotFoundException from '../NotFoundException';\nimport Code128Reader from './Code128Reader';\nimport Code39Reader from './Code39Reader';\nimport ITFReader from './ITFReader';\nimport MultiFormatUPCEANReader from './MultiFormatUPCEANReader';\nimport OneDReader from './OneDReader';\nimport RSSExpandedReader from './rss/expanded/RSSExpandedReader';\nimport RSS14Reader from './rss/RSS14Reader';\n/**\n * @author Daniel Switkin <dswitkin@google.com>\n * @author Sean Owen\n */\nvar MultiFormatOneDReader = /** @class */ (function (_super) {\n    __extends(MultiFormatOneDReader, _super);\n    function MultiFormatOneDReader(hints) {\n        var _this = _super.call(this) || this;\n        _this.readers = [];\n        var possibleFormats = !hints ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n        var useCode39CheckDigit = hints && hints.get(DecodeHintType.ASSUME_CODE_39_CHECK_DIGIT) !== undefined;\n        if (possibleFormats) {\n            if (possibleFormats.includes(BarcodeFormat.EAN_13) ||\n                possibleFormats.includes(BarcodeFormat.UPC_A) ||\n                possibleFormats.includes(BarcodeFormat.EAN_8) ||\n                possibleFormats.includes(BarcodeFormat.UPC_E)) {\n                _this.readers.push(new MultiFormatUPCEANReader(hints));\n            }\n            if (possibleFormats.includes(BarcodeFormat.CODE_39)) {\n                _this.readers.push(new Code39Reader(useCode39CheckDigit));\n            }\n            // if (possibleFormats.includes(BarcodeFormat.CODE_93)) {\n            //    this.readers.push(new Code93Reader());\n            // }\n            if (possibleFormats.includes(BarcodeFormat.CODE_128)) {\n                _this.readers.push(new Code128Reader());\n            }\n            if (possibleFormats.includes(BarcodeFormat.ITF)) {\n                _this.readers.push(new ITFReader());\n            }\n            // if (possibleFormats.includes(BarcodeFormat.CODABAR)) {\n            //    this.readers.push(new CodaBarReader());\n            // }\n            if (possibleFormats.includes(BarcodeFormat.RSS_14)) {\n                _this.readers.push(new RSS14Reader());\n            }\n            if (possibleFormats.includes(BarcodeFormat.RSS_EXPANDED)) {\n                console.warn('RSS Expanded reader IS NOT ready for production yet! use at your own risk.');\n                _this.readers.push(new RSSExpandedReader());\n            }\n        }\n        if (_this.readers.length === 0) {\n            _this.readers.push(new MultiFormatUPCEANReader(hints));\n            _this.readers.push(new Code39Reader());\n            // this.readers.push(new CodaBarReader());\n            // this.readers.push(new Code93Reader());\n            _this.readers.push(new MultiFormatUPCEANReader(hints));\n            _this.readers.push(new Code128Reader());\n            _this.readers.push(new ITFReader());\n            _this.readers.push(new RSS14Reader());\n            // this.readers.push(new RSSExpandedReader());\n        }\n        return _this;\n    }\n    // @Override\n    MultiFormatOneDReader.prototype.decodeRow = function (rowNumber, row, hints) {\n        for (var i = 0; i < this.readers.length; i++) {\n            try {\n                return this.readers[i].decodeRow(rowNumber, row, hints);\n            }\n            catch (re) {\n                // continue\n            }\n        }\n        throw new NotFoundException();\n    };\n    // @Override\n    MultiFormatOneDReader.prototype.reset = function () {\n        this.readers.forEach(function (reader) { return reader.reset(); });\n    };\n    return MultiFormatOneDReader;\n}(OneDReader));\nexport default MultiFormatOneDReader;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport MultiFormatOneDReader from '../core/oned/MultiFormatOneDReader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Barcode reader reader to use from browser.\n */\nvar BrowserBarcodeReader = /** @class */ (function (_super) {\n    __extends(BrowserBarcodeReader, _super);\n    /**\n     * Creates an instance of BrowserBarcodeReader.\n     * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n     * @param {Map<DecodeHintType, any>} hints\n     */\n    function BrowserBarcodeReader(timeBetweenScansMillis, hints) {\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        return _super.call(this, new MultiFormatOneDReader(hints), timeBetweenScansMillis, hints) || this;\n    }\n    return BrowserBarcodeReader;\n}(BrowserCodeReader));\nexport { BrowserBarcodeReader };\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport FormatException from '../../FormatException';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * <p>Encapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.</p>\n */\nvar ECBlocks = /** @class */ (function () {\n    function ECBlocks(ecCodewords, ecBlocks1, ecBlocks2) {\n        this.ecCodewords = ecCodewords;\n        this.ecBlocks = [ecBlocks1];\n        ecBlocks2 && this.ecBlocks.push(ecBlocks2);\n    }\n    ECBlocks.prototype.getECCodewords = function () {\n        return this.ecCodewords;\n    };\n    ECBlocks.prototype.getECBlocks = function () {\n        return this.ecBlocks;\n    };\n    return ECBlocks;\n}());\nexport { ECBlocks };\n/**\n * <p>Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the Data Matrix code version's format.</p>\n */\nvar ECB = /** @class */ (function () {\n    function ECB(count, dataCodewords) {\n        this.count = count;\n        this.dataCodewords = dataCodewords;\n    }\n    ECB.prototype.getCount = function () {\n        return this.count;\n    };\n    ECB.prototype.getDataCodewords = function () {\n        return this.dataCodewords;\n    };\n    return ECB;\n}());\nexport { ECB };\n/**\n * The Version object encapsulates attributes about a particular\n * size Data Matrix Code.\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar Version = /** @class */ (function () {\n    function Version(versionNumber, symbolSizeRows, symbolSizeColumns, dataRegionSizeRows, dataRegionSizeColumns, ecBlocks) {\n        var e_1, _a;\n        this.versionNumber = versionNumber;\n        this.symbolSizeRows = symbolSizeRows;\n        this.symbolSizeColumns = symbolSizeColumns;\n        this.dataRegionSizeRows = dataRegionSizeRows;\n        this.dataRegionSizeColumns = dataRegionSizeColumns;\n        this.ecBlocks = ecBlocks;\n        // Calculate the total number of codewords\n        var total = 0;\n        var ecCodewords = ecBlocks.getECCodewords();\n        var ecbArray = ecBlocks.getECBlocks();\n        try {\n            for (var ecbArray_1 = __values(ecbArray), ecbArray_1_1 = ecbArray_1.next(); !ecbArray_1_1.done; ecbArray_1_1 = ecbArray_1.next()) {\n                var ecBlock = ecbArray_1_1.value;\n                total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (ecbArray_1_1 && !ecbArray_1_1.done && (_a = ecbArray_1.return)) _a.call(ecbArray_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        this.totalCodewords = total;\n    }\n    Version.prototype.getVersionNumber = function () {\n        return this.versionNumber;\n    };\n    Version.prototype.getSymbolSizeRows = function () {\n        return this.symbolSizeRows;\n    };\n    Version.prototype.getSymbolSizeColumns = function () {\n        return this.symbolSizeColumns;\n    };\n    Version.prototype.getDataRegionSizeRows = function () {\n        return this.dataRegionSizeRows;\n    };\n    Version.prototype.getDataRegionSizeColumns = function () {\n        return this.dataRegionSizeColumns;\n    };\n    Version.prototype.getTotalCodewords = function () {\n        return this.totalCodewords;\n    };\n    Version.prototype.getECBlocks = function () {\n        return this.ecBlocks;\n    };\n    /**\n     * <p>Deduces version information from Data Matrix dimensions.</p>\n     *\n     * @param numRows Number of rows in modules\n     * @param numColumns Number of columns in modules\n     * @return Version for a Data Matrix Code of those dimensions\n     * @throws FormatException if dimensions do correspond to a valid Data Matrix size\n     */\n    Version.getVersionForDimensions = function (numRows, numColumns) {\n        var e_2, _a;\n        if ((numRows & 0x01) !== 0 || (numColumns & 0x01) !== 0) {\n            throw new FormatException();\n        }\n        try {\n            for (var _b = __values(Version.VERSIONS), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var version = _c.value;\n                if (version.symbolSizeRows === numRows && version.symbolSizeColumns === numColumns) {\n                    return version;\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        throw new FormatException();\n    };\n    //  @Override\n    Version.prototype.toString = function () {\n        return '' + this.versionNumber;\n    };\n    /**\n     * See ISO 16022:2006 5.5.1 Table 7\n     */\n    Version.buildVersions = function () {\n        return [\n            new Version(1, 10, 10, 8, 8, new ECBlocks(5, new ECB(1, 3))),\n            new Version(2, 12, 12, 10, 10, new ECBlocks(7, new ECB(1, 5))),\n            new Version(3, 14, 14, 12, 12, new ECBlocks(10, new ECB(1, 8))),\n            new Version(4, 16, 16, 14, 14, new ECBlocks(12, new ECB(1, 12))),\n            new Version(5, 18, 18, 16, 16, new ECBlocks(14, new ECB(1, 18))),\n            new Version(6, 20, 20, 18, 18, new ECBlocks(18, new ECB(1, 22))),\n            new Version(7, 22, 22, 20, 20, new ECBlocks(20, new ECB(1, 30))),\n            new Version(8, 24, 24, 22, 22, new ECBlocks(24, new ECB(1, 36))),\n            new Version(9, 26, 26, 24, 24, new ECBlocks(28, new ECB(1, 44))),\n            new Version(10, 32, 32, 14, 14, new ECBlocks(36, new ECB(1, 62))),\n            new Version(11, 36, 36, 16, 16, new ECBlocks(42, new ECB(1, 86))),\n            new Version(12, 40, 40, 18, 18, new ECBlocks(48, new ECB(1, 114))),\n            new Version(13, 44, 44, 20, 20, new ECBlocks(56, new ECB(1, 144))),\n            new Version(14, 48, 48, 22, 22, new ECBlocks(68, new ECB(1, 174))),\n            new Version(15, 52, 52, 24, 24, new ECBlocks(42, new ECB(2, 102))),\n            new Version(16, 64, 64, 14, 14, new ECBlocks(56, new ECB(2, 140))),\n            new Version(17, 72, 72, 16, 16, new ECBlocks(36, new ECB(4, 92))),\n            new Version(18, 80, 80, 18, 18, new ECBlocks(48, new ECB(4, 114))),\n            new Version(19, 88, 88, 20, 20, new ECBlocks(56, new ECB(4, 144))),\n            new Version(20, 96, 96, 22, 22, new ECBlocks(68, new ECB(4, 174))),\n            new Version(21, 104, 104, 24, 24, new ECBlocks(56, new ECB(6, 136))),\n            new Version(22, 120, 120, 18, 18, new ECBlocks(68, new ECB(6, 175))),\n            new Version(23, 132, 132, 20, 20, new ECBlocks(62, new ECB(8, 163))),\n            new Version(24, 144, 144, 22, 22, new ECBlocks(62, new ECB(8, 156), new ECB(2, 155))),\n            new Version(25, 8, 18, 6, 16, new ECBlocks(7, new ECB(1, 5))),\n            new Version(26, 8, 32, 6, 14, new ECBlocks(11, new ECB(1, 10))),\n            new Version(27, 12, 26, 10, 24, new ECBlocks(14, new ECB(1, 16))),\n            new Version(28, 12, 36, 10, 16, new ECBlocks(18, new ECB(1, 22))),\n            new Version(29, 16, 36, 14, 16, new ECBlocks(24, new ECB(1, 32))),\n            new Version(30, 16, 48, 14, 22, new ECBlocks(28, new ECB(1, 49)))\n        ];\n    };\n    Version.VERSIONS = Version.buildVersions();\n    return Version;\n}());\nexport default Version;\n","import BitMatrix from '../../common/BitMatrix';\nimport Version from './Version';\nimport FormatException from '../../FormatException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @author bbrown@google.com (Brian Brown)\n */\nvar BitMatrixParser = /** @class */ (function () {\n    /**\n     * @param bitMatrix {@link BitMatrix} to parse\n     * @throws FormatException if dimension is < 8 or > 144 or not 0 mod 2\n     */\n    function BitMatrixParser(bitMatrix) {\n        var dimension = bitMatrix.getHeight();\n        if (dimension < 8 || dimension > 144 || (dimension & 0x01) !== 0) {\n            throw new FormatException();\n        }\n        this.version = BitMatrixParser.readVersion(bitMatrix);\n        this.mappingBitMatrix = this.extractDataRegion(bitMatrix);\n        this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight());\n    }\n    BitMatrixParser.prototype.getVersion = function () {\n        return this.version;\n    };\n    /**\n     * <p>Creates the version object based on the dimension of the original bit matrix from\n     * the datamatrix code.</p>\n     *\n     * <p>See ISO 16022:2006 Table 7 - ECC 200 symbol attributes</p>\n     *\n     * @param bitMatrix Original {@link BitMatrix} including alignment patterns\n     * @return {@link Version} encapsulating the Data Matrix Code's \"version\"\n     * @throws FormatException if the dimensions of the mapping matrix are not valid\n     * Data Matrix dimensions.\n     */\n    BitMatrixParser.readVersion = function (bitMatrix) {\n        var numRows = bitMatrix.getHeight();\n        var numColumns = bitMatrix.getWidth();\n        return Version.getVersionForDimensions(numRows, numColumns);\n    };\n    /**\n     * <p>Reads the bits in the {@link BitMatrix} representing the mapping matrix (No alignment patterns)\n     * in the correct order in order to reconstitute the codewords bytes contained within the\n     * Data Matrix Code.</p>\n     *\n     * @return bytes encoded within the Data Matrix Code\n     * @throws FormatException if the exact number of bytes expected is not read\n     */\n    BitMatrixParser.prototype.readCodewords = function () {\n        var result = new Int8Array(this.version.getTotalCodewords());\n        var resultOffset = 0;\n        var row = 4;\n        var column = 0;\n        var numRows = this.mappingBitMatrix.getHeight();\n        var numColumns = this.mappingBitMatrix.getWidth();\n        var corner1Read = false;\n        var corner2Read = false;\n        var corner3Read = false;\n        var corner4Read = false;\n        // Read all of the codewords\n        do {\n            // Check the four corner cases\n            if ((row === numRows) && (column === 0) && !corner1Read) {\n                result[resultOffset++] = this.readCorner1(numRows, numColumns) & 0xff;\n                row -= 2;\n                column += 2;\n                corner1Read = true;\n            }\n            else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x03) !== 0) && !corner2Read) {\n                result[resultOffset++] = this.readCorner2(numRows, numColumns) & 0xff;\n                row -= 2;\n                column += 2;\n                corner2Read = true;\n            }\n            else if ((row === numRows + 4) && (column === 2) && ((numColumns & 0x07) === 0) && !corner3Read) {\n                result[resultOffset++] = this.readCorner3(numRows, numColumns) & 0xff;\n                row -= 2;\n                column += 2;\n                corner3Read = true;\n            }\n            else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x07) === 4) && !corner4Read) {\n                result[resultOffset++] = this.readCorner4(numRows, numColumns) & 0xff;\n                row -= 2;\n                column += 2;\n                corner4Read = true;\n            }\n            else {\n                // Sweep upward diagonally to the right\n                do {\n                    if ((row < numRows) && (column >= 0) && !this.readMappingMatrix.get(column, row)) {\n                        result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n                    }\n                    row -= 2;\n                    column += 2;\n                } while ((row >= 0) && (column < numColumns));\n                row += 1;\n                column += 3;\n                // Sweep downward diagonally to the left\n                do {\n                    if ((row >= 0) && (column < numColumns) && !this.readMappingMatrix.get(column, row)) {\n                        result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n                    }\n                    row += 2;\n                    column -= 2;\n                } while ((row < numRows) && (column >= 0));\n                row += 3;\n                column += 1;\n            }\n        } while ((row < numRows) || (column < numColumns));\n        if (resultOffset !== this.version.getTotalCodewords()) {\n            throw new FormatException();\n        }\n        return result;\n    };\n    /**\n     * <p>Reads a bit of the mapping matrix accounting for boundary wrapping.</p>\n     *\n     * @param row Row to read in the mapping matrix\n     * @param column Column to read in the mapping matrix\n     * @param numRows Number of rows in the mapping matrix\n     * @param numColumns Number of columns in the mapping matrix\n     * @return value of the given bit in the mapping matrix\n     */\n    BitMatrixParser.prototype.readModule = function (row, column, numRows, numColumns) {\n        // Adjust the row and column indices based on boundary wrapping\n        if (row < 0) {\n            row += numRows;\n            column += 4 - ((numRows + 4) & 0x07);\n        }\n        if (column < 0) {\n            column += numColumns;\n            row += 4 - ((numColumns + 4) & 0x07);\n        }\n        this.readMappingMatrix.set(column, row);\n        return this.mappingBitMatrix.get(column, row);\n    };\n    /**\n     * <p>Reads the 8 bits of the standard Utah-shaped pattern.</p>\n     *\n     * <p>See ISO 16022:2006, 5.8.1 Figure 6</p>\n     *\n     * @param row Current row in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n     * @param column Current column in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n     * @param numRows Number of rows in the mapping matrix\n     * @param numColumns Number of columns in the mapping matrix\n     * @return byte from the utah shape\n     */\n    BitMatrixParser.prototype.readUtah = function (row, column, numRows, numColumns) {\n        var currentByte = 0;\n        if (this.readModule(row - 2, column - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row - 2, column - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row - 1, column - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row - 1, column - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row - 1, column, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row, column - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row, column - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(row, column, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        return currentByte;\n    };\n    /**\n     * <p>Reads the 8 bits of the special corner condition 1.</p>\n     *\n     * <p>See ISO 16022:2006, Figure F.3</p>\n     *\n     * @param numRows Number of rows in the mapping matrix\n     * @param numColumns Number of columns in the mapping matrix\n     * @return byte from the Corner condition 1\n     */\n    BitMatrixParser.prototype.readCorner1 = function (numRows, numColumns) {\n        var currentByte = 0;\n        if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 1, 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 1, 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        return currentByte;\n    };\n    /**\n     * <p>Reads the 8 bits of the special corner condition 2.</p>\n     *\n     * <p>See ISO 16022:2006, Figure F.4</p>\n     *\n     * @param numRows Number of rows in the mapping matrix\n     * @param numColumns Number of columns in the mapping matrix\n     * @return byte from the Corner condition 2\n     */\n    BitMatrixParser.prototype.readCorner2 = function (numRows, numColumns) {\n        var currentByte = 0;\n        if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 4, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        return currentByte;\n    };\n    /**\n     * <p>Reads the 8 bits of the special corner condition 3.</p>\n     *\n     * <p>See ISO 16022:2006, Figure F.5</p>\n     *\n     * @param numRows Number of rows in the mapping matrix\n     * @param numColumns Number of columns in the mapping matrix\n     * @return byte from the Corner condition 3\n     */\n    BitMatrixParser.prototype.readCorner3 = function (numRows, numColumns) {\n        var currentByte = 0;\n        if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 1, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(1, numColumns - 3, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(1, numColumns - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        return currentByte;\n    };\n    /**\n     * <p>Reads the 8 bits of the special corner condition 4.</p>\n     *\n     * <p>See ISO 16022:2006, Figure F.6</p>\n     *\n     * @param numRows Number of rows in the mapping matrix\n     * @param numColumns Number of columns in the mapping matrix\n     * @return byte from the Corner condition 4\n     */\n    BitMatrixParser.prototype.readCorner4 = function (numRows, numColumns) {\n        var currentByte = 0;\n        if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        currentByte <<= 1;\n        if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n            currentByte |= 1;\n        }\n        return currentByte;\n    };\n    /**\n     * <p>Extracts the data region from a {@link BitMatrix} that contains\n     * alignment patterns.</p>\n     *\n     * @param bitMatrix Original {@link BitMatrix} with alignment patterns\n     * @return BitMatrix that has the alignment patterns removed\n     */\n    BitMatrixParser.prototype.extractDataRegion = function (bitMatrix) {\n        var symbolSizeRows = this.version.getSymbolSizeRows();\n        var symbolSizeColumns = this.version.getSymbolSizeColumns();\n        if (bitMatrix.getHeight() !== symbolSizeRows) {\n            throw new IllegalArgumentException('Dimension of bitMatrix must match the version size');\n        }\n        var dataRegionSizeRows = this.version.getDataRegionSizeRows();\n        var dataRegionSizeColumns = this.version.getDataRegionSizeColumns();\n        var numDataRegionsRow = symbolSizeRows / dataRegionSizeRows | 0;\n        var numDataRegionsColumn = symbolSizeColumns / dataRegionSizeColumns | 0;\n        var sizeDataRegionRow = numDataRegionsRow * dataRegionSizeRows;\n        var sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns;\n        var bitMatrixWithoutAlignment = new BitMatrix(sizeDataRegionColumn, sizeDataRegionRow);\n        for (var dataRegionRow = 0; dataRegionRow < numDataRegionsRow; ++dataRegionRow) {\n            var dataRegionRowOffset = dataRegionRow * dataRegionSizeRows;\n            for (var dataRegionColumn = 0; dataRegionColumn < numDataRegionsColumn; ++dataRegionColumn) {\n                var dataRegionColumnOffset = dataRegionColumn * dataRegionSizeColumns;\n                for (var i = 0; i < dataRegionSizeRows; ++i) {\n                    var readRowOffset = dataRegionRow * (dataRegionSizeRows + 2) + 1 + i;\n                    var writeRowOffset = dataRegionRowOffset + i;\n                    for (var j = 0; j < dataRegionSizeColumns; ++j) {\n                        var readColumnOffset = dataRegionColumn * (dataRegionSizeColumns + 2) + 1 + j;\n                        if (bitMatrix.get(readColumnOffset, readRowOffset)) {\n                            var writeColumnOffset = dataRegionColumnOffset + j;\n                            bitMatrixWithoutAlignment.set(writeColumnOffset, writeRowOffset);\n                        }\n                    }\n                }\n            }\n        }\n        return bitMatrixWithoutAlignment;\n    };\n    return BitMatrixParser;\n}());\nexport default BitMatrixParser;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * <p>Encapsulates a block of data within a Data Matrix Code. Data Matrix Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.</p>\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar DataBlock = /** @class */ (function () {\n    function DataBlock(numDataCodewords, codewords) {\n        this.numDataCodewords = numDataCodewords;\n        this.codewords = codewords;\n    }\n    /**\n     * <p>When Data Matrix Codes use multiple data blocks, they actually interleave the bytes of each of them.\n     * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n     * method will separate the data into original blocks.</p>\n     *\n     * @param rawCodewords bytes as read directly from the Data Matrix Code\n     * @param version version of the Data Matrix Code\n     * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n     *         Data Matrix Code\n     */\n    DataBlock.getDataBlocks = function (rawCodewords, version) {\n        var e_1, _a, e_2, _b;\n        // Figure out the number and size of data blocks used by this version\n        var ecBlocks = version.getECBlocks();\n        // First count the total number of data blocks\n        var totalBlocks = 0;\n        var ecBlockArray = ecBlocks.getECBlocks();\n        try {\n            for (var ecBlockArray_1 = __values(ecBlockArray), ecBlockArray_1_1 = ecBlockArray_1.next(); !ecBlockArray_1_1.done; ecBlockArray_1_1 = ecBlockArray_1.next()) {\n                var ecBlock = ecBlockArray_1_1.value;\n                totalBlocks += ecBlock.getCount();\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (ecBlockArray_1_1 && !ecBlockArray_1_1.done && (_a = ecBlockArray_1.return)) _a.call(ecBlockArray_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        // Now establish DataBlocks of the appropriate size and number of data codewords\n        var result = new Array(totalBlocks);\n        var numResultBlocks = 0;\n        try {\n            for (var ecBlockArray_2 = __values(ecBlockArray), ecBlockArray_2_1 = ecBlockArray_2.next(); !ecBlockArray_2_1.done; ecBlockArray_2_1 = ecBlockArray_2.next()) {\n                var ecBlock = ecBlockArray_2_1.value;\n                for (var i = 0; i < ecBlock.getCount(); i++) {\n                    var numDataCodewords = ecBlock.getDataCodewords();\n                    var numBlockCodewords = ecBlocks.getECCodewords() + numDataCodewords;\n                    result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (ecBlockArray_2_1 && !ecBlockArray_2_1.done && (_b = ecBlockArray_2.return)) _b.call(ecBlockArray_2);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        // All blocks have the same amount of data, except that the last n\n        // (where n may be 0) have 1 less byte. Figure out where these start.\n        // TODO(bbrown): There is only one case where there is a difference for Data Matrix for size 144\n        var longerBlocksTotalCodewords = result[0].codewords.length;\n        // int shorterBlocksTotalCodewords = longerBlocksTotalCodewords - 1;\n        var longerBlocksNumDataCodewords = longerBlocksTotalCodewords - ecBlocks.getECCodewords();\n        var shorterBlocksNumDataCodewords = longerBlocksNumDataCodewords - 1;\n        // The last elements of result may be 1 element shorter for 144 matrix\n        // first fill out as many elements as all of them have minus 1\n        var rawCodewordsOffset = 0;\n        for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n            for (var j = 0; j < numResultBlocks; j++) {\n                result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n            }\n        }\n        // Fill out the last data block in the longer ones\n        var specialVersion = version.getVersionNumber() === 24;\n        var numLongerBlocks = specialVersion ? 8 : numResultBlocks;\n        for (var j = 0; j < numLongerBlocks; j++) {\n            result[j].codewords[longerBlocksNumDataCodewords - 1] = rawCodewords[rawCodewordsOffset++];\n        }\n        // Now add in error correction blocks\n        var max = result[0].codewords.length;\n        for (var i = longerBlocksNumDataCodewords; i < max; i++) {\n            for (var j = 0; j < numResultBlocks; j++) {\n                var jOffset = specialVersion ? (j + 8) % numResultBlocks : j;\n                var iOffset = specialVersion && jOffset > 7 ? i - 1 : i;\n                result[jOffset].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n            }\n        }\n        if (rawCodewordsOffset !== rawCodewords.length) {\n            throw new IllegalArgumentException();\n        }\n        return result;\n    };\n    DataBlock.prototype.getNumDataCodewords = function () {\n        return this.numDataCodewords;\n    };\n    DataBlock.prototype.getCodewords = function () {\n        return this.codewords;\n    };\n    return DataBlock;\n}());\nexport default DataBlock;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.common {*/\nimport IllegalArgumentException from '../IllegalArgumentException';\n/**\n * <p>This provides an easy abstraction to read bits at a time from a sequence of bytes, where the\n * number of bits read is not often a multiple of 8.</p>\n *\n * <p>This class is thread-safe but not reentrant -- unless the caller modifies the bytes array\n * it passed in, in which case all bets are off.</p>\n *\n * @author Sean Owen\n */\nvar BitSource = /** @class */ (function () {\n    /**\n     * @param bytes bytes from which this will read bits. Bits will be read from the first byte first.\n     * Bits are read within a byte from most-significant to least-significant bit.\n     */\n    function BitSource(bytes) {\n        this.bytes = bytes;\n        this.byteOffset = 0;\n        this.bitOffset = 0;\n    }\n    /**\n     * @return index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.\n     */\n    BitSource.prototype.getBitOffset = function () {\n        return this.bitOffset;\n    };\n    /**\n     * @return index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.\n     */\n    BitSource.prototype.getByteOffset = function () {\n        return this.byteOffset;\n    };\n    /**\n     * @param numBits number of bits to read\n     * @return int representing the bits read. The bits will appear as the least-significant\n     *         bits of the int\n     * @throws IllegalArgumentException if numBits isn't in [1,32] or more than is available\n     */\n    BitSource.prototype.readBits = function (numBits /*int*/) {\n        if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n            throw new IllegalArgumentException('' + numBits);\n        }\n        var result = 0;\n        var bitOffset = this.bitOffset;\n        var byteOffset = this.byteOffset;\n        var bytes = this.bytes;\n        // First, read remainder from current byte\n        if (bitOffset > 0) {\n            var bitsLeft = 8 - bitOffset;\n            var toRead = numBits < bitsLeft ? numBits : bitsLeft;\n            var bitsToNotRead = bitsLeft - toRead;\n            var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\n            result = (bytes[byteOffset] & mask) >> bitsToNotRead;\n            numBits -= toRead;\n            bitOffset += toRead;\n            if (bitOffset === 8) {\n                bitOffset = 0;\n                byteOffset++;\n            }\n        }\n        // Next read whole bytes\n        if (numBits > 0) {\n            while (numBits >= 8) {\n                result = (result << 8) | (bytes[byteOffset] & 0xFF);\n                byteOffset++;\n                numBits -= 8;\n            }\n            // Finally read a partial byte\n            if (numBits > 0) {\n                var bitsToNotRead = 8 - numBits;\n                var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\n                result = (result << numBits) | ((bytes[byteOffset] & mask) >> bitsToNotRead);\n                bitOffset += numBits;\n            }\n        }\n        this.bitOffset = bitOffset;\n        this.byteOffset = byteOffset;\n        return result;\n    };\n    /**\n     * @return number of bits that can be read successfully\n     */\n    BitSource.prototype.available = function () {\n        return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n    };\n    return BitSource;\n}());\nexport default BitSource;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport ArgumentException from '../../ArgumentException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\nexport var ErrorCorrectionLevelValues;\n(function (ErrorCorrectionLevelValues) {\n    ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"L\"] = 0] = \"L\";\n    ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"M\"] = 1] = \"M\";\n    ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"Q\"] = 2] = \"Q\";\n    ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"H\"] = 3] = \"H\";\n})(ErrorCorrectionLevelValues || (ErrorCorrectionLevelValues = {}));\n/**\n * <p>See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels\n * defined by the QR code standard.</p>\n *\n * @author Sean Owen\n */\nvar ErrorCorrectionLevel = /** @class */ (function () {\n    function ErrorCorrectionLevel(value, stringValue, bits /*int*/) {\n        this.value = value;\n        this.stringValue = stringValue;\n        this.bits = bits;\n        ErrorCorrectionLevel.FOR_BITS.set(bits, this);\n        ErrorCorrectionLevel.FOR_VALUE.set(value, this);\n    }\n    ErrorCorrectionLevel.prototype.getValue = function () {\n        return this.value;\n    };\n    ErrorCorrectionLevel.prototype.getBits = function () {\n        return this.bits;\n    };\n    ErrorCorrectionLevel.fromString = function (s) {\n        switch (s) {\n            case 'L': return ErrorCorrectionLevel.L;\n            case 'M': return ErrorCorrectionLevel.M;\n            case 'Q': return ErrorCorrectionLevel.Q;\n            case 'H': return ErrorCorrectionLevel.H;\n            default: throw new ArgumentException(s + 'not available');\n        }\n    };\n    ErrorCorrectionLevel.prototype.toString = function () {\n        return this.stringValue;\n    };\n    ErrorCorrectionLevel.prototype.equals = function (o) {\n        if (!(o instanceof ErrorCorrectionLevel)) {\n            return false;\n        }\n        var other = o;\n        return this.value === other.value;\n    };\n    /**\n     * @param bits int containing the two bits encoding a QR Code's error correction level\n     * @return ErrorCorrectionLevel representing the encoded error correction level\n     */\n    ErrorCorrectionLevel.forBits = function (bits /*int*/) {\n        if (bits < 0 || bits >= ErrorCorrectionLevel.FOR_BITS.size) {\n            throw new IllegalArgumentException();\n        }\n        return ErrorCorrectionLevel.FOR_BITS.get(bits);\n    };\n    ErrorCorrectionLevel.FOR_BITS = new Map();\n    ErrorCorrectionLevel.FOR_VALUE = new Map();\n    /** L = ~7% correction */\n    ErrorCorrectionLevel.L = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.L, 'L', 0x01);\n    /** M = ~15% correction */\n    ErrorCorrectionLevel.M = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.M, 'M', 0x00);\n    /** Q = ~25% correction */\n    ErrorCorrectionLevel.Q = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.Q, 'Q', 0x03);\n    /** H = ~30% correction */\n    ErrorCorrectionLevel.H = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.H, 'H', 0x02);\n    return ErrorCorrectionLevel;\n}());\nexport default ErrorCorrectionLevel;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport ChecksumException from '../../ChecksumException';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport BitMatrixParser from './BitMatrixParser';\nimport DataBlock from './DataBlock';\nimport DecodedBitStreamParser from './DecodedBitStreamParser';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * <p>The main class which implements Data Matrix Code decoding -- as opposed to locating and extracting\n * the Data Matrix Code from an image.</p>\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar Decoder = /** @class */ (function () {\n    function Decoder() {\n        this.rsDecoder = new ReedSolomonDecoder(GenericGF.DATA_MATRIX_FIELD_256);\n    }\n    /**\n     * <p>Decodes a Data Matrix Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken\n     * to mean a black module.</p>\n     *\n     * @param bits booleans representing white/black Data Matrix Code modules\n     * @return text and bytes encoded within the Data Matrix Code\n     * @throws FormatException if the Data Matrix Code cannot be decoded\n     * @throws ChecksumException if error correction fails\n     */\n    Decoder.prototype.decode = function (bits) {\n        var e_1, _a;\n        // Construct a parser and read version, error-correction level\n        var parser = new BitMatrixParser(bits);\n        var version = parser.getVersion();\n        // Read codewords\n        var codewords = parser.readCodewords();\n        // Separate into data blocks\n        var dataBlocks = DataBlock.getDataBlocks(codewords, version);\n        // Count total number of data bytes\n        var totalBytes = 0;\n        try {\n            for (var dataBlocks_1 = __values(dataBlocks), dataBlocks_1_1 = dataBlocks_1.next(); !dataBlocks_1_1.done; dataBlocks_1_1 = dataBlocks_1.next()) {\n                var db = dataBlocks_1_1.value;\n                totalBytes += db.getNumDataCodewords();\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (dataBlocks_1_1 && !dataBlocks_1_1.done && (_a = dataBlocks_1.return)) _a.call(dataBlocks_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        var resultBytes = new Uint8Array(totalBytes);\n        var dataBlocksCount = dataBlocks.length;\n        // Error-correct and copy data blocks together into a stream of bytes\n        for (var j = 0; j < dataBlocksCount; j++) {\n            var dataBlock = dataBlocks[j];\n            var codewordBytes = dataBlock.getCodewords();\n            var numDataCodewords = dataBlock.getNumDataCodewords();\n            this.correctErrors(codewordBytes, numDataCodewords);\n            for (var i = 0; i < numDataCodewords; i++) {\n                // De-interlace data blocks.\n                resultBytes[i * dataBlocksCount + j] = codewordBytes[i];\n            }\n        }\n        // Decode the contents of that stream of bytes\n        return DecodedBitStreamParser.decode(resultBytes);\n    };\n    /**\n     * <p>Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n     * correct the errors in-place using Reed-Solomon error correction.</p>\n     *\n     * @param codewordBytes data and error correction codewords\n     * @param numDataCodewords number of codewords that are data bytes\n     * @throws ChecksumException if error correction fails\n     */\n    Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords) {\n        // const numCodewords = codewordBytes.length;\n        // First read into an array of ints\n        var codewordsInts = new Int32Array(codewordBytes);\n        // for (let i = 0; i < numCodewords; i++) {\n        //   codewordsInts[i] = codewordBytes[i] & 0xFF;\n        // }\n        try {\n            this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n        }\n        catch (ignored /* ReedSolomonException */) {\n            throw new ChecksumException();\n        }\n        // Copy back into array of bytes -- only need to worry about the bytes that were data\n        // We don't care about errors in the error-correction codewords\n        for (var i = 0; i < numDataCodewords; i++) {\n            codewordBytes[i] = codewordsInts[i];\n        }\n    };\n    return Decoder;\n}());\nexport default Decoder;\n","import WhiteRectangleDetector from '../../common/detector/WhiteRectangleDetector';\nimport DetectorResult from '../../common/DetectorResult';\nimport GridSamplerInstance from '../../common/GridSamplerInstance';\nimport NotFoundException from '../../NotFoundException';\nimport ResultPoint from '../../ResultPoint';\n/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * <p>Encapsulates logic that can detect a Data Matrix Code in an image, even if the Data Matrix Code\n * is rotated or skewed, or partially obscured.</p>\n *\n * @author Sean Owen\n */\nvar Detector = /** @class */ (function () {\n    function Detector(image) {\n        this.image = image;\n        this.rectangleDetector = new WhiteRectangleDetector(this.image);\n    }\n    /**\n     * <p>Detects a Data Matrix Code in an image.</p>\n     *\n     * @return {@link DetectorResult} encapsulating results of detecting a Data Matrix Code\n     * @throws NotFoundException if no Data Matrix Code can be found\n     */\n    Detector.prototype.detect = function () {\n        var cornerPoints = this.rectangleDetector.detect();\n        var points = this.detectSolid1(cornerPoints);\n        points = this.detectSolid2(points);\n        points[3] = this.correctTopRight(points);\n        if (!points[3]) {\n            throw new NotFoundException();\n        }\n        points = this.shiftToModuleCenter(points);\n        var topLeft = points[0];\n        var bottomLeft = points[1];\n        var bottomRight = points[2];\n        var topRight = points[3];\n        var dimensionTop = this.transitionsBetween(topLeft, topRight) + 1;\n        var dimensionRight = this.transitionsBetween(bottomRight, topRight) + 1;\n        if ((dimensionTop & 0x01) === 1) {\n            dimensionTop += 1;\n        }\n        if ((dimensionRight & 0x01) === 1) {\n            dimensionRight += 1;\n        }\n        if (4 * dimensionTop < 7 * dimensionRight && 4 * dimensionRight < 7 * dimensionTop) {\n            // The matrix is square\n            dimensionTop = dimensionRight = Math.max(dimensionTop, dimensionRight);\n        }\n        var bits = Detector.sampleGrid(this.image, topLeft, bottomLeft, bottomRight, topRight, dimensionTop, dimensionRight);\n        return new DetectorResult(bits, [topLeft, bottomLeft, bottomRight, topRight]);\n    };\n    Detector.shiftPoint = function (point, to, div) {\n        var x = (to.getX() - point.getX()) / (div + 1);\n        var y = (to.getY() - point.getY()) / (div + 1);\n        return new ResultPoint(point.getX() + x, point.getY() + y);\n    };\n    Detector.moveAway = function (point, fromX, fromY) {\n        var x = point.getX();\n        var y = point.getY();\n        if (x < fromX) {\n            x -= 1;\n        }\n        else {\n            x += 1;\n        }\n        if (y < fromY) {\n            y -= 1;\n        }\n        else {\n            y += 1;\n        }\n        return new ResultPoint(x, y);\n    };\n    /**\n     * Detect a solid side which has minimum transition.\n     */\n    Detector.prototype.detectSolid1 = function (cornerPoints) {\n        // 0  2\n        // 1  3\n        var pointA = cornerPoints[0];\n        var pointB = cornerPoints[1];\n        var pointC = cornerPoints[3];\n        var pointD = cornerPoints[2];\n        var trAB = this.transitionsBetween(pointA, pointB);\n        var trBC = this.transitionsBetween(pointB, pointC);\n        var trCD = this.transitionsBetween(pointC, pointD);\n        var trDA = this.transitionsBetween(pointD, pointA);\n        // 0..3\n        // :  :\n        // 1--2\n        var min = trAB;\n        var points = [pointD, pointA, pointB, pointC];\n        if (min > trBC) {\n            min = trBC;\n            points[0] = pointA;\n            points[1] = pointB;\n            points[2] = pointC;\n            points[3] = pointD;\n        }\n        if (min > trCD) {\n            min = trCD;\n            points[0] = pointB;\n            points[1] = pointC;\n            points[2] = pointD;\n            points[3] = pointA;\n        }\n        if (min > trDA) {\n            points[0] = pointC;\n            points[1] = pointD;\n            points[2] = pointA;\n            points[3] = pointB;\n        }\n        return points;\n    };\n    /**\n     * Detect a second solid side next to first solid side.\n     */\n    Detector.prototype.detectSolid2 = function (points) {\n        // A..D\n        // :  :\n        // B--C\n        var pointA = points[0];\n        var pointB = points[1];\n        var pointC = points[2];\n        var pointD = points[3];\n        // Transition detection on the edge is not stable.\n        // To safely detect, shift the points to the module center.\n        var tr = this.transitionsBetween(pointA, pointD);\n        var pointBs = Detector.shiftPoint(pointB, pointC, (tr + 1) * 4);\n        var pointCs = Detector.shiftPoint(pointC, pointB, (tr + 1) * 4);\n        var trBA = this.transitionsBetween(pointBs, pointA);\n        var trCD = this.transitionsBetween(pointCs, pointD);\n        // 0..3\n        // |  :\n        // 1--2\n        if (trBA < trCD) {\n            // solid sides: A-B-C\n            points[0] = pointA;\n            points[1] = pointB;\n            points[2] = pointC;\n            points[3] = pointD;\n        }\n        else {\n            // solid sides: B-C-D\n            points[0] = pointB;\n            points[1] = pointC;\n            points[2] = pointD;\n            points[3] = pointA;\n        }\n        return points;\n    };\n    /**\n     * Calculates the corner position of the white top right module.\n     */\n    Detector.prototype.correctTopRight = function (points) {\n        // A..D\n        // |  :\n        // B--C\n        var pointA = points[0];\n        var pointB = points[1];\n        var pointC = points[2];\n        var pointD = points[3];\n        // shift points for safe transition detection.\n        var trTop = this.transitionsBetween(pointA, pointD);\n        var trRight = this.transitionsBetween(pointB, pointD);\n        var pointAs = Detector.shiftPoint(pointA, pointB, (trRight + 1) * 4);\n        var pointCs = Detector.shiftPoint(pointC, pointB, (trTop + 1) * 4);\n        trTop = this.transitionsBetween(pointAs, pointD);\n        trRight = this.transitionsBetween(pointCs, pointD);\n        var candidate1 = new ResultPoint(pointD.getX() + (pointC.getX() - pointB.getX()) / (trTop + 1), pointD.getY() + (pointC.getY() - pointB.getY()) / (trTop + 1));\n        var candidate2 = new ResultPoint(pointD.getX() + (pointA.getX() - pointB.getX()) / (trRight + 1), pointD.getY() + (pointA.getY() - pointB.getY()) / (trRight + 1));\n        if (!this.isValid(candidate1)) {\n            if (this.isValid(candidate2)) {\n                return candidate2;\n            }\n            return null;\n        }\n        if (!this.isValid(candidate2)) {\n            return candidate1;\n        }\n        var sumc1 = this.transitionsBetween(pointAs, candidate1) + this.transitionsBetween(pointCs, candidate1);\n        var sumc2 = this.transitionsBetween(pointAs, candidate2) + this.transitionsBetween(pointCs, candidate2);\n        if (sumc1 > sumc2) {\n            return candidate1;\n        }\n        else {\n            return candidate2;\n        }\n    };\n    /**\n     * Shift the edge points to the module center.\n     */\n    Detector.prototype.shiftToModuleCenter = function (points) {\n        // A..D\n        // |  :\n        // B--C\n        var pointA = points[0];\n        var pointB = points[1];\n        var pointC = points[2];\n        var pointD = points[3];\n        // calculate pseudo dimensions\n        var dimH = this.transitionsBetween(pointA, pointD) + 1;\n        var dimV = this.transitionsBetween(pointC, pointD) + 1;\n        // shift points for safe dimension detection\n        var pointAs = Detector.shiftPoint(pointA, pointB, dimV * 4);\n        var pointCs = Detector.shiftPoint(pointC, pointB, dimH * 4);\n        //  calculate more precise dimensions\n        dimH = this.transitionsBetween(pointAs, pointD) + 1;\n        dimV = this.transitionsBetween(pointCs, pointD) + 1;\n        if ((dimH & 0x01) === 1) {\n            dimH += 1;\n        }\n        if ((dimV & 0x01) === 1) {\n            dimV += 1;\n        }\n        // WhiteRectangleDetector returns points inside of the rectangle.\n        // I want points on the edges.\n        var centerX = (pointA.getX() + pointB.getX() + pointC.getX() + pointD.getX()) / 4;\n        var centerY = (pointA.getY() + pointB.getY() + pointC.getY() + pointD.getY()) / 4;\n        pointA = Detector.moveAway(pointA, centerX, centerY);\n        pointB = Detector.moveAway(pointB, centerX, centerY);\n        pointC = Detector.moveAway(pointC, centerX, centerY);\n        pointD = Detector.moveAway(pointD, centerX, centerY);\n        var pointBs;\n        var pointDs;\n        // shift points to the center of each modules\n        pointAs = Detector.shiftPoint(pointA, pointB, dimV * 4);\n        pointAs = Detector.shiftPoint(pointAs, pointD, dimH * 4);\n        pointBs = Detector.shiftPoint(pointB, pointA, dimV * 4);\n        pointBs = Detector.shiftPoint(pointBs, pointC, dimH * 4);\n        pointCs = Detector.shiftPoint(pointC, pointD, dimV * 4);\n        pointCs = Detector.shiftPoint(pointCs, pointB, dimH * 4);\n        pointDs = Detector.shiftPoint(pointD, pointC, dimV * 4);\n        pointDs = Detector.shiftPoint(pointDs, pointA, dimH * 4);\n        return [pointAs, pointBs, pointCs, pointDs];\n    };\n    Detector.prototype.isValid = function (p) {\n        return p.getX() >= 0 && p.getX() < this.image.getWidth() && p.getY() > 0 && p.getY() < this.image.getHeight();\n    };\n    Detector.sampleGrid = function (image, topLeft, bottomLeft, bottomRight, topRight, dimensionX, dimensionY) {\n        var sampler = GridSamplerInstance.getInstance();\n        return sampler.sampleGrid(image, dimensionX, dimensionY, 0.5, 0.5, dimensionX - 0.5, 0.5, dimensionX - 0.5, dimensionY - 0.5, 0.5, dimensionY - 0.5, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n    };\n    /**\n     * Counts the number of black/white transitions between two points, using something like Bresenham's algorithm.\n     */\n    Detector.prototype.transitionsBetween = function (from, to) {\n        // See QR Code Detector, sizeOfBlackWhiteBlackRun()\n        var fromX = Math.trunc(from.getX());\n        var fromY = Math.trunc(from.getY());\n        var toX = Math.trunc(to.getX());\n        var toY = Math.trunc(to.getY());\n        var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n        if (steep) {\n            var temp = fromX;\n            fromX = fromY;\n            fromY = temp;\n            temp = toX;\n            toX = toY;\n            toY = temp;\n        }\n        var dx = Math.abs(toX - fromX);\n        var dy = Math.abs(toY - fromY);\n        var error = -dx / 2;\n        var ystep = fromY < toY ? 1 : -1;\n        var xstep = fromX < toX ? 1 : -1;\n        var transitions = 0;\n        var inBlack = this.image.get(steep ? fromY : fromX, steep ? fromX : fromY);\n        for (var x = fromX, y = fromY; x !== toX; x += xstep) {\n            var isBlack = this.image.get(steep ? y : x, steep ? x : y);\n            if (isBlack !== inBlack) {\n                transitions++;\n                inBlack = isBlack;\n            }\n            error += dy;\n            if (error > 0) {\n                if (y === toY) {\n                    break;\n                }\n                y += ystep;\n                error -= dx;\n            }\n        }\n        return transitions;\n    };\n    return Detector;\n}());\nexport default Detector;\n","import BarcodeFormat from '../BarcodeFormat';\nimport BitMatrix from '../common/BitMatrix';\nimport DecodeHintType from '../DecodeHintType';\nimport NotFoundException from '../NotFoundException';\nimport Result from '../Result';\nimport ResultMetadataType from '../ResultMetadataType';\nimport System from '../util/System';\nimport Decoder from './decoder/Decoder';\nimport Detector from './detector/Detector';\n/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * This implementation can detect and decode Data Matrix codes in an image.\n *\n * @author bbrown@google.com (Brian Brown)\n */\nvar DataMatrixReader = /** @class */ (function () {\n    function DataMatrixReader() {\n        this.decoder = new Decoder();\n    }\n    /**\n     * Locates and decodes a Data Matrix code in an image.\n     *\n     * @return a String representing the content encoded by the Data Matrix code\n     * @throws NotFoundException if a Data Matrix code cannot be found\n     * @throws FormatException if a Data Matrix code cannot be decoded\n     * @throws ChecksumException if error correction fails\n     */\n    // @Override\n    // public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException {\n    //   return decode(image, null);\n    // }\n    // @Override\n    DataMatrixReader.prototype.decode = function (image, hints) {\n        if (hints === void 0) { hints = null; }\n        var decoderResult;\n        var points;\n        if (hints != null && hints.has(DecodeHintType.PURE_BARCODE)) {\n            var bits = DataMatrixReader.extractPureBits(image.getBlackMatrix());\n            decoderResult = this.decoder.decode(bits);\n            points = DataMatrixReader.NO_POINTS;\n        }\n        else {\n            var detectorResult = new Detector(image.getBlackMatrix()).detect();\n            decoderResult = this.decoder.decode(detectorResult.getBits());\n            points = detectorResult.getPoints();\n        }\n        var rawBytes = decoderResult.getRawBytes();\n        var result = new Result(decoderResult.getText(), rawBytes, 8 * rawBytes.length, points, BarcodeFormat.DATA_MATRIX, System.currentTimeMillis());\n        var byteSegments = decoderResult.getByteSegments();\n        if (byteSegments != null) {\n            result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments);\n        }\n        var ecLevel = decoderResult.getECLevel();\n        if (ecLevel != null) {\n            result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);\n        }\n        return result;\n    };\n    // @Override\n    DataMatrixReader.prototype.reset = function () {\n        // do nothing\n    };\n    /**\n     * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n     * which contains only an unrotated, unskewed, image of a code, with some white border\n     * around it. This is a specialized method that works exceptionally fast in this special\n     * case.\n     *\n     * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix)\n     */\n    DataMatrixReader.extractPureBits = function (image) {\n        var leftTopBlack = image.getTopLeftOnBit();\n        var rightBottomBlack = image.getBottomRightOnBit();\n        if (leftTopBlack == null || rightBottomBlack == null) {\n            throw new NotFoundException();\n        }\n        var moduleSize = this.moduleSize(leftTopBlack, image);\n        var top = leftTopBlack[1];\n        var bottom = rightBottomBlack[1];\n        var left = leftTopBlack[0];\n        var right = rightBottomBlack[0];\n        var matrixWidth = (right - left + 1) / moduleSize;\n        var matrixHeight = (bottom - top + 1) / moduleSize;\n        if (matrixWidth <= 0 || matrixHeight <= 0) {\n            throw new NotFoundException();\n        }\n        // Push in the \"border\" by half the module width so that we start\n        // sampling in the middle of the module. Just in case the image is a\n        // little off, this will help recover.\n        var nudge = moduleSize / 2;\n        top += nudge;\n        left += nudge;\n        // Now just read off the bits\n        var bits = new BitMatrix(matrixWidth, matrixHeight);\n        for (var y = 0; y < matrixHeight; y++) {\n            var iOffset = top + y * moduleSize;\n            for (var x = 0; x < matrixWidth; x++) {\n                if (image.get(left + x * moduleSize, iOffset)) {\n                    bits.set(x, y);\n                }\n            }\n        }\n        return bits;\n    };\n    DataMatrixReader.moduleSize = function (leftTopBlack, image) {\n        var width = image.getWidth();\n        var x = leftTopBlack[0];\n        var y = leftTopBlack[1];\n        while (x < width && image.get(x, y)) {\n            x++;\n        }\n        if (x === width) {\n            throw new NotFoundException();\n        }\n        var moduleSize = x - leftTopBlack[0];\n        if (moduleSize === 0) {\n            throw new NotFoundException();\n        }\n        return moduleSize;\n    };\n    DataMatrixReader.NO_POINTS = [];\n    return DataMatrixReader;\n}());\nexport default DataMatrixReader;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport DataMatrixReader from '../core/datamatrix/DataMatrixReader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserDatamatrixCodeReader = /** @class */ (function (_super) {\n    __extends(BrowserDatamatrixCodeReader, _super);\n    /**\n     * Creates an instance of BrowserQRCodeReader.\n     * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n     */\n    function BrowserDatamatrixCodeReader(timeBetweenScansMillis) {\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        return _super.call(this, new DataMatrixReader(), timeBetweenScansMillis) || this;\n    }\n    return BrowserDatamatrixCodeReader;\n}(BrowserCodeReader));\nexport { BrowserDatamatrixCodeReader };\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var DataMaskValues;\n(function (DataMaskValues) {\n    DataMaskValues[DataMaskValues[\"DATA_MASK_000\"] = 0] = \"DATA_MASK_000\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_001\"] = 1] = \"DATA_MASK_001\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_010\"] = 2] = \"DATA_MASK_010\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_011\"] = 3] = \"DATA_MASK_011\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_100\"] = 4] = \"DATA_MASK_100\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_101\"] = 5] = \"DATA_MASK_101\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_110\"] = 6] = \"DATA_MASK_110\";\n    DataMaskValues[DataMaskValues[\"DATA_MASK_111\"] = 7] = \"DATA_MASK_111\";\n})(DataMaskValues || (DataMaskValues = {}));\n/**\n * <p>Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations\n * of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix,\n * including areas used for finder patterns, timing patterns, etc. These areas should be unused\n * after the point they are unmasked anyway.</p>\n *\n * <p>Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position\n * and j is row position. In fact, as the text says, i is row position and j is column position.</p>\n *\n * @author Sean Owen\n */\nvar DataMask = /** @class */ (function () {\n    // See ISO 18004:2006 6.8.1\n    function DataMask(value, isMasked) {\n        this.value = value;\n        this.isMasked = isMasked;\n    }\n    // End of enum constants.\n    /**\n     * <p>Implementations of this method reverse the data masking process applied to a QR Code and\n     * make its bits ready to read.</p>\n     *\n     * @param bits representation of QR Code bits\n     * @param dimension dimension of QR Code, represented by bits, being unmasked\n     */\n    DataMask.prototype.unmaskBitMatrix = function (bits, dimension /*int*/) {\n        for (var i = 0; i < dimension; i++) {\n            for (var j = 0; j < dimension; j++) {\n                if (this.isMasked(i, j)) {\n                    bits.flip(j, i);\n                }\n            }\n        }\n    };\n    DataMask.values = new Map([\n        /**\n         * 000: mask bits for which (x + y) mod 2 == 0\n         */\n        [DataMaskValues.DATA_MASK_000, new DataMask(DataMaskValues.DATA_MASK_000, function (i /*int*/, j /*int*/) { return ((i + j) & 0x01) === 0; })],\n        /**\n         * 001: mask bits for which x mod 2 == 0\n         */\n        [DataMaskValues.DATA_MASK_001, new DataMask(DataMaskValues.DATA_MASK_001, function (i /*int*/, j /*int*/) { return (i & 0x01) === 0; })],\n        /**\n         * 010: mask bits for which y mod 3 == 0\n         */\n        [DataMaskValues.DATA_MASK_010, new DataMask(DataMaskValues.DATA_MASK_010, function (i /*int*/, j /*int*/) { return j % 3 === 0; })],\n        /**\n         * 011: mask bits for which (x + y) mod 3 == 0\n         */\n        [DataMaskValues.DATA_MASK_011, new DataMask(DataMaskValues.DATA_MASK_011, function (i /*int*/, j /*int*/) { return (i + j) % 3 === 0; })],\n        /**\n         * 100: mask bits for which (x/2 + y/3) mod 2 == 0\n         */\n        [DataMaskValues.DATA_MASK_100, new DataMask(DataMaskValues.DATA_MASK_100, function (i /*int*/, j /*int*/) { return ((Math.floor(i / 2) + Math.floor(j / 3)) & 0x01) === 0; })],\n        /**\n         * 101: mask bits for which xy mod 2 + xy mod 3 == 0\n         * equivalently, such that xy mod 6 == 0\n         */\n        [DataMaskValues.DATA_MASK_101, new DataMask(DataMaskValues.DATA_MASK_101, function (i /*int*/, j /*int*/) { return (i * j) % 6 === 0; })],\n        /**\n         * 110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0\n         * equivalently, such that xy mod 6 < 3\n         */\n        [DataMaskValues.DATA_MASK_110, new DataMask(DataMaskValues.DATA_MASK_110, function (i /*int*/, j /*int*/) { return ((i * j) % 6) < 3; })],\n        /**\n         * 111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0\n         * equivalently, such that (x + y + xy mod 3) mod 2 == 0\n         */\n        [DataMaskValues.DATA_MASK_111, new DataMask(DataMaskValues.DATA_MASK_111, function (i /*int*/, j /*int*/) { return ((i + j + ((i * j) % 3)) & 0x01) === 0; })],\n    ]);\n    return DataMask;\n}());\nexport default DataMask;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport ErrorCorrectionLevel from './ErrorCorrectionLevel';\nimport Integer from '../../util/Integer';\n/**\n * <p>Encapsulates a QR Code's format information, including the data mask used and\n * error correction level.</p>\n *\n * @author Sean Owen\n * @see DataMask\n * @see ErrorCorrectionLevel\n */\nvar FormatInformation = /** @class */ (function () {\n    function FormatInformation(formatInfo /*int*/) {\n        // Bits 3,4\n        this.errorCorrectionLevel = ErrorCorrectionLevel.forBits((formatInfo >> 3) & 0x03);\n        // Bottom 3 bits\n        this.dataMask = /*(byte) */ (formatInfo & 0x07);\n    }\n    FormatInformation.numBitsDiffering = function (a /*int*/, b /*int*/) {\n        return Integer.bitCount(a ^ b);\n    };\n    /**\n     * @param maskedFormatInfo1 format info indicator, with mask still applied\n     * @param maskedFormatInfo2 second copy of same info; both are checked at the same time\n     *  to establish best match\n     * @return information about the format it specifies, or {@code null}\n     *  if doesn't seem to match any known pattern\n     */\n    FormatInformation.decodeFormatInformation = function (maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n        var formatInfo = FormatInformation.doDecodeFormatInformation(maskedFormatInfo1, maskedFormatInfo2);\n        if (formatInfo !== null) {\n            return formatInfo;\n        }\n        // Should return null, but, some QR codes apparently\n        // do not mask this info. Try again by actually masking the pattern\n        // first\n        return FormatInformation.doDecodeFormatInformation(maskedFormatInfo1 ^ FormatInformation.FORMAT_INFO_MASK_QR, maskedFormatInfo2 ^ FormatInformation.FORMAT_INFO_MASK_QR);\n    };\n    FormatInformation.doDecodeFormatInformation = function (maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n        var e_1, _a;\n        // Find the int in FORMAT_INFO_DECODE_LOOKUP with fewest bits differing\n        var bestDifference = Number.MAX_SAFE_INTEGER;\n        var bestFormatInfo = 0;\n        try {\n            for (var _b = __values(FormatInformation.FORMAT_INFO_DECODE_LOOKUP), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var decodeInfo = _c.value;\n                var targetInfo = decodeInfo[0];\n                if (targetInfo === maskedFormatInfo1 || targetInfo === maskedFormatInfo2) {\n                    // Found an exact match\n                    return new FormatInformation(decodeInfo[1]);\n                }\n                var bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo1, targetInfo);\n                if (bitsDifference < bestDifference) {\n                    bestFormatInfo = decodeInfo[1];\n                    bestDifference = bitsDifference;\n                }\n                if (maskedFormatInfo1 !== maskedFormatInfo2) {\n                    // also try the other option\n                    bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo2, targetInfo);\n                    if (bitsDifference < bestDifference) {\n                        bestFormatInfo = decodeInfo[1];\n                        bestDifference = bitsDifference;\n                    }\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits\n        // differing means we found a match\n        if (bestDifference <= 3) {\n            return new FormatInformation(bestFormatInfo);\n        }\n        return null;\n    };\n    FormatInformation.prototype.getErrorCorrectionLevel = function () {\n        return this.errorCorrectionLevel;\n    };\n    FormatInformation.prototype.getDataMask = function () {\n        return this.dataMask;\n    };\n    /*@Override*/\n    FormatInformation.prototype.hashCode = function () {\n        return (this.errorCorrectionLevel.getBits() << 3) | this.dataMask;\n    };\n    /*@Override*/\n    FormatInformation.prototype.equals = function (o) {\n        if (!(o instanceof FormatInformation)) {\n            return false;\n        }\n        var other = o;\n        return this.errorCorrectionLevel === other.errorCorrectionLevel &&\n            this.dataMask === other.dataMask;\n    };\n    FormatInformation.FORMAT_INFO_MASK_QR = 0x5412;\n    /**\n     * See ISO 18004:2006, Annex C, Table C.1\n     */\n    FormatInformation.FORMAT_INFO_DECODE_LOOKUP = [\n        Int32Array.from([0x5412, 0x00]),\n        Int32Array.from([0x5125, 0x01]),\n        Int32Array.from([0x5E7C, 0x02]),\n        Int32Array.from([0x5B4B, 0x03]),\n        Int32Array.from([0x45F9, 0x04]),\n        Int32Array.from([0x40CE, 0x05]),\n        Int32Array.from([0x4F97, 0x06]),\n        Int32Array.from([0x4AA0, 0x07]),\n        Int32Array.from([0x77C4, 0x08]),\n        Int32Array.from([0x72F3, 0x09]),\n        Int32Array.from([0x7DAA, 0x0A]),\n        Int32Array.from([0x789D, 0x0B]),\n        Int32Array.from([0x662F, 0x0C]),\n        Int32Array.from([0x6318, 0x0D]),\n        Int32Array.from([0x6C41, 0x0E]),\n        Int32Array.from([0x6976, 0x0F]),\n        Int32Array.from([0x1689, 0x10]),\n        Int32Array.from([0x13BE, 0x11]),\n        Int32Array.from([0x1CE7, 0x12]),\n        Int32Array.from([0x19D0, 0x13]),\n        Int32Array.from([0x0762, 0x14]),\n        Int32Array.from([0x0255, 0x15]),\n        Int32Array.from([0x0D0C, 0x16]),\n        Int32Array.from([0x083B, 0x17]),\n        Int32Array.from([0x355F, 0x18]),\n        Int32Array.from([0x3068, 0x19]),\n        Int32Array.from([0x3F31, 0x1A]),\n        Int32Array.from([0x3A06, 0x1B]),\n        Int32Array.from([0x24B4, 0x1C]),\n        Int32Array.from([0x2183, 0x1D]),\n        Int32Array.from([0x2EDA, 0x1E]),\n        Int32Array.from([0x2BED, 0x1F]),\n    ];\n    return FormatInformation;\n}());\nexport default FormatInformation;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * <p>Encapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.</p>\n */\nvar ECBlocks = /** @class */ (function () {\n    function ECBlocks(ecCodewordsPerBlock /*int*/) {\n        var ecBlocks = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            ecBlocks[_i - 1] = arguments[_i];\n        }\n        this.ecCodewordsPerBlock = ecCodewordsPerBlock;\n        this.ecBlocks = ecBlocks;\n    }\n    ECBlocks.prototype.getECCodewordsPerBlock = function () {\n        return this.ecCodewordsPerBlock;\n    };\n    ECBlocks.prototype.getNumBlocks = function () {\n        var e_1, _a;\n        var total = 0;\n        var ecBlocks = this.ecBlocks;\n        try {\n            for (var ecBlocks_1 = __values(ecBlocks), ecBlocks_1_1 = ecBlocks_1.next(); !ecBlocks_1_1.done; ecBlocks_1_1 = ecBlocks_1.next()) {\n                var ecBlock = ecBlocks_1_1.value;\n                total += ecBlock.getCount();\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (ecBlocks_1_1 && !ecBlocks_1_1.done && (_a = ecBlocks_1.return)) _a.call(ecBlocks_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return total;\n    };\n    ECBlocks.prototype.getTotalECCodewords = function () {\n        return this.ecCodewordsPerBlock * this.getNumBlocks();\n    };\n    ECBlocks.prototype.getECBlocks = function () {\n        return this.ecBlocks;\n    };\n    return ECBlocks;\n}());\nexport default ECBlocks;\n","/**\n * <p>Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the QR code version's format.</p>\n */\nvar ECB = /** @class */ (function () {\n    function ECB(count /*int*/, dataCodewords /*int*/) {\n        this.count = count;\n        this.dataCodewords = dataCodewords;\n    }\n    ECB.prototype.getCount = function () {\n        return this.count;\n    };\n    ECB.prototype.getDataCodewords = function () {\n        return this.dataCodewords;\n    };\n    return ECB;\n}());\nexport default ECB;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport BitMatrix from '../../common/BitMatrix';\nimport FormatInformation from './FormatInformation';\nimport ECBlocks from './ECBlocks';\nimport ECB from './ECB';\nimport FormatException from '../../FormatException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * See ISO 18004:2006 Annex D\n *\n * @author Sean Owen\n */\nvar Version = /** @class */ (function () {\n    function Version(versionNumber /*int*/, alignmentPatternCenters) {\n        var e_1, _a;\n        var ecBlocks = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            ecBlocks[_i - 2] = arguments[_i];\n        }\n        this.versionNumber = versionNumber;\n        this.alignmentPatternCenters = alignmentPatternCenters;\n        this.ecBlocks = ecBlocks;\n        var total = 0;\n        var ecCodewords = ecBlocks[0].getECCodewordsPerBlock();\n        var ecbArray = ecBlocks[0].getECBlocks();\n        try {\n            for (var ecbArray_1 = __values(ecbArray), ecbArray_1_1 = ecbArray_1.next(); !ecbArray_1_1.done; ecbArray_1_1 = ecbArray_1.next()) {\n                var ecBlock = ecbArray_1_1.value;\n                total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (ecbArray_1_1 && !ecbArray_1_1.done && (_a = ecbArray_1.return)) _a.call(ecbArray_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        this.totalCodewords = total;\n    }\n    Version.prototype.getVersionNumber = function () {\n        return this.versionNumber;\n    };\n    Version.prototype.getAlignmentPatternCenters = function () {\n        return this.alignmentPatternCenters;\n    };\n    Version.prototype.getTotalCodewords = function () {\n        return this.totalCodewords;\n    };\n    Version.prototype.getDimensionForVersion = function () {\n        return 17 + 4 * this.versionNumber;\n    };\n    Version.prototype.getECBlocksForLevel = function (ecLevel) {\n        return this.ecBlocks[ecLevel.getValue()];\n        // TYPESCRIPTPORT: original was using ordinal, and using the order of levels as defined in ErrorCorrectionLevel enum (LMQH)\n        // I will use the direct value from ErrorCorrectionLevelValues enum which in typescript goes to a number\n    };\n    /**\n     * <p>Deduces version information purely from QR Code dimensions.</p>\n     *\n     * @param dimension dimension in modules\n     * @return Version for a QR Code of that dimension\n     * @throws FormatException if dimension is not 1 mod 4\n     */\n    Version.getProvisionalVersionForDimension = function (dimension /*int*/) {\n        if (dimension % 4 !== 1) {\n            throw new FormatException();\n        }\n        try {\n            return this.getVersionForNumber((dimension - 17) / 4);\n        }\n        catch (ignored /*: IllegalArgumentException*/) {\n            throw new FormatException();\n        }\n    };\n    Version.getVersionForNumber = function (versionNumber /*int*/) {\n        if (versionNumber < 1 || versionNumber > 40) {\n            throw new IllegalArgumentException();\n        }\n        return Version.VERSIONS[versionNumber - 1];\n    };\n    Version.decodeVersionInformation = function (versionBits /*int*/) {\n        var bestDifference = Number.MAX_SAFE_INTEGER;\n        var bestVersion = 0;\n        for (var i = 0; i < Version.VERSION_DECODE_INFO.length; i++) {\n            var targetVersion = Version.VERSION_DECODE_INFO[i];\n            // Do the version info bits match exactly? done.\n            if (targetVersion === versionBits) {\n                return Version.getVersionForNumber(i + 7);\n            }\n            // Otherwise see if this is the closest to a real version info bit string\n            // we have seen so far\n            var bitsDifference = FormatInformation.numBitsDiffering(versionBits, targetVersion);\n            if (bitsDifference < bestDifference) {\n                bestVersion = i + 7;\n                bestDifference = bitsDifference;\n            }\n        }\n        // We can tolerate up to 3 bits of error since no two version info codewords will\n        // differ in less than 8 bits.\n        if (bestDifference <= 3) {\n            return Version.getVersionForNumber(bestVersion);\n        }\n        // If we didn't find a close enough match, fail\n        return null;\n    };\n    /**\n     * See ISO 18004:2006 Annex E\n     */\n    Version.prototype.buildFunctionPattern = function () {\n        var dimension = this.getDimensionForVersion();\n        var bitMatrix = new BitMatrix(dimension);\n        // Top left finder pattern + separator + format\n        bitMatrix.setRegion(0, 0, 9, 9);\n        // Top right finder pattern + separator + format\n        bitMatrix.setRegion(dimension - 8, 0, 8, 9);\n        // Bottom left finder pattern + separator + format\n        bitMatrix.setRegion(0, dimension - 8, 9, 8);\n        // Alignment patterns\n        var max = this.alignmentPatternCenters.length;\n        for (var x = 0; x < max; x++) {\n            var i = this.alignmentPatternCenters[x] - 2;\n            for (var y = 0; y < max; y++) {\n                if ((x === 0 && (y === 0 || y === max - 1)) || (x === max - 1 && y === 0)) {\n                    // No alignment patterns near the three finder patterns\n                    continue;\n                }\n                bitMatrix.setRegion(this.alignmentPatternCenters[y] - 2, i, 5, 5);\n            }\n        }\n        // Vertical timing pattern\n        bitMatrix.setRegion(6, 9, 1, dimension - 17);\n        // Horizontal timing pattern\n        bitMatrix.setRegion(9, 6, dimension - 17, 1);\n        if (this.versionNumber > 6) {\n            // Version info, top right\n            bitMatrix.setRegion(dimension - 11, 0, 3, 6);\n            // Version info, bottom left\n            bitMatrix.setRegion(0, dimension - 11, 6, 3);\n        }\n        return bitMatrix;\n    };\n    /*@Override*/\n    Version.prototype.toString = function () {\n        return '' + this.versionNumber;\n    };\n    /**\n       * See ISO 18004:2006 Annex D.\n       * Element i represents the raw version bits that specify version i + 7\n       */\n    Version.VERSION_DECODE_INFO = Int32Array.from([\n        0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6,\n        0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78,\n        0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683,\n        0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB,\n        0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250,\n        0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B,\n        0x2542E, 0x26A64, 0x27541, 0x28C69\n    ]);\n    /**\n       * See ISO 18004:2006 6.5.1 Table 9\n       */\n    Version.VERSIONS = [\n        new Version(1, new Int32Array(0), new ECBlocks(7, new ECB(1, 19)), new ECBlocks(10, new ECB(1, 16)), new ECBlocks(13, new ECB(1, 13)), new ECBlocks(17, new ECB(1, 9))),\n        new Version(2, Int32Array.from([6, 18]), new ECBlocks(10, new ECB(1, 34)), new ECBlocks(16, new ECB(1, 28)), new ECBlocks(22, new ECB(1, 22)), new ECBlocks(28, new ECB(1, 16))),\n        new Version(3, Int32Array.from([6, 22]), new ECBlocks(15, new ECB(1, 55)), new ECBlocks(26, new ECB(1, 44)), new ECBlocks(18, new ECB(2, 17)), new ECBlocks(22, new ECB(2, 13))),\n        new Version(4, Int32Array.from([6, 26]), new ECBlocks(20, new ECB(1, 80)), new ECBlocks(18, new ECB(2, 32)), new ECBlocks(26, new ECB(2, 24)), new ECBlocks(16, new ECB(4, 9))),\n        new Version(5, Int32Array.from([6, 30]), new ECBlocks(26, new ECB(1, 108)), new ECBlocks(24, new ECB(2, 43)), new ECBlocks(18, new ECB(2, 15), new ECB(2, 16)), new ECBlocks(22, new ECB(2, 11), new ECB(2, 12))),\n        new Version(6, Int32Array.from([6, 34]), new ECBlocks(18, new ECB(2, 68)), new ECBlocks(16, new ECB(4, 27)), new ECBlocks(24, new ECB(4, 19)), new ECBlocks(28, new ECB(4, 15))),\n        new Version(7, Int32Array.from([6, 22, 38]), new ECBlocks(20, new ECB(2, 78)), new ECBlocks(18, new ECB(4, 31)), new ECBlocks(18, new ECB(2, 14), new ECB(4, 15)), new ECBlocks(26, new ECB(4, 13), new ECB(1, 14))),\n        new Version(8, Int32Array.from([6, 24, 42]), new ECBlocks(24, new ECB(2, 97)), new ECBlocks(22, new ECB(2, 38), new ECB(2, 39)), new ECBlocks(22, new ECB(4, 18), new ECB(2, 19)), new ECBlocks(26, new ECB(4, 14), new ECB(2, 15))),\n        new Version(9, Int32Array.from([6, 26, 46]), new ECBlocks(30, new ECB(2, 116)), new ECBlocks(22, new ECB(3, 36), new ECB(2, 37)), new ECBlocks(20, new ECB(4, 16), new ECB(4, 17)), new ECBlocks(24, new ECB(4, 12), new ECB(4, 13))),\n        new Version(10, Int32Array.from([6, 28, 50]), new ECBlocks(18, new ECB(2, 68), new ECB(2, 69)), new ECBlocks(26, new ECB(4, 43), new ECB(1, 44)), new ECBlocks(24, new ECB(6, 19), new ECB(2, 20)), new ECBlocks(28, new ECB(6, 15), new ECB(2, 16))),\n        new Version(11, Int32Array.from([6, 30, 54]), new ECBlocks(20, new ECB(4, 81)), new ECBlocks(30, new ECB(1, 50), new ECB(4, 51)), new ECBlocks(28, new ECB(4, 22), new ECB(4, 23)), new ECBlocks(24, new ECB(3, 12), new ECB(8, 13))),\n        new Version(12, Int32Array.from([6, 32, 58]), new ECBlocks(24, new ECB(2, 92), new ECB(2, 93)), new ECBlocks(22, new ECB(6, 36), new ECB(2, 37)), new ECBlocks(26, new ECB(4, 20), new ECB(6, 21)), new ECBlocks(28, new ECB(7, 14), new ECB(4, 15))),\n        new Version(13, Int32Array.from([6, 34, 62]), new ECBlocks(26, new ECB(4, 107)), new ECBlocks(22, new ECB(8, 37), new ECB(1, 38)), new ECBlocks(24, new ECB(8, 20), new ECB(4, 21)), new ECBlocks(22, new ECB(12, 11), new ECB(4, 12))),\n        new Version(14, Int32Array.from([6, 26, 46, 66]), new ECBlocks(30, new ECB(3, 115), new ECB(1, 116)), new ECBlocks(24, new ECB(4, 40), new ECB(5, 41)), new ECBlocks(20, new ECB(11, 16), new ECB(5, 17)), new ECBlocks(24, new ECB(11, 12), new ECB(5, 13))),\n        new Version(15, Int32Array.from([6, 26, 48, 70]), new ECBlocks(22, new ECB(5, 87), new ECB(1, 88)), new ECBlocks(24, new ECB(5, 41), new ECB(5, 42)), new ECBlocks(30, new ECB(5, 24), new ECB(7, 25)), new ECBlocks(24, new ECB(11, 12), new ECB(7, 13))),\n        new Version(16, Int32Array.from([6, 26, 50, 74]), new ECBlocks(24, new ECB(5, 98), new ECB(1, 99)), new ECBlocks(28, new ECB(7, 45), new ECB(3, 46)), new ECBlocks(24, new ECB(15, 19), new ECB(2, 20)), new ECBlocks(30, new ECB(3, 15), new ECB(13, 16))),\n        new Version(17, Int32Array.from([6, 30, 54, 78]), new ECBlocks(28, new ECB(1, 107), new ECB(5, 108)), new ECBlocks(28, new ECB(10, 46), new ECB(1, 47)), new ECBlocks(28, new ECB(1, 22), new ECB(15, 23)), new ECBlocks(28, new ECB(2, 14), new ECB(17, 15))),\n        new Version(18, Int32Array.from([6, 30, 56, 82]), new ECBlocks(30, new ECB(5, 120), new ECB(1, 121)), new ECBlocks(26, new ECB(9, 43), new ECB(4, 44)), new ECBlocks(28, new ECB(17, 22), new ECB(1, 23)), new ECBlocks(28, new ECB(2, 14), new ECB(19, 15))),\n        new Version(19, Int32Array.from([6, 30, 58, 86]), new ECBlocks(28, new ECB(3, 113), new ECB(4, 114)), new ECBlocks(26, new ECB(3, 44), new ECB(11, 45)), new ECBlocks(26, new ECB(17, 21), new ECB(4, 22)), new ECBlocks(26, new ECB(9, 13), new ECB(16, 14))),\n        new Version(20, Int32Array.from([6, 34, 62, 90]), new ECBlocks(28, new ECB(3, 107), new ECB(5, 108)), new ECBlocks(26, new ECB(3, 41), new ECB(13, 42)), new ECBlocks(30, new ECB(15, 24), new ECB(5, 25)), new ECBlocks(28, new ECB(15, 15), new ECB(10, 16))),\n        new Version(21, Int32Array.from([6, 28, 50, 72, 94]), new ECBlocks(28, new ECB(4, 116), new ECB(4, 117)), new ECBlocks(26, new ECB(17, 42)), new ECBlocks(28, new ECB(17, 22), new ECB(6, 23)), new ECBlocks(30, new ECB(19, 16), new ECB(6, 17))),\n        new Version(22, Int32Array.from([6, 26, 50, 74, 98]), new ECBlocks(28, new ECB(2, 111), new ECB(7, 112)), new ECBlocks(28, new ECB(17, 46)), new ECBlocks(30, new ECB(7, 24), new ECB(16, 25)), new ECBlocks(24, new ECB(34, 13))),\n        new Version(23, Int32Array.from([6, 30, 54, 78, 102]), new ECBlocks(30, new ECB(4, 121), new ECB(5, 122)), new ECBlocks(28, new ECB(4, 47), new ECB(14, 48)), new ECBlocks(30, new ECB(11, 24), new ECB(14, 25)), new ECBlocks(30, new ECB(16, 15), new ECB(14, 16))),\n        new Version(24, Int32Array.from([6, 28, 54, 80, 106]), new ECBlocks(30, new ECB(6, 117), new ECB(4, 118)), new ECBlocks(28, new ECB(6, 45), new ECB(14, 46)), new ECBlocks(30, new ECB(11, 24), new ECB(16, 25)), new ECBlocks(30, new ECB(30, 16), new ECB(2, 17))),\n        new Version(25, Int32Array.from([6, 32, 58, 84, 110]), new ECBlocks(26, new ECB(8, 106), new ECB(4, 107)), new ECBlocks(28, new ECB(8, 47), new ECB(13, 48)), new ECBlocks(30, new ECB(7, 24), new ECB(22, 25)), new ECBlocks(30, new ECB(22, 15), new ECB(13, 16))),\n        new Version(26, Int32Array.from([6, 30, 58, 86, 114]), new ECBlocks(28, new ECB(10, 114), new ECB(2, 115)), new ECBlocks(28, new ECB(19, 46), new ECB(4, 47)), new ECBlocks(28, new ECB(28, 22), new ECB(6, 23)), new ECBlocks(30, new ECB(33, 16), new ECB(4, 17))),\n        new Version(27, Int32Array.from([6, 34, 62, 90, 118]), new ECBlocks(30, new ECB(8, 122), new ECB(4, 123)), new ECBlocks(28, new ECB(22, 45), new ECB(3, 46)), new ECBlocks(30, new ECB(8, 23), new ECB(26, 24)), new ECBlocks(30, new ECB(12, 15), new ECB(28, 16))),\n        new Version(28, Int32Array.from([6, 26, 50, 74, 98, 122]), new ECBlocks(30, new ECB(3, 117), new ECB(10, 118)), new ECBlocks(28, new ECB(3, 45), new ECB(23, 46)), new ECBlocks(30, new ECB(4, 24), new ECB(31, 25)), new ECBlocks(30, new ECB(11, 15), new ECB(31, 16))),\n        new Version(29, Int32Array.from([6, 30, 54, 78, 102, 126]), new ECBlocks(30, new ECB(7, 116), new ECB(7, 117)), new ECBlocks(28, new ECB(21, 45), new ECB(7, 46)), new ECBlocks(30, new ECB(1, 23), new ECB(37, 24)), new ECBlocks(30, new ECB(19, 15), new ECB(26, 16))),\n        new Version(30, Int32Array.from([6, 26, 52, 78, 104, 130]), new ECBlocks(30, new ECB(5, 115), new ECB(10, 116)), new ECBlocks(28, new ECB(19, 47), new ECB(10, 48)), new ECBlocks(30, new ECB(15, 24), new ECB(25, 25)), new ECBlocks(30, new ECB(23, 15), new ECB(25, 16))),\n        new Version(31, Int32Array.from([6, 30, 56, 82, 108, 134]), new ECBlocks(30, new ECB(13, 115), new ECB(3, 116)), new ECBlocks(28, new ECB(2, 46), new ECB(29, 47)), new ECBlocks(30, new ECB(42, 24), new ECB(1, 25)), new ECBlocks(30, new ECB(23, 15), new ECB(28, 16))),\n        new Version(32, Int32Array.from([6, 34, 60, 86, 112, 138]), new ECBlocks(30, new ECB(17, 115)), new ECBlocks(28, new ECB(10, 46), new ECB(23, 47)), new ECBlocks(30, new ECB(10, 24), new ECB(35, 25)), new ECBlocks(30, new ECB(19, 15), new ECB(35, 16))),\n        new Version(33, Int32Array.from([6, 30, 58, 86, 114, 142]), new ECBlocks(30, new ECB(17, 115), new ECB(1, 116)), new ECBlocks(28, new ECB(14, 46), new ECB(21, 47)), new ECBlocks(30, new ECB(29, 24), new ECB(19, 25)), new ECBlocks(30, new ECB(11, 15), new ECB(46, 16))),\n        new Version(34, Int32Array.from([6, 34, 62, 90, 118, 146]), new ECBlocks(30, new ECB(13, 115), new ECB(6, 116)), new ECBlocks(28, new ECB(14, 46), new ECB(23, 47)), new ECBlocks(30, new ECB(44, 24), new ECB(7, 25)), new ECBlocks(30, new ECB(59, 16), new ECB(1, 17))),\n        new Version(35, Int32Array.from([6, 30, 54, 78, 102, 126, 150]), new ECBlocks(30, new ECB(12, 121), new ECB(7, 122)), new ECBlocks(28, new ECB(12, 47), new ECB(26, 48)), new ECBlocks(30, new ECB(39, 24), new ECB(14, 25)), new ECBlocks(30, new ECB(22, 15), new ECB(41, 16))),\n        new Version(36, Int32Array.from([6, 24, 50, 76, 102, 128, 154]), new ECBlocks(30, new ECB(6, 121), new ECB(14, 122)), new ECBlocks(28, new ECB(6, 47), new ECB(34, 48)), new ECBlocks(30, new ECB(46, 24), new ECB(10, 25)), new ECBlocks(30, new ECB(2, 15), new ECB(64, 16))),\n        new Version(37, Int32Array.from([6, 28, 54, 80, 106, 132, 158]), new ECBlocks(30, new ECB(17, 122), new ECB(4, 123)), new ECBlocks(28, new ECB(29, 46), new ECB(14, 47)), new ECBlocks(30, new ECB(49, 24), new ECB(10, 25)), new ECBlocks(30, new ECB(24, 15), new ECB(46, 16))),\n        new Version(38, Int32Array.from([6, 32, 58, 84, 110, 136, 162]), new ECBlocks(30, new ECB(4, 122), new ECB(18, 123)), new ECBlocks(28, new ECB(13, 46), new ECB(32, 47)), new ECBlocks(30, new ECB(48, 24), new ECB(14, 25)), new ECBlocks(30, new ECB(42, 15), new ECB(32, 16))),\n        new Version(39, Int32Array.from([6, 26, 54, 82, 110, 138, 166]), new ECBlocks(30, new ECB(20, 117), new ECB(4, 118)), new ECBlocks(28, new ECB(40, 47), new ECB(7, 48)), new ECBlocks(30, new ECB(43, 24), new ECB(22, 25)), new ECBlocks(30, new ECB(10, 15), new ECB(67, 16))),\n        new Version(40, Int32Array.from([6, 30, 58, 86, 114, 142, 170]), new ECBlocks(30, new ECB(19, 118), new ECB(6, 119)), new ECBlocks(28, new ECB(18, 47), new ECB(31, 48)), new ECBlocks(30, new ECB(34, 24), new ECB(34, 25)), new ECBlocks(30, new ECB(20, 15), new ECB(61, 16)))\n    ];\n    return Version;\n}());\nexport default Version;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from '../../IllegalArgumentException';\nexport var ModeValues;\n(function (ModeValues) {\n    ModeValues[ModeValues[\"TERMINATOR\"] = 0] = \"TERMINATOR\";\n    ModeValues[ModeValues[\"NUMERIC\"] = 1] = \"NUMERIC\";\n    ModeValues[ModeValues[\"ALPHANUMERIC\"] = 2] = \"ALPHANUMERIC\";\n    ModeValues[ModeValues[\"STRUCTURED_APPEND\"] = 3] = \"STRUCTURED_APPEND\";\n    ModeValues[ModeValues[\"BYTE\"] = 4] = \"BYTE\";\n    ModeValues[ModeValues[\"ECI\"] = 5] = \"ECI\";\n    ModeValues[ModeValues[\"KANJI\"] = 6] = \"KANJI\";\n    ModeValues[ModeValues[\"FNC1_FIRST_POSITION\"] = 7] = \"FNC1_FIRST_POSITION\";\n    ModeValues[ModeValues[\"FNC1_SECOND_POSITION\"] = 8] = \"FNC1_SECOND_POSITION\";\n    /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n    ModeValues[ModeValues[\"HANZI\"] = 9] = \"HANZI\";\n})(ModeValues || (ModeValues = {}));\n/**\n * <p>See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which\n * data can be encoded to bits in the QR code standard.</p>\n *\n * @author Sean Owen\n */\nvar Mode = /** @class */ (function () {\n    function Mode(value, stringValue, characterCountBitsForVersions, bits /*int*/) {\n        this.value = value;\n        this.stringValue = stringValue;\n        this.characterCountBitsForVersions = characterCountBitsForVersions;\n        this.bits = bits;\n        Mode.FOR_BITS.set(bits, this);\n        Mode.FOR_VALUE.set(value, this);\n    }\n    /**\n     * @param bits four bits encoding a QR Code data mode\n     * @return Mode encoded by these bits\n     * @throws IllegalArgumentException if bits do not correspond to a known mode\n     */\n    Mode.forBits = function (bits /*int*/) {\n        var mode = Mode.FOR_BITS.get(bits);\n        if (undefined === mode) {\n            throw new IllegalArgumentException();\n        }\n        return mode;\n    };\n    /**\n     * @param version version in question\n     * @return number of bits used, in this QR Code symbol {@link Version}, to encode the\n     *         count of characters that will follow encoded in this Mode\n     */\n    Mode.prototype.getCharacterCountBits = function (version) {\n        var versionNumber = version.getVersionNumber();\n        var offset;\n        if (versionNumber <= 9) {\n            offset = 0;\n        }\n        else if (versionNumber <= 26) {\n            offset = 1;\n        }\n        else {\n            offset = 2;\n        }\n        return this.characterCountBitsForVersions[offset];\n    };\n    Mode.prototype.getValue = function () {\n        return this.value;\n    };\n    Mode.prototype.getBits = function () {\n        return this.bits;\n    };\n    Mode.prototype.equals = function (o) {\n        if (!(o instanceof Mode)) {\n            return false;\n        }\n        var other = o;\n        return this.value === other.value;\n    };\n    Mode.prototype.toString = function () {\n        return this.stringValue;\n    };\n    Mode.FOR_BITS = new Map();\n    Mode.FOR_VALUE = new Map();\n    Mode.TERMINATOR = new Mode(ModeValues.TERMINATOR, 'TERMINATOR', Int32Array.from([0, 0, 0]), 0x00); // Not really a mode...\n    Mode.NUMERIC = new Mode(ModeValues.NUMERIC, 'NUMERIC', Int32Array.from([10, 12, 14]), 0x01);\n    Mode.ALPHANUMERIC = new Mode(ModeValues.ALPHANUMERIC, 'ALPHANUMERIC', Int32Array.from([9, 11, 13]), 0x02);\n    Mode.STRUCTURED_APPEND = new Mode(ModeValues.STRUCTURED_APPEND, 'STRUCTURED_APPEND', Int32Array.from([0, 0, 0]), 0x03); // Not supported\n    Mode.BYTE = new Mode(ModeValues.BYTE, 'BYTE', Int32Array.from([8, 16, 16]), 0x04);\n    Mode.ECI = new Mode(ModeValues.ECI, 'ECI', Int32Array.from([0, 0, 0]), 0x07); // character counts don't apply\n    Mode.KANJI = new Mode(ModeValues.KANJI, 'KANJI', Int32Array.from([8, 10, 12]), 0x08);\n    Mode.FNC1_FIRST_POSITION = new Mode(ModeValues.FNC1_FIRST_POSITION, 'FNC1_FIRST_POSITION', Int32Array.from([0, 0, 0]), 0x05);\n    Mode.FNC1_SECOND_POSITION = new Mode(ModeValues.FNC1_SECOND_POSITION, 'FNC1_SECOND_POSITION', Int32Array.from([0, 0, 0]), 0x09);\n    /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n    Mode.HANZI = new Mode(ModeValues.HANZI, 'HANZI', Int32Array.from([8, 10, 12]), 0x0D);\n    return Mode;\n}());\nexport default Mode;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Version from './Version';\nimport FormatInformation from './FormatInformation';\nimport DataMask from './DataMask';\nimport FormatException from '../../FormatException';\n/**\n * @author Sean Owen\n */\nvar BitMatrixParser = /** @class */ (function () {\n    /**\n     * @param bitMatrix {@link BitMatrix} to parse\n     * @throws FormatException if dimension is not >= 21 and 1 mod 4\n     */\n    function BitMatrixParser(bitMatrix) {\n        var dimension = bitMatrix.getHeight();\n        if (dimension < 21 || (dimension & 0x03) !== 1) {\n            throw new FormatException();\n        }\n        this.bitMatrix = bitMatrix;\n    }\n    /**\n     * <p>Reads format information from one of its two locations within the QR Code.</p>\n     *\n     * @return {@link FormatInformation} encapsulating the QR Code's format info\n     * @throws FormatException if both format information locations cannot be parsed as\n     * the valid encoding of format information\n     */\n    BitMatrixParser.prototype.readFormatInformation = function () {\n        if (this.parsedFormatInfo !== null && this.parsedFormatInfo !== undefined) {\n            return this.parsedFormatInfo;\n        }\n        // Read top-left format info bits\n        var formatInfoBits1 = 0;\n        for (var i = 0; i < 6; i++) {\n            formatInfoBits1 = this.copyBit(i, 8, formatInfoBits1);\n        }\n        // .. and skip a bit in the timing pattern ...\n        formatInfoBits1 = this.copyBit(7, 8, formatInfoBits1);\n        formatInfoBits1 = this.copyBit(8, 8, formatInfoBits1);\n        formatInfoBits1 = this.copyBit(8, 7, formatInfoBits1);\n        // .. and skip a bit in the timing pattern ...\n        for (var j = 5; j >= 0; j--) {\n            formatInfoBits1 = this.copyBit(8, j, formatInfoBits1);\n        }\n        // Read the top-right/bottom-left pattern too\n        var dimension = this.bitMatrix.getHeight();\n        var formatInfoBits2 = 0;\n        var jMin = dimension - 7;\n        for (var j = dimension - 1; j >= jMin; j--) {\n            formatInfoBits2 = this.copyBit(8, j, formatInfoBits2);\n        }\n        for (var i = dimension - 8; i < dimension; i++) {\n            formatInfoBits2 = this.copyBit(i, 8, formatInfoBits2);\n        }\n        this.parsedFormatInfo = FormatInformation.decodeFormatInformation(formatInfoBits1, formatInfoBits2);\n        if (this.parsedFormatInfo !== null) {\n            return this.parsedFormatInfo;\n        }\n        throw new FormatException();\n    };\n    /**\n     * <p>Reads version information from one of its two locations within the QR Code.</p>\n     *\n     * @return {@link Version} encapsulating the QR Code's version\n     * @throws FormatException if both version information locations cannot be parsed as\n     * the valid encoding of version information\n     */\n    BitMatrixParser.prototype.readVersion = function () {\n        if (this.parsedVersion !== null && this.parsedVersion !== undefined) {\n            return this.parsedVersion;\n        }\n        var dimension = this.bitMatrix.getHeight();\n        var provisionalVersion = Math.floor((dimension - 17) / 4);\n        if (provisionalVersion <= 6) {\n            return Version.getVersionForNumber(provisionalVersion);\n        }\n        // Read top-right version info: 3 wide by 6 tall\n        var versionBits = 0;\n        var ijMin = dimension - 11;\n        for (var j = 5; j >= 0; j--) {\n            for (var i = dimension - 9; i >= ijMin; i--) {\n                versionBits = this.copyBit(i, j, versionBits);\n            }\n        }\n        var theParsedVersion = Version.decodeVersionInformation(versionBits);\n        if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n            this.parsedVersion = theParsedVersion;\n            return theParsedVersion;\n        }\n        // Hmm, failed. Try bottom left: 6 wide by 3 tall\n        versionBits = 0;\n        for (var i = 5; i >= 0; i--) {\n            for (var j = dimension - 9; j >= ijMin; j--) {\n                versionBits = this.copyBit(i, j, versionBits);\n            }\n        }\n        theParsedVersion = Version.decodeVersionInformation(versionBits);\n        if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n            this.parsedVersion = theParsedVersion;\n            return theParsedVersion;\n        }\n        throw new FormatException();\n    };\n    BitMatrixParser.prototype.copyBit = function (i /*int*/, j /*int*/, versionBits /*int*/) {\n        var bit = this.isMirror ? this.bitMatrix.get(j, i) : this.bitMatrix.get(i, j);\n        return bit ? (versionBits << 1) | 0x1 : versionBits << 1;\n    };\n    /**\n     * <p>Reads the bits in the {@link BitMatrix} representing the finder pattern in the\n     * correct order in order to reconstruct the codewords bytes contained within the\n     * QR Code.</p>\n     *\n     * @return bytes encoded within the QR Code\n     * @throws FormatException if the exact number of bytes expected is not read\n     */\n    BitMatrixParser.prototype.readCodewords = function () {\n        var formatInfo = this.readFormatInformation();\n        var version = this.readVersion();\n        // Get the data mask for the format used in this QR Code. This will exclude\n        // some bits from reading as we wind through the bit matrix.\n        var dataMask = DataMask.values.get(formatInfo.getDataMask());\n        var dimension = this.bitMatrix.getHeight();\n        dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n        var functionPattern = version.buildFunctionPattern();\n        var readingUp = true;\n        var result = new Uint8Array(version.getTotalCodewords());\n        var resultOffset = 0;\n        var currentByte = 0;\n        var bitsRead = 0;\n        // Read columns in pairs, from right to left\n        for (var j = dimension - 1; j > 0; j -= 2) {\n            if (j === 6) {\n                // Skip whole column with vertical alignment pattern\n                // saves time and makes the other code proceed more cleanly\n                j--;\n            }\n            // Read alternatingly from bottom to top then top to bottom\n            for (var count = 0; count < dimension; count++) {\n                var i = readingUp ? dimension - 1 - count : count;\n                for (var col = 0; col < 2; col++) {\n                    // Ignore bits covered by the function pattern\n                    if (!functionPattern.get(j - col, i)) {\n                        // Read a bit\n                        bitsRead++;\n                        currentByte <<= 1;\n                        if (this.bitMatrix.get(j - col, i)) {\n                            currentByte |= 1;\n                        }\n                        // If we've made a whole byte, save it off\n                        if (bitsRead === 8) {\n                            result[resultOffset++] = /*(byte) */ currentByte;\n                            bitsRead = 0;\n                            currentByte = 0;\n                        }\n                    }\n                }\n            }\n            readingUp = !readingUp; // readingUp ^= true; // readingUp = !readingUp; // switch directions\n        }\n        if (resultOffset !== version.getTotalCodewords()) {\n            throw new FormatException();\n        }\n        return result;\n    };\n    /**\n     * Revert the mask removal done while reading the code words. The bit matrix should revert to its original state.\n     */\n    BitMatrixParser.prototype.remask = function () {\n        if (this.parsedFormatInfo === null) {\n            return; // We have no format information, and have no data mask\n        }\n        var dataMask = DataMask.values[this.parsedFormatInfo.getDataMask()];\n        var dimension = this.bitMatrix.getHeight();\n        dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n    };\n    /**\n     * Prepare the parser for a mirrored operation.\n     * This flag has effect only on the {@link #readFormatInformation()} and the\n     * {@link #readVersion()}. Before proceeding with {@link #readCodewords()} the\n     * {@link #mirror()} method should be called.\n     *\n     * @param mirror Whether to read version and format information mirrored.\n     */\n    BitMatrixParser.prototype.setMirror = function (isMirror) {\n        this.parsedVersion = null;\n        this.parsedFormatInfo = null;\n        this.isMirror = isMirror;\n    };\n    /** Mirror the bit matrix in order to attempt a second reading. */\n    BitMatrixParser.prototype.mirror = function () {\n        var bitMatrix = this.bitMatrix;\n        for (var x = 0, width = bitMatrix.getWidth(); x < width; x++) {\n            for (var y = x + 1, height = bitMatrix.getHeight(); y < height; y++) {\n                if (bitMatrix.get(x, y) !== bitMatrix.get(y, x)) {\n                    bitMatrix.flip(y, x);\n                    bitMatrix.flip(x, y);\n                }\n            }\n        }\n    };\n    return BitMatrixParser;\n}());\nexport default BitMatrixParser;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * <p>Encapsulates a block of data within a QR Code. QR Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.</p>\n *\n * @author Sean Owen\n */\nvar DataBlock = /** @class */ (function () {\n    function DataBlock(numDataCodewords /*int*/, codewords) {\n        this.numDataCodewords = numDataCodewords;\n        this.codewords = codewords;\n    }\n    /**\n     * <p>When QR Codes use multiple data blocks, they are actually interleaved.\n     * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n     * method will separate the data into original blocks.</p>\n     *\n     * @param rawCodewords bytes as read directly from the QR Code\n     * @param version version of the QR Code\n     * @param ecLevel error-correction level of the QR Code\n     * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n     *         QR Code\n     */\n    DataBlock.getDataBlocks = function (rawCodewords, version, ecLevel) {\n        var e_1, _a, e_2, _b;\n        if (rawCodewords.length !== version.getTotalCodewords()) {\n            throw new IllegalArgumentException();\n        }\n        // Figure out the number and size of data blocks used by this version and\n        // error correction level\n        var ecBlocks = version.getECBlocksForLevel(ecLevel);\n        // First count the total number of data blocks\n        var totalBlocks = 0;\n        var ecBlockArray = ecBlocks.getECBlocks();\n        try {\n            for (var ecBlockArray_1 = __values(ecBlockArray), ecBlockArray_1_1 = ecBlockArray_1.next(); !ecBlockArray_1_1.done; ecBlockArray_1_1 = ecBlockArray_1.next()) {\n                var ecBlock = ecBlockArray_1_1.value;\n                totalBlocks += ecBlock.getCount();\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (ecBlockArray_1_1 && !ecBlockArray_1_1.done && (_a = ecBlockArray_1.return)) _a.call(ecBlockArray_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        // Now establish DataBlocks of the appropriate size and number of data codewords\n        var result = new Array(totalBlocks);\n        var numResultBlocks = 0;\n        try {\n            for (var ecBlockArray_2 = __values(ecBlockArray), ecBlockArray_2_1 = ecBlockArray_2.next(); !ecBlockArray_2_1.done; ecBlockArray_2_1 = ecBlockArray_2.next()) {\n                var ecBlock = ecBlockArray_2_1.value;\n                for (var i = 0; i < ecBlock.getCount(); i++) {\n                    var numDataCodewords = ecBlock.getDataCodewords();\n                    var numBlockCodewords = ecBlocks.getECCodewordsPerBlock() + numDataCodewords;\n                    result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (ecBlockArray_2_1 && !ecBlockArray_2_1.done && (_b = ecBlockArray_2.return)) _b.call(ecBlockArray_2);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        // All blocks have the same amount of data, except that the last n\n        // (where n may be 0) have 1 more byte. Figure out where these start.\n        var shorterBlocksTotalCodewords = result[0].codewords.length;\n        var longerBlocksStartAt = result.length - 1;\n        // TYPESCRIPTPORT: check length is correct here\n        while (longerBlocksStartAt >= 0) {\n            var numCodewords = result[longerBlocksStartAt].codewords.length;\n            if (numCodewords === shorterBlocksTotalCodewords) {\n                break;\n            }\n            longerBlocksStartAt--;\n        }\n        longerBlocksStartAt++;\n        var shorterBlocksNumDataCodewords = shorterBlocksTotalCodewords - ecBlocks.getECCodewordsPerBlock();\n        // The last elements of result may be 1 element longer\n        // first fill out as many elements as all of them have\n        var rawCodewordsOffset = 0;\n        for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n            for (var j = 0; j < numResultBlocks; j++) {\n                result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n            }\n        }\n        // Fill out the last data block in the longer ones\n        for (var j = longerBlocksStartAt; j < numResultBlocks; j++) {\n            result[j].codewords[shorterBlocksNumDataCodewords] = rawCodewords[rawCodewordsOffset++];\n        }\n        // Now add in error correction blocks\n        var max = result[0].codewords.length;\n        for (var i = shorterBlocksNumDataCodewords; i < max; i++) {\n            for (var j = 0; j < numResultBlocks; j++) {\n                var iOffset = j < longerBlocksStartAt ? i : i + 1;\n                result[j].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n            }\n        }\n        return result;\n    };\n    DataBlock.prototype.getNumDataCodewords = function () {\n        return this.numDataCodewords;\n    };\n    DataBlock.prototype.getCodewords = function () {\n        return this.codewords;\n    };\n    return DataBlock;\n}());\nexport default DataBlock;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.FormatException;\nimport FormatException from '../../FormatException';\n// import com.google.zxing.common.CharacterSetECI;\nimport CharacterSetECI from '../../common/CharacterSetECI';\n// import com.google.zxing.common.DecoderResult;\nimport DecoderResult from '../../common/DecoderResult';\n// import com.google.zxing.pdf417.PDF417ResultMetadata;\nimport PDF417ResultMetadata from '../PDF417ResultMetadata';\n// import java.io.ByteArrayOutputStream;\n// import java.math.BigInteger;\n// import java.nio.charset.Charset;\n// import java.nio.charset.StandardCharsets;\n// import java.util.Arrays;\nimport Arrays from '../../util/Arrays';\nimport StringBuilder from '../../util/StringBuilder';\nimport Integer from '../../util/Integer';\nimport Long from '../../util/Long';\nimport ByteArrayOutputStream from '../../util/ByteArrayOutputStream';\nimport StringEncoding from '../../util/StringEncoding';\n/*private*/ var Mode;\n(function (Mode) {\n    Mode[Mode[\"ALPHA\"] = 0] = \"ALPHA\";\n    Mode[Mode[\"LOWER\"] = 1] = \"LOWER\";\n    Mode[Mode[\"MIXED\"] = 2] = \"MIXED\";\n    Mode[Mode[\"PUNCT\"] = 3] = \"PUNCT\";\n    Mode[Mode[\"ALPHA_SHIFT\"] = 4] = \"ALPHA_SHIFT\";\n    Mode[Mode[\"PUNCT_SHIFT\"] = 5] = \"PUNCT_SHIFT\";\n})(Mode || (Mode = {}));\n/**\n * Indirectly access the global BigInt constructor, it\n * allows browsers that doesn't support BigInt to run\n * the library without breaking due to \"undefined BigInt\"\n * errors.\n */\nfunction getBigIntConstructor() {\n    if (typeof window !== 'undefined') {\n        return window['BigInt'] || null;\n    }\n    if (typeof global !== 'undefined') {\n        return global['BigInt'] || null;\n    }\n    if (typeof self !== 'undefined') {\n        return self['BigInt'] || null;\n    }\n    throw new Error('Can\\'t search globals for BigInt!');\n}\n/**\n * Used to store the BigInt constructor.\n */\nvar BigInteger;\n/**\n * This function creates a bigint value. It allows browsers\n * that doesn't support BigInt to run the rest of the library\n * by not directly accessing the BigInt constructor.\n */\nfunction createBigInt(num) {\n    if (typeof BigInteger === 'undefined') {\n        BigInteger = getBigIntConstructor();\n    }\n    if (BigInteger === null) {\n        throw new Error('BigInt is not supported!');\n    }\n    return BigInteger(num);\n}\nfunction getEXP900() {\n    // in Java - array with length = 16\n    var EXP900 = [];\n    EXP900[0] = createBigInt(1);\n    var nineHundred = createBigInt(900);\n    EXP900[1] = nineHundred;\n    // in Java - array with length = 16\n    for (var i /*int*/ = 2; i < 16; i++) {\n        EXP900[i] = EXP900[i - 1] * nineHundred;\n    }\n    return EXP900;\n}\n/**\n * <p>This class contains the methods for decoding the PDF417 codewords.</p>\n *\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author Guenther Grau\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n    function DecodedBitStreamParser() {\n    }\n    //   private DecodedBitStreamParser() {\n    // }\n    /**\n     *\n     * @param codewords\n     * @param ecLevel\n     *\n     * @throws FormatException\n     */\n    DecodedBitStreamParser.decode = function (codewords, ecLevel) {\n        // pass encoding to result (will be used for decode symbols in byte mode)\n        var result = new StringBuilder('');\n        // let encoding: Charset = StandardCharsets.ISO_8859_1;\n        var encoding = CharacterSetECI.ISO8859_1;\n        /**\n         * @note the next command is specific from this TypeScript library\n         * because TS can't properly cast some values to char and\n         * convert it to string later correctly due to encoding\n         * differences from Java version. As reported here:\n         * https://github.com/zxing-js/library/pull/264/files#r382831593\n         */\n        result.enableDecoding(encoding);\n        // Get compaction mode\n        var codeIndex = 1;\n        var code = codewords[codeIndex++];\n        var resultMetadata = new PDF417ResultMetadata();\n        while (codeIndex < codewords[0]) {\n            switch (code) {\n                case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                    codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex, result);\n                    break;\n                case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n                case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n                    codeIndex = DecodedBitStreamParser.byteCompaction(code, codewords, encoding, codeIndex, result);\n                    break;\n                case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                    result.append(/*(char)*/ codewords[codeIndex++]);\n                    break;\n                case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n                    codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex, result);\n                    break;\n                case DecodedBitStreamParser.ECI_CHARSET:\n                    var charsetECI = CharacterSetECI.getCharacterSetECIByValue(codewords[codeIndex++]);\n                    // encoding = Charset.forName(charsetECI.getName());\n                    break;\n                case DecodedBitStreamParser.ECI_GENERAL_PURPOSE:\n                    // Can't do anything with generic ECI; skip its 2 characters\n                    codeIndex += 2;\n                    break;\n                case DecodedBitStreamParser.ECI_USER_DEFINED:\n                    // Can't do anything with user ECI; skip its 1 character\n                    codeIndex++;\n                    break;\n                case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n                    codeIndex = DecodedBitStreamParser.decodeMacroBlock(codewords, codeIndex, resultMetadata);\n                    break;\n                case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n                case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n                    // Should not see these outside a macro block\n                    throw new FormatException();\n                default:\n                    // Default to text compaction. During testing numerous barcodes\n                    // appeared to be missing the starting mode. In these cases defaulting\n                    // to text compaction seems to work.\n                    codeIndex--;\n                    codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex, result);\n                    break;\n            }\n            if (codeIndex < codewords.length) {\n                code = codewords[codeIndex++];\n            }\n            else {\n                throw FormatException.getFormatInstance();\n            }\n        }\n        if (result.length() === 0) {\n            throw FormatException.getFormatInstance();\n        }\n        var decoderResult = new DecoderResult(null, result.toString(), null, ecLevel);\n        decoderResult.setOther(resultMetadata);\n        return decoderResult;\n    };\n    /**\n     *\n     * @param int\n     * @param param1\n     * @param codewords\n     * @param int\n     * @param codeIndex\n     * @param PDF417ResultMetadata\n     * @param resultMetadata\n     *\n     * @throws FormatException\n     */\n    // @SuppressWarnings(\"deprecation\")\n    DecodedBitStreamParser.decodeMacroBlock = function (codewords, codeIndex, resultMetadata) {\n        if (codeIndex + DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) {\n            // we must have at least two bytes left for the segment index\n            throw FormatException.getFormatInstance();\n        }\n        var segmentIndexArray = new Int32Array(DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS);\n        for (var i /*int*/ = 0; i < DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) {\n            segmentIndexArray[i] = codewords[codeIndex];\n        }\n        resultMetadata.setSegmentIndex(Integer.parseInt(DecodedBitStreamParser.decodeBase900toBase10(segmentIndexArray, DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS)));\n        var fileId = new StringBuilder();\n        codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex, fileId);\n        resultMetadata.setFileId(fileId.toString());\n        var optionalFieldsStart = -1;\n        if (codewords[codeIndex] === DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD) {\n            optionalFieldsStart = codeIndex + 1;\n        }\n        while (codeIndex < codewords[0]) {\n            switch (codewords[codeIndex]) {\n                case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n                    codeIndex++;\n                    switch (codewords[codeIndex]) {\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME:\n                            var fileName = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex + 1, fileName);\n                            resultMetadata.setFileName(fileName.toString());\n                            break;\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SENDER:\n                            var sender = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex + 1, sender);\n                            resultMetadata.setSender(sender.toString());\n                            break;\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE:\n                            var addressee = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.textCompaction(codewords, codeIndex + 1, addressee);\n                            resultMetadata.setAddressee(addressee.toString());\n                            break;\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT:\n                            var segmentCount = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, segmentCount);\n                            resultMetadata.setSegmentCount(Integer.parseInt(segmentCount.toString()));\n                            break;\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP:\n                            var timestamp = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, timestamp);\n                            resultMetadata.setTimestamp(Long.parseLong(timestamp.toString()));\n                            break;\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM:\n                            var checksum = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, checksum);\n                            resultMetadata.setChecksum(Integer.parseInt(checksum.toString()));\n                            break;\n                        case DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE:\n                            var fileSize = new StringBuilder();\n                            codeIndex = DecodedBitStreamParser.numericCompaction(codewords, codeIndex + 1, fileSize);\n                            resultMetadata.setFileSize(Long.parseLong(fileSize.toString()));\n                            break;\n                        default:\n                            throw FormatException.getFormatInstance();\n                    }\n                    break;\n                case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n                    codeIndex++;\n                    resultMetadata.setLastSegment(true);\n                    break;\n                default:\n                    throw FormatException.getFormatInstance();\n            }\n        }\n        // copy optional fields to additional options\n        if (optionalFieldsStart !== -1) {\n            var optionalFieldsLength = codeIndex - optionalFieldsStart;\n            if (resultMetadata.isLastSegment()) {\n                // do not include terminator\n                optionalFieldsLength--;\n            }\n            resultMetadata.setOptionalData(Arrays.copyOfRange(codewords, optionalFieldsStart, optionalFieldsStart + optionalFieldsLength));\n        }\n        return codeIndex;\n    };\n    /**\n     * Text Compaction mode (see 5.4.1.5) permits all printable ASCII characters to be\n     * encoded, i.e. values 32 - 126 inclusive in accordance with ISO/IEC 646 (IRV), as\n     * well as selected control characters.\n     *\n     * @param codewords The array of codewords (data + error)\n     * @param codeIndex The current index into the codeword array.\n     * @param result    The decoded data is appended to the result.\n     * @return The next index into the codeword array.\n     */\n    DecodedBitStreamParser.textCompaction = function (codewords, codeIndex, result) {\n        // 2 character per codeword\n        var textCompactionData = new Int32Array((codewords[0] - codeIndex) * 2);\n        // Used to hold the byte compaction value if there is a mode shift\n        var byteCompactionData = new Int32Array((codewords[0] - codeIndex) * 2);\n        var index = 0;\n        var end = false;\n        while ((codeIndex < codewords[0]) && !end) {\n            var code = codewords[codeIndex++];\n            if (code < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n                textCompactionData[index] = code / 30;\n                textCompactionData[index + 1] = code % 30;\n                index += 2;\n            }\n            else {\n                switch (code) {\n                    case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                        // reinitialize text compaction mode to alpha sub mode\n                        textCompactionData[index++] = DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH;\n                        break;\n                    case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n                    case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n                    case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n                    case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n                    case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n                    case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n                        codeIndex--;\n                        end = true;\n                        break;\n                    case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                        // The Mode Shift codeword 913 shall cause a temporary\n                        // switch from Text Compaction mode to Byte Compaction mode.\n                        // This switch shall be in effect for only the next codeword,\n                        // after which the mode shall revert to the prevailing sub-mode\n                        // of the Text Compaction mode. Codeword 913 is only available\n                        // in Text Compaction mode; its use is described in 5.4.2.4.\n                        textCompactionData[index] = DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE;\n                        code = codewords[codeIndex++];\n                        byteCompactionData[index] = code;\n                        index++;\n                        break;\n                }\n            }\n        }\n        DecodedBitStreamParser.decodeTextCompaction(textCompactionData, byteCompactionData, index, result);\n        return codeIndex;\n    };\n    /**\n     * The Text Compaction mode includes all the printable ASCII characters\n     * (i.e. values from 32 to 126) and three ASCII control characters: HT or tab\n     * (9: e), LF or line feed (10: e), and CR or carriage\n     * return (13: e). The Text Compaction mode also includes various latch\n     * and shift characters which are used exclusively within the mode. The Text\n     * Compaction mode encodes up to 2 characters per codeword. The compaction rules\n     * for converting data into PDF417 codewords are defined in 5.4.2.2. The sub-mode\n     * switches are defined in 5.4.2.3.\n     *\n     * @param textCompactionData The text compaction data.\n     * @param byteCompactionData The byte compaction data if there\n     *                           was a mode shift.\n     * @param length             The size of the text compaction and byte compaction data.\n     * @param result             The decoded data is appended to the result.\n     */\n    DecodedBitStreamParser.decodeTextCompaction = function (textCompactionData, byteCompactionData, length, result) {\n        // Beginning from an initial state of the Alpha sub-mode\n        // The default compaction mode for PDF417 in effect at the start of each symbol shall always be Text\n        // Compaction mode Alpha sub-mode (alphabetic: uppercase). A latch codeword from another mode to the Text\n        // Compaction mode shall always switch to the Text Compaction Alpha sub-mode.\n        var subMode = Mode.ALPHA;\n        var priorToShiftMode = Mode.ALPHA;\n        var i = 0;\n        while (i < length) {\n            var subModeCh = textCompactionData[i];\n            var ch = /*char*/ '';\n            switch (subMode) {\n                case Mode.ALPHA:\n                    // Alpha (alphabetic: uppercase)\n                    if (subModeCh < 26) {\n                        // Upper case Alpha Character\n                        // Note: 65 = 'A' ASCII -> there is byte code of symbol\n                        ch = /*(char)('A' + subModeCh) */ String.fromCharCode(65 + subModeCh);\n                    }\n                    else {\n                        switch (subModeCh) {\n                            case 26:\n                                ch = ' ';\n                                break;\n                            case DecodedBitStreamParser.LL:\n                                subMode = Mode.LOWER;\n                                break;\n                            case DecodedBitStreamParser.ML:\n                                subMode = Mode.MIXED;\n                                break;\n                            case DecodedBitStreamParser.PS:\n                                // Shift to punctuation\n                                priorToShiftMode = subMode;\n                                subMode = Mode.PUNCT_SHIFT;\n                                break;\n                            case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                                result.append(/*(char)*/ byteCompactionData[i]);\n                                break;\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                                subMode = Mode.ALPHA;\n                                break;\n                        }\n                    }\n                    break;\n                case Mode.LOWER:\n                    // Lower (alphabetic: lowercase)\n                    if (subModeCh < 26) {\n                        ch = /*(char)('a' + subModeCh)*/ String.fromCharCode(97 + subModeCh);\n                    }\n                    else {\n                        switch (subModeCh) {\n                            case 26:\n                                ch = ' ';\n                                break;\n                            case DecodedBitStreamParser.AS:\n                                // Shift to alpha\n                                priorToShiftMode = subMode;\n                                subMode = Mode.ALPHA_SHIFT;\n                                break;\n                            case DecodedBitStreamParser.ML:\n                                subMode = Mode.MIXED;\n                                break;\n                            case DecodedBitStreamParser.PS:\n                                // Shift to punctuation\n                                priorToShiftMode = subMode;\n                                subMode = Mode.PUNCT_SHIFT;\n                                break;\n                            case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                                // TODO Does this need to use the current character encoding? See other occurrences below\n                                result.append(/*(char)*/ byteCompactionData[i]);\n                                break;\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                                subMode = Mode.ALPHA;\n                                break;\n                        }\n                    }\n                    break;\n                case Mode.MIXED:\n                    // Mixed (punctuation: e)\n                    if (subModeCh < DecodedBitStreamParser.PL) {\n                        ch = DecodedBitStreamParser.MIXED_CHARS[subModeCh];\n                    }\n                    else {\n                        switch (subModeCh) {\n                            case DecodedBitStreamParser.PL:\n                                subMode = Mode.PUNCT;\n                                break;\n                            case 26:\n                                ch = ' ';\n                                break;\n                            case DecodedBitStreamParser.LL:\n                                subMode = Mode.LOWER;\n                                break;\n                            case DecodedBitStreamParser.AL:\n                                subMode = Mode.ALPHA;\n                                break;\n                            case DecodedBitStreamParser.PS:\n                                // Shift to punctuation\n                                priorToShiftMode = subMode;\n                                subMode = Mode.PUNCT_SHIFT;\n                                break;\n                            case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                                result.append(/*(char)*/ byteCompactionData[i]);\n                                break;\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                                subMode = Mode.ALPHA;\n                                break;\n                        }\n                    }\n                    break;\n                case Mode.PUNCT:\n                    // Punctuation\n                    if (subModeCh < DecodedBitStreamParser.PAL) {\n                        ch = DecodedBitStreamParser.PUNCT_CHARS[subModeCh];\n                    }\n                    else {\n                        switch (subModeCh) {\n                            case DecodedBitStreamParser.PAL:\n                                subMode = Mode.ALPHA;\n                                break;\n                            case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                                result.append(/*(char)*/ byteCompactionData[i]);\n                                break;\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                                subMode = Mode.ALPHA;\n                                break;\n                        }\n                    }\n                    break;\n                case Mode.ALPHA_SHIFT:\n                    // Restore sub-mode\n                    subMode = priorToShiftMode;\n                    if (subModeCh < 26) {\n                        ch = /*(char)('A' + subModeCh)*/ String.fromCharCode(65 + subModeCh);\n                    }\n                    else {\n                        switch (subModeCh) {\n                            case 26:\n                                ch = ' ';\n                                break;\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                                subMode = Mode.ALPHA;\n                                break;\n                        }\n                    }\n                    break;\n                case Mode.PUNCT_SHIFT:\n                    // Restore sub-mode\n                    subMode = priorToShiftMode;\n                    if (subModeCh < DecodedBitStreamParser.PAL) {\n                        ch = DecodedBitStreamParser.PUNCT_CHARS[subModeCh];\n                    }\n                    else {\n                        switch (subModeCh) {\n                            case DecodedBitStreamParser.PAL:\n                                subMode = Mode.ALPHA;\n                                break;\n                            case DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE:\n                                // PS before Shift-to-Byte is used as a padding character,\n                                // see 5.4.2.4 of the specification\n                                result.append(/*(char)*/ byteCompactionData[i]);\n                                break;\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                                subMode = Mode.ALPHA;\n                                break;\n                        }\n                    }\n                    break;\n            }\n            // if (ch !== 0) {\n            if (ch !== '') {\n                // Append decoded character to result\n                result.append(ch);\n            }\n            i++;\n        }\n    };\n    /**\n     * Byte Compaction mode (see 5.4.3) permits all 256 possible 8-bit byte values to be encoded.\n     * This includes all ASCII characters value 0 to 127 inclusive and provides for international\n     * character set support.\n     *\n     * @param mode      The byte compaction mode i.e. 901 or 924\n     * @param codewords The array of codewords (data + error)\n     * @param encoding  Currently active character encoding\n     * @param codeIndex The current index into the codeword array.\n     * @param result    The decoded data is appended to the result.\n     * @return The next index into the codeword array.\n     */\n    DecodedBitStreamParser.byteCompaction = function (mode, codewords, encoding, codeIndex, result) {\n        var decodedBytes = new ByteArrayOutputStream();\n        var count = 0;\n        var value = /*long*/ 0;\n        var end = false;\n        switch (mode) {\n            case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n                // Total number of Byte Compaction characters to be encoded\n                // is not a multiple of 6\n                var byteCompactedCodewords = new Int32Array(6);\n                var nextCode = codewords[codeIndex++];\n                while ((codeIndex < codewords[0]) && !end) {\n                    byteCompactedCodewords[count++] = nextCode;\n                    // Base 900\n                    value = 900 * value + nextCode;\n                    nextCode = codewords[codeIndex++];\n                    // perhaps it should be ok to check only nextCode >= TEXT_COMPACTION_MODE_LATCH\n                    switch (nextCode) {\n                        case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                        case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n                        case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n                        case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n                        case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n                        case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n                        case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n                            codeIndex--;\n                            end = true;\n                            break;\n                        default:\n                            if ((count % 5 === 0) && (count > 0)) {\n                                // Decode every 5 codewords\n                                // Convert to Base 256\n                                for (var j /*int*/ = 0; j < 6; ++j) {\n                                    /* @note\n                                     * JavaScript stores numbers as 64 bits floating point numbers, but all bitwise operations are performed on 32 bits binary numbers.\n                                     * So the next bitwise operation could not be done with simple numbers\n                                     */\n                                    decodedBytes.write(/*(byte)*/ Number(createBigInt(value) >> createBigInt(8 * (5 - j))));\n                                }\n                                value = 0;\n                                count = 0;\n                            }\n                            break;\n                    }\n                }\n                // if the end of all codewords is reached the last codeword needs to be added\n                if (codeIndex === codewords[0] && nextCode < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n                    byteCompactedCodewords[count++] = nextCode;\n                }\n                // If Byte Compaction mode is invoked with codeword 901,\n                // the last group of codewords is interpreted directly\n                // as one byte per codeword, without compaction.\n                for (var i /*int*/ = 0; i < count; i++) {\n                    decodedBytes.write(/*(byte)*/ byteCompactedCodewords[i]);\n                }\n                break;\n            case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n                // Total number of Byte Compaction characters to be encoded\n                // is an integer multiple of 6\n                while (codeIndex < codewords[0] && !end) {\n                    var code = codewords[codeIndex++];\n                    if (code < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n                        count++;\n                        // Base 900\n                        value = 900 * value + code;\n                    }\n                    else {\n                        switch (code) {\n                            case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                            case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n                            case DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH:\n                            case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n                            case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n                            case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n                            case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n                                codeIndex--;\n                                end = true;\n                                break;\n                        }\n                    }\n                    if ((count % 5 === 0) && (count > 0)) {\n                        // Decode every 5 codewords\n                        // Convert to Base 256\n                        /* @note\n                         * JavaScript stores numbers as 64 bits floating point numbers, but all bitwise operations are performed on 32 bits binary numbers.\n                         * So the next bitwise operation could not be done with simple numbers\n                        */\n                        for (var j /*int*/ = 0; j < 6; ++j) {\n                            decodedBytes.write(/*(byte)*/ Number(createBigInt(value) >> createBigInt(8 * (5 - j))));\n                        }\n                        value = 0;\n                        count = 0;\n                    }\n                }\n                break;\n        }\n        result.append(StringEncoding.decode(decodedBytes.toByteArray(), encoding));\n        return codeIndex;\n    };\n    /**\n     * Numeric Compaction mode (see 5.4.4) permits efficient encoding of numeric data strings.\n     *\n     * @param codewords The array of codewords (data + error)\n     * @param codeIndex The current index into the codeword array.\n     * @param result    The decoded data is appended to the result.\n     * @return The next index into the codeword array.\n     *\n     * @throws FormatException\n     */\n    DecodedBitStreamParser.numericCompaction = function (codewords, codeIndex /*int*/, result) {\n        var count = 0;\n        var end = false;\n        var numericCodewords = new Int32Array(DecodedBitStreamParser.MAX_NUMERIC_CODEWORDS);\n        while (codeIndex < codewords[0] && !end) {\n            var code = codewords[codeIndex++];\n            if (codeIndex === codewords[0]) {\n                end = true;\n            }\n            if (code < DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH) {\n                numericCodewords[count] = code;\n                count++;\n            }\n            else {\n                switch (code) {\n                    case DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH:\n                    case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH:\n                    case DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6:\n                    case DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK:\n                    case DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD:\n                    case DecodedBitStreamParser.MACRO_PDF417_TERMINATOR:\n                        codeIndex--;\n                        end = true;\n                        break;\n                }\n            }\n            if ((count % DecodedBitStreamParser.MAX_NUMERIC_CODEWORDS === 0 || code === DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH || end) && count > 0) {\n                // Re-invoking Numeric Compaction mode (by using codeword 902\n                // while in Numeric Compaction mode) serves  to terminate the\n                // current Numeric Compaction mode grouping as described in 5.4.4.2,\n                // and then to start a new one grouping.\n                result.append(DecodedBitStreamParser.decodeBase900toBase10(numericCodewords, count));\n                count = 0;\n            }\n        }\n        return codeIndex;\n    };\n    /**\n     * Convert a list of Numeric Compacted codewords from Base 900 to Base 10.\n     *\n     * @param codewords The array of codewords\n     * @param count     The number of codewords\n     * @return The decoded string representing the Numeric data.\n     *\n     * EXAMPLE\n     * Encode the fifteen digit numeric string 000213298174000\n     * Prefix the numeric string with a 1 and set the initial value of\n     * t = 1 000 213 298 174 000\n     * Calculate codeword 0\n     * d0 = 1 000 213 298 174 000 mod 900 = 200\n     *\n     * t = 1 000 213 298 174 000 div 900 = 1 111 348 109 082\n     * Calculate codeword 1\n     * d1 = 1 111 348 109 082 mod 900 = 282\n     *\n     * t = 1 111 348 109 082 div 900 = 1 234 831 232\n     * Calculate codeword 2\n     * d2 = 1 234 831 232 mod 900 = 632\n     *\n     * t = 1 234 831 232 div 900 = 1 372 034\n     * Calculate codeword 3\n     * d3 = 1 372 034 mod 900 = 434\n     *\n     * t = 1 372 034 div 900 = 1 524\n     * Calculate codeword 4\n     * d4 = 1 524 mod 900 = 624\n     *\n     * t = 1 524 div 900 = 1\n     * Calculate codeword 5\n     * d5 = 1 mod 900 = 1\n     * t = 1 div 900 = 0\n     * Codeword sequence is: 1, 624, 434, 632, 282, 200\n     *\n     * Decode the above codewords involves\n     *   1 x 900 power of 5 + 624 x 900 power of 4 + 434 x 900 power of 3 +\n     * 632 x 900 power of 2 + 282 x 900 power of 1 + 200 x 900 power of 0 = 1000213298174000\n     *\n     * Remove leading 1 =>  Result is 000213298174000\n     *\n     * @throws FormatException\n     */\n    DecodedBitStreamParser.decodeBase900toBase10 = function (codewords, count) {\n        var result = createBigInt(0);\n        for (var i /*int*/ = 0; i < count; i++) {\n            result += DecodedBitStreamParser.EXP900[count - i - 1] * createBigInt(codewords[i]);\n        }\n        var resultString = result.toString();\n        if (resultString.charAt(0) !== '1') {\n            throw new FormatException();\n        }\n        return resultString.substring(1);\n    };\n    DecodedBitStreamParser.TEXT_COMPACTION_MODE_LATCH = 900;\n    DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH = 901;\n    DecodedBitStreamParser.NUMERIC_COMPACTION_MODE_LATCH = 902;\n    DecodedBitStreamParser.BYTE_COMPACTION_MODE_LATCH_6 = 924;\n    DecodedBitStreamParser.ECI_USER_DEFINED = 925;\n    DecodedBitStreamParser.ECI_GENERAL_PURPOSE = 926;\n    DecodedBitStreamParser.ECI_CHARSET = 927;\n    DecodedBitStreamParser.BEGIN_MACRO_PDF417_CONTROL_BLOCK = 928;\n    DecodedBitStreamParser.BEGIN_MACRO_PDF417_OPTIONAL_FIELD = 923;\n    DecodedBitStreamParser.MACRO_PDF417_TERMINATOR = 922;\n    DecodedBitStreamParser.MODE_SHIFT_TO_BYTE_COMPACTION_MODE = 913;\n    DecodedBitStreamParser.MAX_NUMERIC_CODEWORDS = 15;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME = 0;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT = 1;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP = 2;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_SENDER = 3;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE = 4;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE = 5;\n    DecodedBitStreamParser.MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM = 6;\n    DecodedBitStreamParser.PL = 25;\n    DecodedBitStreamParser.LL = 27;\n    DecodedBitStreamParser.AS = 27;\n    DecodedBitStreamParser.ML = 28;\n    DecodedBitStreamParser.AL = 28;\n    DecodedBitStreamParser.PS = 29;\n    DecodedBitStreamParser.PAL = 29;\n    DecodedBitStreamParser.PUNCT_CHARS = ';<>@[\\\\]_`~!\\r\\t,:\\n-.$/\"|*()?{}\\'';\n    DecodedBitStreamParser.MIXED_CHARS = '0123456789&\\r\\t,:#-.$/+%*=^';\n    /**\n     * Table containing values for the exponent of 900.\n     * This is used in the numeric compaction decode algorithm.\n     */\n    DecodedBitStreamParser.EXP900 = getBigIntConstructor() ? getEXP900() : [];\n    DecodedBitStreamParser.NUMBER_OF_SEQUENCE_CODEWORDS = 2;\n    return DecodedBitStreamParser;\n}());\nexport default DecodedBitStreamParser;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport BitSource from '../../common/BitSource';\nimport CharacterSetECI from '../../common/CharacterSetECI';\nimport DecoderResult from '../../common/DecoderResult';\nimport StringUtils from '../../common/StringUtils';\nimport FormatException from '../../FormatException';\nimport StringBuilder from '../../util/StringBuilder';\nimport StringEncoding from '../../util/StringEncoding';\nimport Mode from './Mode';\n/*import java.io.UnsupportedEncodingException;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collection;*/\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n * <p>QR Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one QR Code. This class decodes the bits back into text.</p>\n *\n * <p>See ISO 18004:2006, 6.4.3 - 6.4.7</p>\n *\n * @author Sean Owen\n */\nvar DecodedBitStreamParser = /** @class */ (function () {\n    function DecodedBitStreamParser() {\n    }\n    DecodedBitStreamParser.decode = function (bytes, version, ecLevel, hints) {\n        var bits = new BitSource(bytes);\n        var result = new StringBuilder();\n        var byteSegments = new Array(); // 1\n        // TYPESCRIPTPORT: I do not use constructor with size 1 as in original Java means capacity and the array length is checked below\n        var symbolSequence = -1;\n        var parityData = -1;\n        try {\n            var currentCharacterSetECI = null;\n            var fc1InEffect = false;\n            var mode = void 0;\n            do {\n                // While still another segment to read...\n                if (bits.available() < 4) {\n                    // OK, assume we're done. Really, a TERMINATOR mode should have been recorded here\n                    mode = Mode.TERMINATOR;\n                }\n                else {\n                    var modeBits = bits.readBits(4);\n                    mode = Mode.forBits(modeBits); // mode is encoded by 4 bits\n                }\n                switch (mode) {\n                    case Mode.TERMINATOR:\n                        break;\n                    case Mode.FNC1_FIRST_POSITION:\n                    case Mode.FNC1_SECOND_POSITION:\n                        // We do little with FNC1 except alter the parsed result a bit according to the spec\n                        fc1InEffect = true;\n                        break;\n                    case Mode.STRUCTURED_APPEND:\n                        if (bits.available() < 16) {\n                            throw new FormatException();\n                        }\n                        // sequence number and parity is added later to the result metadata\n                        // Read next 8 bits (symbol sequence #) and 8 bits (data: parity), then continue\n                        symbolSequence = bits.readBits(8);\n                        parityData = bits.readBits(8);\n                        break;\n                    case Mode.ECI:\n                        // Count doesn't apply to ECI\n                        var value = DecodedBitStreamParser.parseECIValue(bits);\n                        currentCharacterSetECI = CharacterSetECI.getCharacterSetECIByValue(value);\n                        if (currentCharacterSetECI === null) {\n                            throw new FormatException();\n                        }\n                        break;\n                    case Mode.HANZI:\n                        // First handle Hanzi mode which does not start with character count\n                        // Chinese mode contains a sub set indicator right after mode indicator\n                        var subset = bits.readBits(4);\n                        var countHanzi = bits.readBits(mode.getCharacterCountBits(version));\n                        if (subset === DecodedBitStreamParser.GB2312_SUBSET) {\n                            DecodedBitStreamParser.decodeHanziSegment(bits, result, countHanzi);\n                        }\n                        break;\n                    default:\n                        // \"Normal\" QR code modes:\n                        // How many characters will follow, encoded in this mode?\n                        var count = bits.readBits(mode.getCharacterCountBits(version));\n                        switch (mode) {\n                            case Mode.NUMERIC:\n                                DecodedBitStreamParser.decodeNumericSegment(bits, result, count);\n                                break;\n                            case Mode.ALPHANUMERIC:\n                                DecodedBitStreamParser.decodeAlphanumericSegment(bits, result, count, fc1InEffect);\n                                break;\n                            case Mode.BYTE:\n                                DecodedBitStreamParser.decodeByteSegment(bits, result, count, currentCharacterSetECI, byteSegments, hints);\n                                break;\n                            case Mode.KANJI:\n                                DecodedBitStreamParser.decodeKanjiSegment(bits, result, count);\n                                break;\n                            default:\n                                throw new FormatException();\n                        }\n                        break;\n                }\n            } while (mode !== Mode.TERMINATOR);\n        }\n        catch (iae /*: IllegalArgumentException*/) {\n            // from readBits() calls\n            throw new FormatException();\n        }\n        return new DecoderResult(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, ecLevel === null ? null : ecLevel.toString(), symbolSequence, parityData);\n    };\n    /**\n     * See specification GBT 18284-2000\n     */\n    DecodedBitStreamParser.decodeHanziSegment = function (bits, result, count /*int*/) {\n        // Don't crash trying to read more bits than we have available.\n        if (count * 13 > bits.available()) {\n            throw new FormatException();\n        }\n        // Each character will require 2 bytes. Read the characters as 2-byte pairs\n        // and decode as GB2312 afterwards\n        var buffer = new Uint8Array(2 * count);\n        var offset = 0;\n        while (count > 0) {\n            // Each 13 bits encodes a 2-byte character\n            var twoBytes = bits.readBits(13);\n            var assembledTwoBytes = (((twoBytes / 0x060) << 8) & 0xFFFFFFFF) | (twoBytes % 0x060);\n            if (assembledTwoBytes < 0x003BF) {\n                // In the 0xA1A1 to 0xAAFE range\n                assembledTwoBytes += 0x0A1A1;\n            }\n            else {\n                // In the 0xB0A1 to 0xFAFE range\n                assembledTwoBytes += 0x0A6A1;\n            }\n            buffer[offset] = /*(byte) */ ((assembledTwoBytes >> 8) & 0xFF);\n            buffer[offset + 1] = /*(byte) */ (assembledTwoBytes & 0xFF);\n            offset += 2;\n            count--;\n        }\n        try {\n            result.append(StringEncoding.decode(buffer, StringUtils.GB2312));\n            // TYPESCRIPTPORT: TODO: implement GB2312 decode. StringView from MDN could be a starting point\n        }\n        catch (ignored /*: UnsupportedEncodingException*/) {\n            throw new FormatException(ignored);\n        }\n    };\n    DecodedBitStreamParser.decodeKanjiSegment = function (bits, result, count /*int*/) {\n        // Don't crash trying to read more bits than we have available.\n        if (count * 13 > bits.available()) {\n            throw new FormatException();\n        }\n        // Each character will require 2 bytes. Read the characters as 2-byte pairs\n        // and decode as Shift_JIS afterwards\n        var buffer = new Uint8Array(2 * count);\n        var offset = 0;\n        while (count > 0) {\n            // Each 13 bits encodes a 2-byte character\n            var twoBytes = bits.readBits(13);\n            var assembledTwoBytes = (((twoBytes / 0x0C0) << 8) & 0xFFFFFFFF) | (twoBytes % 0x0C0);\n            if (assembledTwoBytes < 0x01F00) {\n                // In the 0x8140 to 0x9FFC range\n                assembledTwoBytes += 0x08140;\n            }\n            else {\n                // In the 0xE040 to 0xEBBF range\n                assembledTwoBytes += 0x0C140;\n            }\n            buffer[offset] = /*(byte) */ (assembledTwoBytes >> 8);\n            buffer[offset + 1] = /*(byte) */ assembledTwoBytes;\n            offset += 2;\n            count--;\n        }\n        // Shift_JIS may not be supported in some environments:\n        try {\n            result.append(StringEncoding.decode(buffer, StringUtils.SHIFT_JIS));\n            // TYPESCRIPTPORT: TODO: implement SHIFT_JIS decode. StringView from MDN could be a starting point\n        }\n        catch (ignored /*: UnsupportedEncodingException*/) {\n            throw new FormatException(ignored);\n        }\n    };\n    DecodedBitStreamParser.decodeByteSegment = function (bits, result, count /*int*/, currentCharacterSetECI, byteSegments, hints) {\n        // Don't crash trying to read more bits than we have available.\n        if (8 * count > bits.available()) {\n            throw new FormatException();\n        }\n        var readBytes = new Uint8Array(count);\n        for (var i = 0; i < count; i++) {\n            readBytes[i] = /*(byte) */ bits.readBits(8);\n        }\n        var encoding;\n        if (currentCharacterSetECI === null) {\n            // The spec isn't clear on this mode; see\n            // section 6.4.5: t does not say which encoding to assuming\n            // upon decoding. I have seen ISO-8859-1 used as well as\n            // Shift_JIS -- without anything like an ECI designator to\n            // give a hint.\n            encoding = StringUtils.guessEncoding(readBytes, hints);\n        }\n        else {\n            encoding = currentCharacterSetECI.getName();\n        }\n        try {\n            result.append(StringEncoding.decode(readBytes, encoding));\n        }\n        catch (ignored /*: UnsupportedEncodingException*/) {\n            throw new FormatException(ignored);\n        }\n        byteSegments.push(readBytes);\n    };\n    DecodedBitStreamParser.toAlphaNumericChar = function (value /*int*/) {\n        if (value >= DecodedBitStreamParser.ALPHANUMERIC_CHARS.length) {\n            throw new FormatException();\n        }\n        return DecodedBitStreamParser.ALPHANUMERIC_CHARS[value];\n    };\n    DecodedBitStreamParser.decodeAlphanumericSegment = function (bits, result, count /*int*/, fc1InEffect) {\n        // Read two characters at a time\n        var start = result.length();\n        while (count > 1) {\n            if (bits.available() < 11) {\n                throw new FormatException();\n            }\n            var nextTwoCharsBits = bits.readBits(11);\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(nextTwoCharsBits / 45)));\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(nextTwoCharsBits % 45));\n            count -= 2;\n        }\n        if (count === 1) {\n            // special case: one character left\n            if (bits.available() < 6) {\n                throw new FormatException();\n            }\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(bits.readBits(6)));\n        }\n        // See section 6.4.8.1, 6.4.8.2\n        if (fc1InEffect) {\n            // We need to massage the result a bit if in an FNC1 mode:\n            for (var i = start; i < result.length(); i++) {\n                if (result.charAt(i) === '%') {\n                    if (i < result.length() - 1 && result.charAt(i + 1) === '%') {\n                        // %% is rendered as %\n                        result.deleteCharAt(i + 1);\n                    }\n                    else {\n                        // In alpha mode, % should be converted to FNC1 separator 0x1D\n                        result.setCharAt(i, String.fromCharCode(0x1D));\n                    }\n                }\n            }\n        }\n    };\n    DecodedBitStreamParser.decodeNumericSegment = function (bits, result, count /*int*/) {\n        // Read three digits at a time\n        while (count >= 3) {\n            // Each 10 bits encodes three digits\n            if (bits.available() < 10) {\n                throw new FormatException();\n            }\n            var threeDigitsBits = bits.readBits(10);\n            if (threeDigitsBits >= 1000) {\n                throw new FormatException();\n            }\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(threeDigitsBits / 100)));\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(threeDigitsBits / 10) % 10));\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(threeDigitsBits % 10));\n            count -= 3;\n        }\n        if (count === 2) {\n            // Two digits left over to read, encoded in 7 bits\n            if (bits.available() < 7) {\n                throw new FormatException();\n            }\n            var twoDigitsBits = bits.readBits(7);\n            if (twoDigitsBits >= 100) {\n                throw new FormatException();\n            }\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(Math.floor(twoDigitsBits / 10)));\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(twoDigitsBits % 10));\n        }\n        else if (count === 1) {\n            // One digit left over to read\n            if (bits.available() < 4) {\n                throw new FormatException();\n            }\n            var digitBits = bits.readBits(4);\n            if (digitBits >= 10) {\n                throw new FormatException();\n            }\n            result.append(DecodedBitStreamParser.toAlphaNumericChar(digitBits));\n        }\n    };\n    DecodedBitStreamParser.parseECIValue = function (bits) {\n        var firstByte = bits.readBits(8);\n        if ((firstByte & 0x80) === 0) {\n            // just one byte\n            return firstByte & 0x7F;\n        }\n        if ((firstByte & 0xC0) === 0x80) {\n            // two bytes\n            var secondByte = bits.readBits(8);\n            return (((firstByte & 0x3F) << 8) & 0xFFFFFFFF) | secondByte;\n        }\n        if ((firstByte & 0xE0) === 0xC0) {\n            // three bytes\n            var secondThirdBytes = bits.readBits(16);\n            return (((firstByte & 0x1F) << 16) & 0xFFFFFFFF) | secondThirdBytes;\n        }\n        throw new FormatException();\n    };\n    /**\n     * See ISO 18004:2006, 6.4.4 Table 5\n     */\n    DecodedBitStreamParser.ALPHANUMERIC_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';\n    DecodedBitStreamParser.GB2312_SUBSET = 1;\n    return DecodedBitStreamParser;\n}());\nexport default DecodedBitStreamParser;\n// function Uint8ArrayToString(a: Uint8Array): string {\n//     const CHUNK_SZ = 0x8000;\n//     const c = new StringBuilder();\n//     for (let i = 0, length = a.length; i < length; i += CHUNK_SZ) {\n//         c.append(String.fromCharCode.apply(null, a.subarray(i, i + CHUNK_SZ)));\n//     }\n//     return c.toString();\n// }\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Meta-data container for QR Code decoding. Instances of this class may be used to convey information back to the\n * decoding caller. Callers are expected to process this.\n *\n * @see com.google.zxing.common.DecoderResult#getOther()\n */\nvar QRCodeDecoderMetaData = /** @class */ (function () {\n    function QRCodeDecoderMetaData(mirrored) {\n        this.mirrored = mirrored;\n    }\n    /**\n     * @return true if the QR Code was mirrored.\n     */\n    QRCodeDecoderMetaData.prototype.isMirrored = function () {\n        return this.mirrored;\n    };\n    /**\n     * Apply the result points' order correction due to mirroring.\n     *\n     * @param points Array of points to apply mirror correction to.\n     */\n    QRCodeDecoderMetaData.prototype.applyMirroredCorrection = function (points) {\n        if (!this.mirrored || points === null || points.length < 3) {\n            return;\n        }\n        var bottomLeft = points[0];\n        points[0] = points[2];\n        points[2] = bottomLeft;\n        // No need to 'fix' top-left and alignment pattern.\n    };\n    return QRCodeDecoderMetaData;\n}());\nexport default QRCodeDecoderMetaData;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.decoder {*/\nimport ChecksumException from '../../ChecksumException';\nimport BitMatrix from '../../common/BitMatrix';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonDecoder from '../../common/reedsolomon/ReedSolomonDecoder';\nimport BitMatrixParser from './BitMatrixParser';\nimport DataBlock from './DataBlock';\nimport DecodedBitStreamParser from './DecodedBitStreamParser';\nimport QRCodeDecoderMetaData from './QRCodeDecoderMetaData';\n/*import java.util.Map;*/\n/**\n * <p>The main class which implements QR Code decoding -- as opposed to locating and extracting\n * the QR Code from an image.</p>\n *\n * @author Sean Owen\n */\nvar Decoder = /** @class */ (function () {\n    function Decoder() {\n        this.rsDecoder = new ReedSolomonDecoder(GenericGF.QR_CODE_FIELD_256);\n    }\n    // public decode(image: boolean[][]): DecoderResult /*throws ChecksumException, FormatException*/ {\n    //   return decode(image, null)\n    // }\n    /**\n     * <p>Convenience method that can decode a QR Code represented as a 2D array of booleans.\n     * \"true\" is taken to mean a black module.</p>\n     *\n     * @param image booleans representing white/black QR Code modules\n     * @param hints decoding hints that should be used to influence decoding\n     * @return text and bytes encoded within the QR Code\n     * @throws FormatException if the QR Code cannot be decoded\n     * @throws ChecksumException if error correction fails\n     */\n    Decoder.prototype.decodeBooleanArray = function (image, hints) {\n        return this.decodeBitMatrix(BitMatrix.parseFromBooleanArray(image), hints);\n    };\n    // public decodeBitMatrix(bits: BitMatrix): DecoderResult /*throws ChecksumException, FormatException*/ {\n    //   return decode(bits, null)\n    // }\n    /**\n     * <p>Decodes a QR Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken to mean a black module.</p>\n     *\n     * @param bits booleans representing white/black QR Code modules\n     * @param hints decoding hints that should be used to influence decoding\n     * @return text and bytes encoded within the QR Code\n     * @throws FormatException if the QR Code cannot be decoded\n     * @throws ChecksumException if error correction fails\n     */\n    Decoder.prototype.decodeBitMatrix = function (bits, hints) {\n        // Construct a parser and read version, error-correction level\n        var parser = new BitMatrixParser(bits);\n        var ex = null;\n        try {\n            return this.decodeBitMatrixParser(parser, hints);\n        }\n        catch (e /*: FormatException, ChecksumException*/) {\n            ex = e;\n        }\n        try {\n            // Revert the bit matrix\n            parser.remask();\n            // Will be attempting a mirrored reading of the version and format info.\n            parser.setMirror(true);\n            // Preemptively read the version.\n            parser.readVersion();\n            // Preemptively read the format information.\n            parser.readFormatInformation();\n            /*\n             * Since we're here, this means we have successfully detected some kind\n             * of version and format information when mirrored. This is a good sign,\n             * that the QR code may be mirrored, and we should try once more with a\n             * mirrored content.\n             */\n            // Prepare for a mirrored reading.\n            parser.mirror();\n            var result = this.decodeBitMatrixParser(parser, hints);\n            // Success! Notify the caller that the code was mirrored.\n            result.setOther(new QRCodeDecoderMetaData(true));\n            return result;\n        }\n        catch (e /*FormatException | ChecksumException*/) {\n            // Throw the exception from the original reading\n            if (ex !== null) {\n                throw ex;\n            }\n            throw e;\n        }\n    };\n    Decoder.prototype.decodeBitMatrixParser = function (parser, hints) {\n        var e_1, _a, e_2, _b;\n        var version = parser.readVersion();\n        var ecLevel = parser.readFormatInformation().getErrorCorrectionLevel();\n        // Read codewords\n        var codewords = parser.readCodewords();\n        // Separate into data blocks\n        var dataBlocks = DataBlock.getDataBlocks(codewords, version, ecLevel);\n        // Count total number of data bytes\n        var totalBytes = 0;\n        try {\n            for (var dataBlocks_1 = __values(dataBlocks), dataBlocks_1_1 = dataBlocks_1.next(); !dataBlocks_1_1.done; dataBlocks_1_1 = dataBlocks_1.next()) {\n                var dataBlock = dataBlocks_1_1.value;\n                totalBytes += dataBlock.getNumDataCodewords();\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (dataBlocks_1_1 && !dataBlocks_1_1.done && (_a = dataBlocks_1.return)) _a.call(dataBlocks_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        var resultBytes = new Uint8Array(totalBytes);\n        var resultOffset = 0;\n        try {\n            // Error-correct and copy data blocks together into a stream of bytes\n            for (var dataBlocks_2 = __values(dataBlocks), dataBlocks_2_1 = dataBlocks_2.next(); !dataBlocks_2_1.done; dataBlocks_2_1 = dataBlocks_2.next()) {\n                var dataBlock = dataBlocks_2_1.value;\n                var codewordBytes = dataBlock.getCodewords();\n                var numDataCodewords = dataBlock.getNumDataCodewords();\n                this.correctErrors(codewordBytes, numDataCodewords);\n                for (var i = 0; i < numDataCodewords; i++) {\n                    resultBytes[resultOffset++] = codewordBytes[i];\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (dataBlocks_2_1 && !dataBlocks_2_1.done && (_b = dataBlocks_2.return)) _b.call(dataBlocks_2);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        // Decode the contents of that stream of bytes\n        return DecodedBitStreamParser.decode(resultBytes, version, ecLevel, hints);\n    };\n    /**\n     * <p>Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n     * correct the errors in-place using Reed-Solomon error correction.</p>\n     *\n     * @param codewordBytes data and error correction codewords\n     * @param numDataCodewords number of codewords that are data bytes\n     * @throws ChecksumException if error correction fails\n     */\n    Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords /*int*/) {\n        // const numCodewords = codewordBytes.length;\n        // First read into an array of ints\n        var codewordsInts = new Int32Array(codewordBytes);\n        // TYPESCRIPTPORT: not realy necessary to transform to ints? could redesign everything to work with unsigned bytes?\n        // const codewordsInts = new Int32Array(numCodewords)\n        // for (let i = 0; i < numCodewords; i++) {\n        //   codewordsInts[i] = codewordBytes[i] & 0xFF\n        // }\n        try {\n            this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n        }\n        catch (ignored /*: ReedSolomonException*/) {\n            throw new ChecksumException();\n        }\n        // Copy back into array of bytes -- only need to worry about the bytes that were data\n        // We don't care about errors in the error-correction codewords\n        for (var i = 0; i < numDataCodewords; i++) {\n            codewordBytes[i] = /*(byte) */ codewordsInts[i];\n        }\n    };\n    return Decoder;\n}());\nexport default Decoder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.qrcode.detector {*/\nimport ResultPoint from '../../ResultPoint';\n/**\n * <p>Encapsulates an alignment pattern, which are the smaller square patterns found in\n * all but the simplest QR Codes.</p>\n *\n * @author Sean Owen\n */\nvar AlignmentPattern = /** @class */ (function (_super) {\n    __extends(AlignmentPattern, _super);\n    function AlignmentPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/) {\n        var _this = _super.call(this, posX, posY) || this;\n        _this.estimatedModuleSize = estimatedModuleSize;\n        return _this;\n    }\n    /**\n     * <p>Determines if this alignment pattern \"about equals\" an alignment pattern at the stated\n     * position and size -- meaning, it is at nearly the same center with nearly the same size.</p>\n     */\n    AlignmentPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n        if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n            var moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n            return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n        }\n        return false;\n    };\n    /**\n     * Combines this object's current estimate of a finder pattern position and module size\n     * with a new estimate. It returns a new {@code FinderPattern} containing an average of the two.\n     */\n    AlignmentPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n        var combinedX = (this.getX() + j) / 2.0;\n        var combinedY = (this.getY() + i) / 2.0;\n        var combinedModuleSize = (this.estimatedModuleSize + newModuleSize) / 2.0;\n        return new AlignmentPattern(combinedX, combinedY, combinedModuleSize);\n    };\n    return AlignmentPattern;\n}(ResultPoint));\nexport default AlignmentPattern;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport AlignmentPattern from './AlignmentPattern';\nimport NotFoundException from '../../NotFoundException';\n/*import java.util.ArrayList;*/\n/*import java.util.List;*/\n/**\n * <p>This class attempts to find alignment patterns in a QR Code. Alignment patterns look like finder\n * patterns but are smaller and appear at regular intervals throughout the image.</p>\n *\n * <p>At the moment this only looks for the bottom-right alignment pattern.</p>\n *\n * <p>This is mostly a simplified copy of {@link FinderPatternFinder}. It is copied,\n * pasted and stripped down here for maximum performance but does unfortunately duplicate\n * some code.</p>\n *\n * <p>This class is thread-safe but not reentrant. Each thread must allocate its own object.</p>\n *\n * @author Sean Owen\n */\nvar AlignmentPatternFinder = /** @class */ (function () {\n    /**\n     * <p>Creates a finder that will look in a portion of the whole image.</p>\n     *\n     * @param image image to search\n     * @param startX left column from which to start searching\n     * @param startY top row from which to start searching\n     * @param width width of region to search\n     * @param height height of region to search\n     * @param moduleSize estimated module size so far\n     */\n    function AlignmentPatternFinder(image, startX /*int*/, startY /*int*/, width /*int*/, height /*int*/, moduleSize /*float*/, resultPointCallback) {\n        this.image = image;\n        this.startX = startX;\n        this.startY = startY;\n        this.width = width;\n        this.height = height;\n        this.moduleSize = moduleSize;\n        this.resultPointCallback = resultPointCallback;\n        this.possibleCenters = []; // new Array<any>(5))\n        // TYPESCRIPTPORT: array initialization without size as the length is checked below\n        this.crossCheckStateCount = new Int32Array(3);\n    }\n    /**\n     * <p>This method attempts to find the bottom-right alignment pattern in the image. It is a bit messy since\n     * it's pretty performance-critical and so is written to be fast foremost.</p>\n     *\n     * @return {@link AlignmentPattern} if found\n     * @throws NotFoundException if not found\n     */\n    AlignmentPatternFinder.prototype.find = function () {\n        var startX = this.startX;\n        var height = this.height;\n        var width = this.width;\n        var maxJ = startX + width;\n        var middleI = this.startY + (height / 2);\n        // We are looking for black/white/black modules in 1:1:1 ratio\n        // this tracks the number of black/white/black modules seen so far\n        var stateCount = new Int32Array(3);\n        var image = this.image;\n        for (var iGen = 0; iGen < height; iGen++) {\n            // Search from middle outwards\n            var i = middleI + ((iGen & 0x01) === 0 ? Math.floor((iGen + 1) / 2) : -Math.floor((iGen + 1) / 2));\n            stateCount[0] = 0;\n            stateCount[1] = 0;\n            stateCount[2] = 0;\n            var j = startX;\n            // Burn off leading white pixels before anything else; if we start in the middle of\n            // a white run, it doesn't make sense to count its length, since we don't know if the\n            // white run continued to the left of the start point\n            while (j < maxJ && !image.get(j, i)) {\n                j++;\n            }\n            var currentState = 0;\n            while (j < maxJ) {\n                if (image.get(j, i)) {\n                    // Black pixel\n                    if (currentState === 1) { // Counting black pixels\n                        stateCount[1]++;\n                    }\n                    else { // Counting white pixels\n                        if (currentState === 2) { // A winner?\n                            if (this.foundPatternCross(stateCount)) { // Yes\n                                var confirmed = this.handlePossibleCenter(stateCount, i, j);\n                                if (confirmed !== null) {\n                                    return confirmed;\n                                }\n                            }\n                            stateCount[0] = stateCount[2];\n                            stateCount[1] = 1;\n                            stateCount[2] = 0;\n                            currentState = 1;\n                        }\n                        else {\n                            stateCount[++currentState]++;\n                        }\n                    }\n                }\n                else { // White pixel\n                    if (currentState === 1) { // Counting black pixels\n                        currentState++;\n                    }\n                    stateCount[currentState]++;\n                }\n                j++;\n            }\n            if (this.foundPatternCross(stateCount)) {\n                var confirmed = this.handlePossibleCenter(stateCount, i, maxJ);\n                if (confirmed !== null) {\n                    return confirmed;\n                }\n            }\n        }\n        // Hmm, nothing we saw was observed and confirmed twice. If we had\n        // any guess at all, return it.\n        if (this.possibleCenters.length !== 0) {\n            return this.possibleCenters[0];\n        }\n        throw new NotFoundException();\n    };\n    /**\n     * Given a count of black/white/black pixels just seen and an end position,\n     * figures the location of the center of this black/white/black run.\n     */\n    AlignmentPatternFinder.centerFromEnd = function (stateCount, end /*int*/) {\n        return (end - stateCount[2]) - stateCount[1] / 2.0;\n    };\n    /**\n     * @param stateCount count of black/white/black pixels just read\n     * @return true iff the proportions of the counts is close enough to the 1/1/1 ratios\n     *         used by alignment patterns to be considered a match\n     */\n    AlignmentPatternFinder.prototype.foundPatternCross = function (stateCount) {\n        var moduleSize = this.moduleSize;\n        var maxVariance = moduleSize / 2.0;\n        for (var i = 0; i < 3; i++) {\n            if (Math.abs(moduleSize - stateCount[i]) >= maxVariance) {\n                return false;\n            }\n        }\n        return true;\n    };\n    /**\n     * <p>After a horizontal scan finds a potential alignment pattern, this method\n     * \"cross-checks\" by scanning down vertically through the center of the possible\n     * alignment pattern to see if the same proportion is detected.</p>\n     *\n     * @param startI row where an alignment pattern was detected\n     * @param centerJ center of the section that appears to cross an alignment pattern\n     * @param maxCount maximum reasonable number of modules that should be\n     * observed in any reading state, based on the results of the horizontal scan\n     * @return vertical center of alignment pattern, or {@link Float#NaN} if not found\n     */\n    AlignmentPatternFinder.prototype.crossCheckVertical = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n        var image = this.image;\n        var maxI = image.getHeight();\n        var stateCount = this.crossCheckStateCount;\n        stateCount[0] = 0;\n        stateCount[1] = 0;\n        stateCount[2] = 0;\n        // Start counting up from center\n        var i = startI;\n        while (i >= 0 && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n            stateCount[1]++;\n            i--;\n        }\n        // If already too many modules in this state or ran off the edge:\n        if (i < 0 || stateCount[1] > maxCount) {\n            return NaN;\n        }\n        while (i >= 0 && !image.get(centerJ, i) && stateCount[0] <= maxCount) {\n            stateCount[0]++;\n            i--;\n        }\n        if (stateCount[0] > maxCount) {\n            return NaN;\n        }\n        // Now also count down from center\n        i = startI + 1;\n        while (i < maxI && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n            stateCount[1]++;\n            i++;\n        }\n        if (i === maxI || stateCount[1] > maxCount) {\n            return NaN;\n        }\n        while (i < maxI && !image.get(centerJ, i) && stateCount[2] <= maxCount) {\n            stateCount[2]++;\n            i++;\n        }\n        if (stateCount[2] > maxCount) {\n            return NaN;\n        }\n        var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n        if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n            return NaN;\n        }\n        return this.foundPatternCross(stateCount) ? AlignmentPatternFinder.centerFromEnd(stateCount, i) : NaN;\n    };\n    /**\n     * <p>This is called when a horizontal scan finds a possible alignment pattern. It will\n     * cross check with a vertical scan, and if successful, will see if this pattern had been\n     * found on a previous horizontal scan. If so, we consider it confirmed and conclude we have\n     * found the alignment pattern.</p>\n     *\n     * @param stateCount reading state module counts from horizontal scan\n     * @param i row where alignment pattern may be found\n     * @param j end of possible alignment pattern in row\n     * @return {@link AlignmentPattern} if we have found the same pattern twice, or null if not\n     */\n    AlignmentPatternFinder.prototype.handlePossibleCenter = function (stateCount, i /*int*/, j /*int*/) {\n        var e_1, _a;\n        var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n        var centerJ = AlignmentPatternFinder.centerFromEnd(stateCount, j);\n        var centerI = this.crossCheckVertical(i, /*(int) */ centerJ, 2 * stateCount[1], stateCountTotal);\n        if (!isNaN(centerI)) {\n            var estimatedModuleSize = (stateCount[0] + stateCount[1] + stateCount[2]) / 3.0;\n            try {\n                for (var _b = __values(this.possibleCenters), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var center = _c.value;\n                    // Look for about the same center and module size:\n                    if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n                        return center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n                    }\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            // Hadn't found this before; save it\n            var point = new AlignmentPattern(centerJ, centerI, estimatedModuleSize);\n            this.possibleCenters.push(point);\n            if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n                this.resultPointCallback.foundPossibleResultPoint(point);\n            }\n        }\n        return null;\n    };\n    return AlignmentPatternFinder;\n}());\nexport default AlignmentPatternFinder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing.qrcode.detector {*/\nimport ResultPoint from '../../ResultPoint';\n/**\n * <p>Encapsulates a finder pattern, which are the three square patterns found in\n * the corners of QR Codes. It also encapsulates a count of similar finder patterns,\n * as a convenience to the finder's bookkeeping.</p>\n *\n * @author Sean Owen\n */\nvar FinderPattern = /** @class */ (function (_super) {\n    __extends(FinderPattern, _super);\n    // FinderPattern(posX: number/*float*/, posY: number/*float*/, estimatedModuleSize: number/*float*/) {\n    //   this(posX, posY, estimatedModuleSize, 1)\n    // }\n    function FinderPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/, count /*int*/) {\n        var _this = _super.call(this, posX, posY) || this;\n        _this.estimatedModuleSize = estimatedModuleSize;\n        _this.count = count;\n        if (undefined === count) {\n            _this.count = 1;\n        }\n        return _this;\n    }\n    FinderPattern.prototype.getEstimatedModuleSize = function () {\n        return this.estimatedModuleSize;\n    };\n    FinderPattern.prototype.getCount = function () {\n        return this.count;\n    };\n    /*\n    void incrementCount() {\n      this.count++\n    }\n     */\n    /**\n     * <p>Determines if this finder pattern \"about equals\" a finder pattern at the stated\n     * position and size -- meaning, it is at nearly the same center with nearly the same size.</p>\n     */\n    FinderPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n        if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n            var moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n            return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n        }\n        return false;\n    };\n    /**\n     * Combines this object's current estimate of a finder pattern position and module size\n     * with a new estimate. It returns a new {@code FinderPattern} containing a weighted average\n     * based on count.\n     */\n    FinderPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n        var combinedCount = this.count + 1;\n        var combinedX = (this.count * this.getX() + j) / combinedCount;\n        var combinedY = (this.count * this.getY() + i) / combinedCount;\n        var combinedModuleSize = (this.count * this.estimatedModuleSize + newModuleSize) / combinedCount;\n        return new FinderPattern(combinedX, combinedY, combinedModuleSize, combinedCount);\n    };\n    return FinderPattern;\n}(ResultPoint));\nexport default FinderPattern;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * <p>Encapsulates information about finder patterns in an image, including the location of\n * the three finder patterns, and their estimated module size.</p>\n *\n * @author Sean Owen\n */\nvar FinderPatternInfo = /** @class */ (function () {\n    function FinderPatternInfo(patternCenters) {\n        this.bottomLeft = patternCenters[0];\n        this.topLeft = patternCenters[1];\n        this.topRight = patternCenters[2];\n    }\n    FinderPatternInfo.prototype.getBottomLeft = function () {\n        return this.bottomLeft;\n    };\n    FinderPatternInfo.prototype.getTopLeft = function () {\n        return this.topLeft;\n    };\n    FinderPatternInfo.prototype.getTopRight = function () {\n        return this.topRight;\n    };\n    return FinderPatternInfo;\n}());\nexport default FinderPatternInfo;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.detector {*/\nimport DecodeHintType from '../../DecodeHintType';\nimport ResultPoint from '../../ResultPoint';\nimport FinderPattern from './FinderPattern';\nimport FinderPatternInfo from './FinderPatternInfo';\nimport NotFoundException from '../../NotFoundException';\n/*import java.io.Serializable;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collections;*/\n/*import java.util.Comparator;*/\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n * <p>This class attempts to find finder patterns in a QR Code. Finder patterns are the square\n * markers at three corners of a QR Code.</p>\n *\n * <p>This class is thread-safe but not reentrant. Each thread must allocate its own object.\n *\n * @author Sean Owen\n */\nvar FinderPatternFinder = /** @class */ (function () {\n    /**\n     * <p>Creates a finder that will search the image for three finder patterns.</p>\n     *\n     * @param image image to search\n     */\n    // public constructor(image: BitMatrix) {\n    //   this(image, null)\n    // }\n    function FinderPatternFinder(image, resultPointCallback) {\n        this.image = image;\n        this.resultPointCallback = resultPointCallback;\n        this.possibleCenters = [];\n        this.crossCheckStateCount = new Int32Array(5);\n        this.resultPointCallback = resultPointCallback;\n    }\n    FinderPatternFinder.prototype.getImage = function () {\n        return this.image;\n    };\n    FinderPatternFinder.prototype.getPossibleCenters = function () {\n        return this.possibleCenters;\n    };\n    FinderPatternFinder.prototype.find = function (hints) {\n        var tryHarder = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType.TRY_HARDER);\n        var pureBarcode = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType.PURE_BARCODE);\n        var image = this.image;\n        var maxI = image.getHeight();\n        var maxJ = image.getWidth();\n        // We are looking for black/white/black/white/black modules in\n        // 1:1:3:1:1 ratio; this tracks the number of such modules seen so far\n        // Let's assume that the maximum version QR Code we support takes up 1/4 the height of the\n        // image, and then account for the center being 3 modules in size. This gives the smallest\n        // number of pixels the center could be, so skip this often. When trying harder, look for all\n        // QR versions regardless of how dense they are.\n        var iSkip = Math.floor((3 * maxI) / (4 * FinderPatternFinder.MAX_MODULES));\n        if (iSkip < FinderPatternFinder.MIN_SKIP || tryHarder) {\n            iSkip = FinderPatternFinder.MIN_SKIP;\n        }\n        var done = false;\n        var stateCount = new Int32Array(5);\n        for (var i = iSkip - 1; i < maxI && !done; i += iSkip) {\n            // Get a row of black/white values\n            stateCount[0] = 0;\n            stateCount[1] = 0;\n            stateCount[2] = 0;\n            stateCount[3] = 0;\n            stateCount[4] = 0;\n            var currentState = 0;\n            for (var j = 0; j < maxJ; j++) {\n                if (image.get(j, i)) {\n                    // Black pixel\n                    if ((currentState & 1) === 1) { // Counting white pixels\n                        currentState++;\n                    }\n                    stateCount[currentState]++;\n                }\n                else { // White pixel\n                    if ((currentState & 1) === 0) { // Counting black pixels\n                        if (currentState === 4) { // A winner?\n                            if (FinderPatternFinder.foundPatternCross(stateCount)) { // Yes\n                                var confirmed = this.handlePossibleCenter(stateCount, i, j, pureBarcode);\n                                if (confirmed === true) {\n                                    // Start examining every other line. Checking each line turned out to be too\n                                    // expensive and didn't improve performance.\n                                    iSkip = 2;\n                                    if (this.hasSkipped === true) {\n                                        done = this.haveMultiplyConfirmedCenters();\n                                    }\n                                    else {\n                                        var rowSkip = this.findRowSkip();\n                                        if (rowSkip > stateCount[2]) {\n                                            // Skip rows between row of lower confirmed center\n                                            // and top of presumed third confirmed center\n                                            // but back up a bit to get a full chance of detecting\n                                            // it, entire width of center of finder pattern\n                                            // Skip by rowSkip, but back off by stateCount[2] (size of last center\n                                            // of pattern we saw) to be conservative, and also back off by iSkip which\n                                            // is about to be re-added\n                                            i += rowSkip - stateCount[2] - iSkip;\n                                            j = maxJ - 1;\n                                        }\n                                    }\n                                }\n                                else {\n                                    stateCount[0] = stateCount[2];\n                                    stateCount[1] = stateCount[3];\n                                    stateCount[2] = stateCount[4];\n                                    stateCount[3] = 1;\n                                    stateCount[4] = 0;\n                                    currentState = 3;\n                                    continue;\n                                }\n                                // Clear state to start looking again\n                                currentState = 0;\n                                stateCount[0] = 0;\n                                stateCount[1] = 0;\n                                stateCount[2] = 0;\n                                stateCount[3] = 0;\n                                stateCount[4] = 0;\n                            }\n                            else { // No, shift counts back by two\n                                stateCount[0] = stateCount[2];\n                                stateCount[1] = stateCount[3];\n                                stateCount[2] = stateCount[4];\n                                stateCount[3] = 1;\n                                stateCount[4] = 0;\n                                currentState = 3;\n                            }\n                        }\n                        else {\n                            stateCount[++currentState]++;\n                        }\n                    }\n                    else { // Counting white pixels\n                        stateCount[currentState]++;\n                    }\n                }\n            }\n            if (FinderPatternFinder.foundPatternCross(stateCount)) {\n                var confirmed = this.handlePossibleCenter(stateCount, i, maxJ, pureBarcode);\n                if (confirmed === true) {\n                    iSkip = stateCount[0];\n                    if (this.hasSkipped) {\n                        // Found a third one\n                        done = this.haveMultiplyConfirmedCenters();\n                    }\n                }\n            }\n        }\n        var patternInfo = this.selectBestPatterns();\n        ResultPoint.orderBestPatterns(patternInfo);\n        return new FinderPatternInfo(patternInfo);\n    };\n    /**\n     * Given a count of black/white/black/white/black pixels just seen and an end position,\n     * figures the location of the center of this run.\n     */\n    FinderPatternFinder.centerFromEnd = function (stateCount, end /*int*/) {\n        return (end - stateCount[4] - stateCount[3]) - stateCount[2] / 2.0;\n    };\n    /**\n     * @param stateCount count of black/white/black/white/black pixels just read\n     * @return true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios\n     *         used by finder patterns to be considered a match\n     */\n    FinderPatternFinder.foundPatternCross = function (stateCount) {\n        var totalModuleSize = 0;\n        for (var i = 0; i < 5; i++) {\n            var count = stateCount[i];\n            if (count === 0) {\n                return false;\n            }\n            totalModuleSize += count;\n        }\n        if (totalModuleSize < 7) {\n            return false;\n        }\n        var moduleSize = totalModuleSize / 7.0;\n        var maxVariance = moduleSize / 2.0;\n        // Allow less than 50% variance from 1-1-3-1-1 proportions\n        return Math.abs(moduleSize - stateCount[0]) < maxVariance &&\n            Math.abs(moduleSize - stateCount[1]) < maxVariance &&\n            Math.abs(3.0 * moduleSize - stateCount[2]) < 3 * maxVariance &&\n            Math.abs(moduleSize - stateCount[3]) < maxVariance &&\n            Math.abs(moduleSize - stateCount[4]) < maxVariance;\n    };\n    FinderPatternFinder.prototype.getCrossCheckStateCount = function () {\n        var crossCheckStateCount = this.crossCheckStateCount;\n        crossCheckStateCount[0] = 0;\n        crossCheckStateCount[1] = 0;\n        crossCheckStateCount[2] = 0;\n        crossCheckStateCount[3] = 0;\n        crossCheckStateCount[4] = 0;\n        return crossCheckStateCount;\n    };\n    /**\n     * After a vertical and horizontal scan finds a potential finder pattern, this method\n     * \"cross-cross-cross-checks\" by scanning down diagonally through the center of the possible\n     * finder pattern to see if the same proportion is detected.\n     *\n     * @param startI row where a finder pattern was detected\n     * @param centerJ center of the section that appears to cross a finder pattern\n     * @param maxCount maximum reasonable number of modules that should be\n     *  observed in any reading state, based on the results of the horizontal scan\n     * @param originalStateCountTotal The original state count total.\n     * @return true if proportions are withing expected limits\n     */\n    FinderPatternFinder.prototype.crossCheckDiagonal = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n        var stateCount = this.getCrossCheckStateCount();\n        // Start counting up, left from center finding black center mass\n        var i = 0;\n        var image = this.image;\n        while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i)) {\n            stateCount[2]++;\n            i++;\n        }\n        if (startI < i || centerJ < i) {\n            return false;\n        }\n        // Continue up, left finding white space\n        while (startI >= i && centerJ >= i && !image.get(centerJ - i, startI - i) &&\n            stateCount[1] <= maxCount) {\n            stateCount[1]++;\n            i++;\n        }\n        // If already too many modules in this state or ran off the edge:\n        if (startI < i || centerJ < i || stateCount[1] > maxCount) {\n            return false;\n        }\n        // Continue up, left finding black border\n        while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i) &&\n            stateCount[0] <= maxCount) {\n            stateCount[0]++;\n            i++;\n        }\n        if (stateCount[0] > maxCount) {\n            return false;\n        }\n        var maxI = image.getHeight();\n        var maxJ = image.getWidth();\n        // Now also count down, right from center\n        i = 1;\n        while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i)) {\n            stateCount[2]++;\n            i++;\n        }\n        // Ran off the edge?\n        if (startI + i >= maxI || centerJ + i >= maxJ) {\n            return false;\n        }\n        while (startI + i < maxI && centerJ + i < maxJ && !image.get(centerJ + i, startI + i) &&\n            stateCount[3] < maxCount) {\n            stateCount[3]++;\n            i++;\n        }\n        if (startI + i >= maxI || centerJ + i >= maxJ || stateCount[3] >= maxCount) {\n            return false;\n        }\n        while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i) &&\n            stateCount[4] < maxCount) {\n            stateCount[4]++;\n            i++;\n        }\n        if (stateCount[4] >= maxCount) {\n            return false;\n        }\n        // If we found a finder-pattern-like section, but its size is more than 100% different than\n        // the original, assume it's a false positive\n        var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + stateCount[4];\n        return Math.abs(stateCountTotal - originalStateCountTotal) < 2 * originalStateCountTotal &&\n            FinderPatternFinder.foundPatternCross(stateCount);\n    };\n    /**\n     * <p>After a horizontal scan finds a potential finder pattern, this method\n     * \"cross-checks\" by scanning down vertically through the center of the possible\n     * finder pattern to see if the same proportion is detected.</p>\n     *\n     * @param startI row where a finder pattern was detected\n     * @param centerJ center of the section that appears to cross a finder pattern\n     * @param maxCount maximum reasonable number of modules that should be\n     * observed in any reading state, based on the results of the horizontal scan\n     * @return vertical center of finder pattern, or {@link Float#NaN} if not found\n     */\n    FinderPatternFinder.prototype.crossCheckVertical = function (startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n        var image = this.image;\n        var maxI = image.getHeight();\n        var stateCount = this.getCrossCheckStateCount();\n        // Start counting up from center\n        var i = startI;\n        while (i >= 0 && image.get(centerJ, i)) {\n            stateCount[2]++;\n            i--;\n        }\n        if (i < 0) {\n            return NaN;\n        }\n        while (i >= 0 && !image.get(centerJ, i) && stateCount[1] <= maxCount) {\n            stateCount[1]++;\n            i--;\n        }\n        // If already too many modules in this state or ran off the edge:\n        if (i < 0 || stateCount[1] > maxCount) {\n            return NaN;\n        }\n        while (i >= 0 && image.get(centerJ, i) && stateCount[0] <= maxCount) {\n            stateCount[0]++;\n            i--;\n        }\n        if (stateCount[0] > maxCount) {\n            return NaN;\n        }\n        // Now also count down from center\n        i = startI + 1;\n        while (i < maxI && image.get(centerJ, i)) {\n            stateCount[2]++;\n            i++;\n        }\n        if (i === maxI) {\n            return NaN;\n        }\n        while (i < maxI && !image.get(centerJ, i) && stateCount[3] < maxCount) {\n            stateCount[3]++;\n            i++;\n        }\n        if (i === maxI || stateCount[3] >= maxCount) {\n            return NaN;\n        }\n        while (i < maxI && image.get(centerJ, i) && stateCount[4] < maxCount) {\n            stateCount[4]++;\n            i++;\n        }\n        if (stateCount[4] >= maxCount) {\n            return NaN;\n        }\n        // If we found a finder-pattern-like section, but its size is more than 40% different than\n        // the original, assume it's a false positive\n        var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n            stateCount[4];\n        if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n            return NaN;\n        }\n        return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, i) : NaN;\n    };\n    /**\n     * <p>Like {@link #crossCheckVertical(int, int, int, int)}, and in fact is basically identical,\n     * except it reads horizontally instead of vertically. This is used to cross-cross\n     * check a vertical cross check and locate the real center of the alignment pattern.</p>\n     */\n    FinderPatternFinder.prototype.crossCheckHorizontal = function (startJ /*int*/, centerI /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n        var image = this.image;\n        var maxJ = image.getWidth();\n        var stateCount = this.getCrossCheckStateCount();\n        var j = startJ;\n        while (j >= 0 && image.get(j, centerI)) {\n            stateCount[2]++;\n            j--;\n        }\n        if (j < 0) {\n            return NaN;\n        }\n        while (j >= 0 && !image.get(j, centerI) && stateCount[1] <= maxCount) {\n            stateCount[1]++;\n            j--;\n        }\n        if (j < 0 || stateCount[1] > maxCount) {\n            return NaN;\n        }\n        while (j >= 0 && image.get(j, centerI) && stateCount[0] <= maxCount) {\n            stateCount[0]++;\n            j--;\n        }\n        if (stateCount[0] > maxCount) {\n            return NaN;\n        }\n        j = startJ + 1;\n        while (j < maxJ && image.get(j, centerI)) {\n            stateCount[2]++;\n            j++;\n        }\n        if (j === maxJ) {\n            return NaN;\n        }\n        while (j < maxJ && !image.get(j, centerI) && stateCount[3] < maxCount) {\n            stateCount[3]++;\n            j++;\n        }\n        if (j === maxJ || stateCount[3] >= maxCount) {\n            return NaN;\n        }\n        while (j < maxJ && image.get(j, centerI) && stateCount[4] < maxCount) {\n            stateCount[4]++;\n            j++;\n        }\n        if (stateCount[4] >= maxCount) {\n            return NaN;\n        }\n        // If we found a finder-pattern-like section, but its size is significantly different than\n        // the original, assume it's a false positive\n        var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n            stateCount[4];\n        if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= originalStateCountTotal) {\n            return NaN;\n        }\n        return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, j) : NaN;\n    };\n    /**\n     * <p>This is called when a horizontal scan finds a possible alignment pattern. It will\n     * cross check with a vertical scan, and if successful, will, ah, cross-cross-check\n     * with another horizontal scan. This is needed primarily to locate the real horizontal\n     * center of the pattern in cases of extreme skew.\n     * And then we cross-cross-cross check with another diagonal scan.</p>\n     *\n     * <p>If that succeeds the finder pattern location is added to a list that tracks\n     * the number of times each location has been nearly-matched as a finder pattern.\n     * Each additional find is more evidence that the location is in fact a finder\n     * pattern center\n     *\n     * @param stateCount reading state module counts from horizontal scan\n     * @param i row where finder pattern may be found\n     * @param j end of possible finder pattern in row\n     * @param pureBarcode true if in \"pure barcode\" mode\n     * @return true if a finder pattern candidate was found this time\n     */\n    FinderPatternFinder.prototype.handlePossibleCenter = function (stateCount, i /*int*/, j /*int*/, pureBarcode) {\n        var stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n            stateCount[4];\n        var centerJ = FinderPatternFinder.centerFromEnd(stateCount, j);\n        var centerI = this.crossCheckVertical(i, /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal);\n        if (!isNaN(centerI)) {\n            // Re-cross check\n            centerJ = this.crossCheckHorizontal(/*(int) */ Math.floor(centerJ), /*(int) */ Math.floor(centerI), stateCount[2], stateCountTotal);\n            if (!isNaN(centerJ) &&\n                (!pureBarcode || this.crossCheckDiagonal(/*(int) */ Math.floor(centerI), /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal))) {\n                var estimatedModuleSize = stateCountTotal / 7.0;\n                var found = false;\n                var possibleCenters = this.possibleCenters;\n                for (var index = 0, length_1 = possibleCenters.length; index < length_1; index++) {\n                    var center = possibleCenters[index];\n                    // Look for about the same center and module size:\n                    if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n                        possibleCenters[index] = center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n                        found = true;\n                        break;\n                    }\n                }\n                if (!found) {\n                    var point = new FinderPattern(centerJ, centerI, estimatedModuleSize);\n                    possibleCenters.push(point);\n                    if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n                        this.resultPointCallback.foundPossibleResultPoint(point);\n                    }\n                }\n                return true;\n            }\n        }\n        return false;\n    };\n    /**\n     * @return number of rows we could safely skip during scanning, based on the first\n     *         two finder patterns that have been located. In some cases their position will\n     *         allow us to infer that the third pattern must lie below a certain point farther\n     *         down in the image.\n     */\n    FinderPatternFinder.prototype.findRowSkip = function () {\n        var e_1, _a;\n        var max = this.possibleCenters.length;\n        if (max <= 1) {\n            return 0;\n        }\n        var firstConfirmedCenter = null;\n        try {\n            for (var _b = __values(this.possibleCenters), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var center = _c.value;\n                if (center.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n                    if (firstConfirmedCenter == null) {\n                        firstConfirmedCenter = center;\n                    }\n                    else {\n                        // We have two confirmed centers\n                        // How far down can we skip before resuming looking for the next\n                        // pattern? In the worst case, only the difference between the\n                        // difference in the x / y coordinates of the two centers.\n                        // This is the case where you find top left last.\n                        this.hasSkipped = true;\n                        return /*(int) */ Math.floor((Math.abs(firstConfirmedCenter.getX() - center.getX()) -\n                            Math.abs(firstConfirmedCenter.getY() - center.getY())) / 2);\n                    }\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return 0;\n    };\n    /**\n     * @return true iff we have found at least 3 finder patterns that have been detected\n     *         at least {@link #CENTER_QUORUM} times each, and, the estimated module size of the\n     *         candidates is \"pretty similar\"\n     */\n    FinderPatternFinder.prototype.haveMultiplyConfirmedCenters = function () {\n        var e_2, _a, e_3, _b;\n        var confirmedCount = 0;\n        var totalModuleSize = 0.0;\n        var max = this.possibleCenters.length;\n        try {\n            for (var _c = __values(this.possibleCenters), _d = _c.next(); !_d.done; _d = _c.next()) {\n                var pattern = _d.value;\n                if (pattern.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n                    confirmedCount++;\n                    totalModuleSize += pattern.getEstimatedModuleSize();\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        if (confirmedCount < 3) {\n            return false;\n        }\n        // OK, we have at least 3 confirmed centers, but, it's possible that one is a \"false positive\"\n        // and that we need to keep looking. We detect this by asking if the estimated module sizes\n        // vary too much. We arbitrarily say that when the total deviation from average exceeds\n        // 5% of the total module size estimates, it's too much.\n        var average = totalModuleSize / max;\n        var totalDeviation = 0.0;\n        try {\n            for (var _e = __values(this.possibleCenters), _f = _e.next(); !_f.done; _f = _e.next()) {\n                var pattern = _f.value;\n                totalDeviation += Math.abs(pattern.getEstimatedModuleSize() - average);\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n        return totalDeviation <= 0.05 * totalModuleSize;\n    };\n    /**\n     * @return the 3 best {@link FinderPattern}s from our list of candidates. The \"best\" are\n     *         those that have been detected at least {@link #CENTER_QUORUM} times, and whose module\n     *         size differs from the average among those patterns the least\n     * @throws NotFoundException if 3 such finder patterns do not exist\n     */\n    FinderPatternFinder.prototype.selectBestPatterns = function () {\n        var e_4, _a, e_5, _b;\n        var startSize = this.possibleCenters.length;\n        if (startSize < 3) {\n            // Couldn't find enough finder patterns\n            throw new NotFoundException();\n        }\n        var possibleCenters = this.possibleCenters;\n        var average;\n        // Filter outlier possibilities whose module size is too different\n        if (startSize > 3) {\n            // But we can only afford to do so if we have at least 4 possibilities to choose from\n            var totalModuleSize = 0.0;\n            var square = 0.0;\n            try {\n                for (var _c = __values(this.possibleCenters), _d = _c.next(); !_d.done; _d = _c.next()) {\n                    var center = _d.value;\n                    var size = center.getEstimatedModuleSize();\n                    totalModuleSize += size;\n                    square += size * size;\n                }\n            }\n            catch (e_4_1) { e_4 = { error: e_4_1 }; }\n            finally {\n                try {\n                    if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n                }\n                finally { if (e_4) throw e_4.error; }\n            }\n            average = totalModuleSize / startSize;\n            var stdDev = Math.sqrt(square / startSize - average * average);\n            possibleCenters.sort(\n            /**\n             * <p>Orders by furthest from average</p>\n             */\n            // FurthestFromAverageComparator implements Comparator<FinderPattern>\n            function (center1, center2) {\n                var dA = Math.abs(center2.getEstimatedModuleSize() - average);\n                var dB = Math.abs(center1.getEstimatedModuleSize() - average);\n                return dA < dB ? -1 : dA > dB ? 1 : 0;\n            });\n            var limit = Math.max(0.2 * average, stdDev);\n            for (var i = 0; i < possibleCenters.length && possibleCenters.length > 3; i++) {\n                var pattern = possibleCenters[i];\n                if (Math.abs(pattern.getEstimatedModuleSize() - average) > limit) {\n                    possibleCenters.splice(i, 1);\n                    i--;\n                }\n            }\n        }\n        if (possibleCenters.length > 3) {\n            // Throw away all but those first size candidate points we found.\n            var totalModuleSize = 0.0;\n            try {\n                for (var possibleCenters_1 = __values(possibleCenters), possibleCenters_1_1 = possibleCenters_1.next(); !possibleCenters_1_1.done; possibleCenters_1_1 = possibleCenters_1.next()) {\n                    var possibleCenter = possibleCenters_1_1.value;\n                    totalModuleSize += possibleCenter.getEstimatedModuleSize();\n                }\n            }\n            catch (e_5_1) { e_5 = { error: e_5_1 }; }\n            finally {\n                try {\n                    if (possibleCenters_1_1 && !possibleCenters_1_1.done && (_b = possibleCenters_1.return)) _b.call(possibleCenters_1);\n                }\n                finally { if (e_5) throw e_5.error; }\n            }\n            average = totalModuleSize / possibleCenters.length;\n            possibleCenters.sort(\n            /**\n             * <p>Orders by {@link FinderPattern#getCount()}, descending.</p>\n             */\n            // CenterComparator implements Comparator<FinderPattern>\n            function (center1, center2) {\n                if (center2.getCount() === center1.getCount()) {\n                    var dA = Math.abs(center2.getEstimatedModuleSize() - average);\n                    var dB = Math.abs(center1.getEstimatedModuleSize() - average);\n                    return dA < dB ? 1 : dA > dB ? -1 : 0;\n                }\n                else {\n                    return center2.getCount() - center1.getCount();\n                }\n            });\n            possibleCenters.splice(3); // this is not realy necessary as we only return first 3 anyway\n        }\n        return [\n            possibleCenters[0],\n            possibleCenters[1],\n            possibleCenters[2]\n        ];\n    };\n    FinderPatternFinder.CENTER_QUORUM = 2;\n    FinderPatternFinder.MIN_SKIP = 3; // 1 pixel/module times 3 modules/center\n    FinderPatternFinder.MAX_MODULES = 57; // support up to version 10 for mobile clients\n    return FinderPatternFinder;\n}());\nexport default FinderPatternFinder;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport MathUtils from '../../common/detector/MathUtils';\nimport DetectorResult from '../../common/DetectorResult';\n// import GridSampler from '../../common/GridSampler';\nimport GridSamplerInstance from '../../common/GridSamplerInstance';\nimport PerspectiveTransform from '../../common/PerspectiveTransform';\nimport DecodeHintType from '../../DecodeHintType';\nimport NotFoundException from '../../NotFoundException';\nimport ResultPoint from '../../ResultPoint';\nimport Version from '../decoder/Version';\nimport AlignmentPatternFinder from './AlignmentPatternFinder';\nimport FinderPatternFinder from './FinderPatternFinder';\n/*import java.util.Map;*/\n/**\n * <p>Encapsulates logic that can detect a QR Code in an image, even if the QR Code\n * is rotated or skewed, or partially obscured.</p>\n *\n * @author Sean Owen\n */\nvar Detector = /** @class */ (function () {\n    function Detector(image) {\n        this.image = image;\n    }\n    Detector.prototype.getImage = function () {\n        return this.image;\n    };\n    Detector.prototype.getResultPointCallback = function () {\n        return this.resultPointCallback;\n    };\n    /**\n     * <p>Detects a QR Code in an image.</p>\n     *\n     * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n     * @throws NotFoundException if QR Code cannot be found\n     * @throws FormatException if a QR Code cannot be decoded\n     */\n    // public detect(): DetectorResult /*throws NotFoundException, FormatException*/ {\n    //   return detect(null)\n    // }\n    /**\n     * <p>Detects a QR Code in an image.</p>\n     *\n     * @param hints optional hints to detector\n     * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n     * @throws NotFoundException if QR Code cannot be found\n     * @throws FormatException if a QR Code cannot be decoded\n     */\n    Detector.prototype.detect = function (hints) {\n        this.resultPointCallback = (hints === null || hints === undefined) ? null :\n            /*(ResultPointCallback) */ hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);\n        var finder = new FinderPatternFinder(this.image, this.resultPointCallback);\n        var info = finder.find(hints);\n        return this.processFinderPatternInfo(info);\n    };\n    Detector.prototype.processFinderPatternInfo = function (info) {\n        var topLeft = info.getTopLeft();\n        var topRight = info.getTopRight();\n        var bottomLeft = info.getBottomLeft();\n        var moduleSize = this.calculateModuleSize(topLeft, topRight, bottomLeft);\n        if (moduleSize < 1.0) {\n            throw new NotFoundException('No pattern found in proccess finder.');\n        }\n        var dimension = Detector.computeDimension(topLeft, topRight, bottomLeft, moduleSize);\n        var provisionalVersion = Version.getProvisionalVersionForDimension(dimension);\n        var modulesBetweenFPCenters = provisionalVersion.getDimensionForVersion() - 7;\n        var alignmentPattern = null;\n        // Anything above version 1 has an alignment pattern\n        if (provisionalVersion.getAlignmentPatternCenters().length > 0) {\n            // Guess where a \"bottom right\" finder pattern would have been\n            var bottomRightX = topRight.getX() - topLeft.getX() + bottomLeft.getX();\n            var bottomRightY = topRight.getY() - topLeft.getY() + bottomLeft.getY();\n            // Estimate that alignment pattern is closer by 3 modules\n            // from \"bottom right\" to known top left location\n            var correctionToTopLeft = 1.0 - 3.0 / modulesBetweenFPCenters;\n            var estAlignmentX = /*(int) */ Math.floor(topLeft.getX() + correctionToTopLeft * (bottomRightX - topLeft.getX()));\n            var estAlignmentY = /*(int) */ Math.floor(topLeft.getY() + correctionToTopLeft * (bottomRightY - topLeft.getY()));\n            // Kind of arbitrary -- expand search radius before giving up\n            for (var i = 4; i <= 16; i <<= 1) {\n                try {\n                    alignmentPattern = this.findAlignmentInRegion(moduleSize, estAlignmentX, estAlignmentY, i);\n                    break;\n                }\n                catch (re /*NotFoundException*/) {\n                    if (!(re instanceof NotFoundException)) {\n                        throw re;\n                    }\n                    // try next round\n                }\n            }\n            // If we didn't find alignment pattern... well try anyway without it\n        }\n        var transform = Detector.createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension);\n        var bits = Detector.sampleGrid(this.image, transform, dimension);\n        var points;\n        if (alignmentPattern === null) {\n            points = [bottomLeft, topLeft, topRight];\n        }\n        else {\n            points = [bottomLeft, topLeft, topRight, alignmentPattern];\n        }\n        return new DetectorResult(bits, points);\n    };\n    Detector.createTransform = function (topLeft, topRight, bottomLeft, alignmentPattern, dimension /*int*/) {\n        var dimMinusThree = dimension - 3.5;\n        var bottomRightX; /*float*/\n        var bottomRightY; /*float*/\n        var sourceBottomRightX; /*float*/\n        var sourceBottomRightY; /*float*/\n        if (alignmentPattern !== null) {\n            bottomRightX = alignmentPattern.getX();\n            bottomRightY = alignmentPattern.getY();\n            sourceBottomRightX = dimMinusThree - 3.0;\n            sourceBottomRightY = sourceBottomRightX;\n        }\n        else {\n            // Don't have an alignment pattern, just make up the bottom-right point\n            bottomRightX = (topRight.getX() - topLeft.getX()) + bottomLeft.getX();\n            bottomRightY = (topRight.getY() - topLeft.getY()) + bottomLeft.getY();\n            sourceBottomRightX = dimMinusThree;\n            sourceBottomRightY = dimMinusThree;\n        }\n        return PerspectiveTransform.quadrilateralToQuadrilateral(3.5, 3.5, dimMinusThree, 3.5, sourceBottomRightX, sourceBottomRightY, 3.5, dimMinusThree, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRightX, bottomRightY, bottomLeft.getX(), bottomLeft.getY());\n    };\n    Detector.sampleGrid = function (image, transform, dimension /*int*/) {\n        var sampler = GridSamplerInstance.getInstance();\n        return sampler.sampleGridWithTransform(image, dimension, dimension, transform);\n    };\n    /**\n     * <p>Computes the dimension (number of modules on a size) of the QR Code based on the position\n     * of the finder patterns and estimated module size.</p>\n     */\n    Detector.computeDimension = function (topLeft, topRight, bottomLeft, moduleSize /*float*/) {\n        var tltrCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, topRight) / moduleSize);\n        var tlblCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, bottomLeft) / moduleSize);\n        var dimension = Math.floor((tltrCentersDimension + tlblCentersDimension) / 2) + 7;\n        switch (dimension & 0x03) { // mod 4\n            case 0:\n                dimension++;\n                break;\n            // 1? do nothing\n            case 2:\n                dimension--;\n                break;\n            case 3:\n                throw new NotFoundException('Dimensions could be not found.');\n        }\n        return dimension;\n    };\n    /**\n     * <p>Computes an average estimated module size based on estimated derived from the positions\n     * of the three finder patterns.</p>\n     *\n     * @param topLeft detected top-left finder pattern center\n     * @param topRight detected top-right finder pattern center\n     * @param bottomLeft detected bottom-left finder pattern center\n     * @return estimated module size\n     */\n    Detector.prototype.calculateModuleSize = function (topLeft, topRight, bottomLeft) {\n        // Take the average\n        return (this.calculateModuleSizeOneWay(topLeft, topRight) +\n            this.calculateModuleSizeOneWay(topLeft, bottomLeft)) / 2.0;\n    };\n    /**\n     * <p>Estimates module size based on two finder patterns -- it uses\n     * {@link #sizeOfBlackWhiteBlackRunBothWays(int, int, int, int)} to figure the\n     * width of each, measuring along the axis between their centers.</p>\n     */\n    Detector.prototype.calculateModuleSizeOneWay = function (pattern, otherPattern) {\n        var moduleSizeEst1 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(pattern.getX()), \n        /*(int) */ Math.floor(pattern.getY()), \n        /*(int) */ Math.floor(otherPattern.getX()), \n        /*(int) */ Math.floor(otherPattern.getY()));\n        var moduleSizeEst2 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(otherPattern.getX()), \n        /*(int) */ Math.floor(otherPattern.getY()), \n        /*(int) */ Math.floor(pattern.getX()), \n        /*(int) */ Math.floor(pattern.getY()));\n        if (isNaN(moduleSizeEst1)) {\n            return moduleSizeEst2 / 7.0;\n        }\n        if (isNaN(moduleSizeEst2)) {\n            return moduleSizeEst1 / 7.0;\n        }\n        // Average them, and divide by 7 since we've counted the width of 3 black modules,\n        // and 1 white and 1 black module on either side. Ergo, divide sum by 14.\n        return (moduleSizeEst1 + moduleSizeEst2) / 14.0;\n    };\n    /**\n     * See {@link #sizeOfBlackWhiteBlackRun(int, int, int, int)}; computes the total width of\n     * a finder pattern by looking for a black-white-black run from the center in the direction\n     * of another point (another finder pattern center), and in the opposite direction too.\n     */\n    Detector.prototype.sizeOfBlackWhiteBlackRunBothWays = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n        var result = this.sizeOfBlackWhiteBlackRun(fromX, fromY, toX, toY);\n        // Now count other way -- don't run off image though of course\n        var scale = 1.0;\n        var otherToX = fromX - (toX - fromX);\n        if (otherToX < 0) {\n            scale = fromX / /*(float) */ (fromX - otherToX);\n            otherToX = 0;\n        }\n        else if (otherToX >= this.image.getWidth()) {\n            scale = (this.image.getWidth() - 1 - fromX) / /*(float) */ (otherToX - fromX);\n            otherToX = this.image.getWidth() - 1;\n        }\n        var otherToY = /*(int) */ Math.floor(fromY - (toY - fromY) * scale);\n        scale = 1.0;\n        if (otherToY < 0) {\n            scale = fromY / /*(float) */ (fromY - otherToY);\n            otherToY = 0;\n        }\n        else if (otherToY >= this.image.getHeight()) {\n            scale = (this.image.getHeight() - 1 - fromY) / /*(float) */ (otherToY - fromY);\n            otherToY = this.image.getHeight() - 1;\n        }\n        otherToX = /*(int) */ Math.floor(fromX + (otherToX - fromX) * scale);\n        result += this.sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY);\n        // Middle pixel is double-counted this way; subtract 1\n        return result - 1.0;\n    };\n    /**\n     * <p>This method traces a line from a point in the image, in the direction towards another point.\n     * It begins in a black region, and keeps going until it finds white, then black, then white again.\n     * It reports the distance from the start to this point.</p>\n     *\n     * <p>This is used when figuring out how wide a finder pattern is, when the finder pattern\n     * may be skewed or rotated.</p>\n     */\n    Detector.prototype.sizeOfBlackWhiteBlackRun = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n        // Mild variant of Bresenham's algorithm\n        // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm\n        var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n        if (steep) {\n            var temp = fromX;\n            fromX = fromY;\n            fromY = temp;\n            temp = toX;\n            toX = toY;\n            toY = temp;\n        }\n        var dx = Math.abs(toX - fromX);\n        var dy = Math.abs(toY - fromY);\n        var error = -dx / 2;\n        var xstep = fromX < toX ? 1 : -1;\n        var ystep = fromY < toY ? 1 : -1;\n        // In black pixels, looking for white, first or second time.\n        var state = 0;\n        // Loop up until x == toX, but not beyond\n        var xLimit = toX + xstep;\n        for (var x = fromX, y = fromY; x !== xLimit; x += xstep) {\n            var realX = steep ? y : x;\n            var realY = steep ? x : y;\n            // Does current pixel mean we have moved white to black or vice versa?\n            // Scanning black in state 0,2 and white in state 1, so if we find the wrong\n            // color, advance to next state or end if we are in state 2 already\n            if ((state === 1) === this.image.get(realX, realY)) {\n                if (state === 2) {\n                    return MathUtils.distance(x, y, fromX, fromY);\n                }\n                state++;\n            }\n            error += dy;\n            if (error > 0) {\n                if (y === toY) {\n                    break;\n                }\n                y += ystep;\n                error -= dx;\n            }\n        }\n        // Found black-white-black; give the benefit of the doubt that the next pixel outside the image\n        // is \"white\" so this last point at (toX+xStep,toY) is the right ending. This is really a\n        // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.\n        if (state === 2) {\n            return MathUtils.distance(toX + xstep, toY, fromX, fromY);\n        }\n        // else we didn't find even black-white-black; no estimate is really possible\n        return NaN;\n    };\n    /**\n     * <p>Attempts to locate an alignment pattern in a limited region of the image, which is\n     * guessed to contain it. This method uses {@link AlignmentPattern}.</p>\n     *\n     * @param overallEstModuleSize estimated module size so far\n     * @param estAlignmentX x coordinate of center of area probably containing alignment pattern\n     * @param estAlignmentY y coordinate of above\n     * @param allowanceFactor number of pixels in all directions to search from the center\n     * @return {@link AlignmentPattern} if found, or null otherwise\n     * @throws NotFoundException if an unexpected error occurs during detection\n     */\n    Detector.prototype.findAlignmentInRegion = function (overallEstModuleSize /*float*/, estAlignmentX /*int*/, estAlignmentY /*int*/, allowanceFactor /*float*/) {\n        // Look for an alignment pattern (3 modules in size) around where it\n        // should be\n        var allowance = /*(int) */ Math.floor(allowanceFactor * overallEstModuleSize);\n        var alignmentAreaLeftX = Math.max(0, estAlignmentX - allowance);\n        var alignmentAreaRightX = Math.min(this.image.getWidth() - 1, estAlignmentX + allowance);\n        if (alignmentAreaRightX - alignmentAreaLeftX < overallEstModuleSize * 3) {\n            throw new NotFoundException('Alignment top exceeds estimated module size.');\n        }\n        var alignmentAreaTopY = Math.max(0, estAlignmentY - allowance);\n        var alignmentAreaBottomY = Math.min(this.image.getHeight() - 1, estAlignmentY + allowance);\n        if (alignmentAreaBottomY - alignmentAreaTopY < overallEstModuleSize * 3) {\n            throw new NotFoundException('Alignment bottom exceeds estimated module size.');\n        }\n        var alignmentFinder = new AlignmentPatternFinder(this.image, alignmentAreaLeftX, alignmentAreaTopY, alignmentAreaRightX - alignmentAreaLeftX, alignmentAreaBottomY - alignmentAreaTopY, overallEstModuleSize, this.resultPointCallback);\n        return alignmentFinder.find();\n    };\n    return Detector;\n}());\nexport default Detector;\n","/*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport BitMatrix from '../common/BitMatrix';\nimport DecodeHintType from '../DecodeHintType';\nimport NotFoundException from '../NotFoundException';\nimport Result from '../Result';\nimport ResultMetadataType from '../ResultMetadataType';\n// import DetectorResult from '../common/DetectorResult';\nimport Decoder from './decoder/Decoder';\nimport QRCodeDecoderMetaData from './decoder/QRCodeDecoderMetaData';\nimport Detector from './detector/Detector';\n/*import java.util.List;*/\n/*import java.util.Map;*/\n/**\n * This implementation can detect and decode QR Codes in an image.\n *\n * @author Sean Owen\n */\nvar QRCodeReader = /** @class */ (function () {\n    function QRCodeReader() {\n        this.decoder = new Decoder();\n    }\n    QRCodeReader.prototype.getDecoder = function () {\n        return this.decoder;\n    };\n    /**\n     * Locates and decodes a QR code in an image.\n     *\n     * @return a representing: string the content encoded by the QR code\n     * @throws NotFoundException if a QR code cannot be found\n     * @throws FormatException if a QR code cannot be decoded\n     * @throws ChecksumException if error correction fails\n     */\n    /*@Override*/\n    // public decode(image: BinaryBitmap): Result /*throws NotFoundException, ChecksumException, FormatException */ {\n    //   return this.decode(image, null)\n    // }\n    /*@Override*/\n    QRCodeReader.prototype.decode = function (image, hints) {\n        var decoderResult;\n        var points;\n        if (hints !== undefined && hints !== null && undefined !== hints.get(DecodeHintType.PURE_BARCODE)) {\n            var bits = QRCodeReader.extractPureBits(image.getBlackMatrix());\n            decoderResult = this.decoder.decodeBitMatrix(bits, hints);\n            points = QRCodeReader.NO_POINTS;\n        }\n        else {\n            var detectorResult = new Detector(image.getBlackMatrix()).detect(hints);\n            decoderResult = this.decoder.decodeBitMatrix(detectorResult.getBits(), hints);\n            points = detectorResult.getPoints();\n        }\n        // If the code was mirrored: swap the bottom-left and the top-right points.\n        if (decoderResult.getOther() instanceof QRCodeDecoderMetaData) {\n            decoderResult.getOther().applyMirroredCorrection(points);\n        }\n        var result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat.QR_CODE, undefined);\n        var byteSegments = decoderResult.getByteSegments();\n        if (byteSegments !== null) {\n            result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments);\n        }\n        var ecLevel = decoderResult.getECLevel();\n        if (ecLevel !== null) {\n            result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel);\n        }\n        if (decoderResult.hasStructuredAppend()) {\n            result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, decoderResult.getStructuredAppendSequenceNumber());\n            result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_PARITY, decoderResult.getStructuredAppendParity());\n        }\n        return result;\n    };\n    /*@Override*/\n    QRCodeReader.prototype.reset = function () {\n        // do nothing\n    };\n    /**\n     * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n     * which contains only an unrotated, unskewed, image of a code, with some white border\n     * around it. This is a specialized method that works exceptionally fast in this special\n     * case.\n     *\n     * @see com.google.zxing.datamatrix.DataMatrixReader#extractPureBits(BitMatrix)\n     */\n    QRCodeReader.extractPureBits = function (image) {\n        var leftTopBlack = image.getTopLeftOnBit();\n        var rightBottomBlack = image.getBottomRightOnBit();\n        if (leftTopBlack === null || rightBottomBlack === null) {\n            throw new NotFoundException();\n        }\n        var moduleSize = this.moduleSize(leftTopBlack, image);\n        var top = leftTopBlack[1];\n        var bottom = rightBottomBlack[1];\n        var left = leftTopBlack[0];\n        var right = rightBottomBlack[0];\n        // Sanity check!\n        if (left >= right || top >= bottom) {\n            throw new NotFoundException();\n        }\n        if (bottom - top !== right - left) {\n            // Special case, where bottom-right module wasn't black so we found something else in the last row\n            // Assume it's a square, so use height as the width\n            right = left + (bottom - top);\n            if (right >= image.getWidth()) {\n                // Abort if that would not make sense -- off image\n                throw new NotFoundException();\n            }\n        }\n        var matrixWidth = Math.round((right - left + 1) / moduleSize);\n        var matrixHeight = Math.round((bottom - top + 1) / moduleSize);\n        if (matrixWidth <= 0 || matrixHeight <= 0) {\n            throw new NotFoundException();\n        }\n        if (matrixHeight !== matrixWidth) {\n            // Only possibly decode square regions\n            throw new NotFoundException();\n        }\n        // Push in the \"border\" by half the module width so that we start\n        // sampling in the middle of the module. Just in case the image is a\n        // little off, this will help recover.\n        var nudge = /*(int) */ Math.floor(moduleSize / 2.0);\n        top += nudge;\n        left += nudge;\n        // But careful that this does not sample off the edge\n        // \"right\" is the farthest-right valid pixel location -- right+1 is not necessarily\n        // This is positive by how much the inner x loop below would be too large\n        var nudgedTooFarRight = left + /*(int) */ Math.floor((matrixWidth - 1) * moduleSize) - right;\n        if (nudgedTooFarRight > 0) {\n            if (nudgedTooFarRight > nudge) {\n                // Neither way fits; abort\n                throw new NotFoundException();\n            }\n            left -= nudgedTooFarRight;\n        }\n        // See logic above\n        var nudgedTooFarDown = top + /*(int) */ Math.floor((matrixHeight - 1) * moduleSize) - bottom;\n        if (nudgedTooFarDown > 0) {\n            if (nudgedTooFarDown > nudge) {\n                // Neither way fits; abort\n                throw new NotFoundException();\n            }\n            top -= nudgedTooFarDown;\n        }\n        // Now just read off the bits\n        var bits = new BitMatrix(matrixWidth, matrixHeight);\n        for (var y = 0; y < matrixHeight; y++) {\n            var iOffset = top + /*(int) */ Math.floor(y * moduleSize);\n            for (var x = 0; x < matrixWidth; x++) {\n                if (image.get(left + /*(int) */ Math.floor(x * moduleSize), iOffset)) {\n                    bits.set(x, y);\n                }\n            }\n        }\n        return bits;\n    };\n    QRCodeReader.moduleSize = function (leftTopBlack, image) {\n        var height = image.getHeight();\n        var width = image.getWidth();\n        var x = leftTopBlack[0];\n        var y = leftTopBlack[1];\n        var inBlack = true;\n        var transitions = 0;\n        while (x < width && y < height) {\n            if (inBlack !== image.get(x, y)) {\n                if (++transitions === 5) {\n                    break;\n                }\n                inBlack = !inBlack;\n            }\n            x++;\n            y++;\n        }\n        if (x === width || y === height) {\n            throw new NotFoundException();\n        }\n        return (x - leftTopBlack[0]) / 7.0;\n    };\n    QRCodeReader.NO_POINTS = new Array();\n    return QRCodeReader;\n}());\nexport default QRCodeReader;\n","/*\n* Copyright 2009 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.pdf417;\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import java.util.Arrays;\nimport Arrays from '../util/Arrays';\n// import java.util.Collection;\n// import com.google.zxing.common.detector.MathUtils;\nimport MathUtils from '../common/detector/MathUtils';\n/**\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author Guenther Grau\n */\nvar PDF417Common = /** @class */ (function () {\n    function PDF417Common() {\n    }\n    PDF417Common.prototype.PDF417Common = function () {\n    };\n    /**\n     * @param moduleBitCount values to sum\n     * @return sum of values\n     * @deprecated call {@link MathUtils#sum(int[])}\n     */\n    // @Deprecated\n    PDF417Common.getBitCountSum = function (moduleBitCount) {\n        return MathUtils.sum(moduleBitCount);\n    };\n    PDF417Common.toIntArray = function (list) {\n        var e_1, _a;\n        if (list == null || !list.length) {\n            return PDF417Common.EMPTY_INT_ARRAY;\n        }\n        var result = new Int32Array(list.length);\n        var i = 0;\n        try {\n            for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {\n                var integer = list_1_1.value;\n                result[i++] = integer;\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return result;\n    };\n    /**\n     * @param symbol encoded symbol to translate to a codeword\n     * @return the codeword corresponding to the symbol.\n     */\n    PDF417Common.getCodeword = function (symbol /*int*/) {\n        var i = Arrays.binarySearch(PDF417Common.SYMBOL_TABLE, symbol & 0x3FFFF);\n        if (i < 0) {\n            return -1;\n        }\n        return (PDF417Common.CODEWORD_TABLE[i] - 1) % PDF417Common.NUMBER_OF_CODEWORDS;\n    };\n    PDF417Common.NUMBER_OF_CODEWORDS = 929;\n    // Maximum Codewords (Data + Error).\n    PDF417Common.MAX_CODEWORDS_IN_BARCODE = PDF417Common.NUMBER_OF_CODEWORDS - 1;\n    PDF417Common.MIN_ROWS_IN_BARCODE = 3;\n    PDF417Common.MAX_ROWS_IN_BARCODE = 90;\n    // One left row indication column + max 30 data columns + one right row indicator column\n    // public static /*final*/ MAX_CODEWORDS_IN_ROW: /*int*/ number = 32;\n    PDF417Common.MODULES_IN_CODEWORD = 17;\n    PDF417Common.MODULES_IN_STOP_PATTERN = 18;\n    PDF417Common.BARS_IN_MODULE = 8;\n    PDF417Common.EMPTY_INT_ARRAY = new Int32Array([]);\n    /**\n     * The sorted table of all possible symbols. Extracted from the PDF417\n     * specification. The index of a symbol in this table corresponds to the\n     * index into the codeword table.\n     */\n    PDF417Common.SYMBOL_TABLE = Int32Array.from([\n        0x1025e, 0x1027a, 0x1029e, 0x102bc, 0x102f2, 0x102f4, 0x1032e, 0x1034e, 0x1035c, 0x10396, 0x103a6, 0x103ac,\n        0x10422, 0x10428, 0x10436, 0x10442, 0x10444, 0x10448, 0x10450, 0x1045e, 0x10466, 0x1046c, 0x1047a, 0x10482,\n        0x1049e, 0x104a0, 0x104bc, 0x104c6, 0x104d8, 0x104ee, 0x104f2, 0x104f4, 0x10504, 0x10508, 0x10510, 0x1051e,\n        0x10520, 0x1053c, 0x10540, 0x10578, 0x10586, 0x1058c, 0x10598, 0x105b0, 0x105be, 0x105ce, 0x105dc, 0x105e2,\n        0x105e4, 0x105e8, 0x105f6, 0x1062e, 0x1064e, 0x1065c, 0x1068e, 0x1069c, 0x106b8, 0x106de, 0x106fa, 0x10716,\n        0x10726, 0x1072c, 0x10746, 0x1074c, 0x10758, 0x1076e, 0x10792, 0x10794, 0x107a2, 0x107a4, 0x107a8, 0x107b6,\n        0x10822, 0x10828, 0x10842, 0x10848, 0x10850, 0x1085e, 0x10866, 0x1086c, 0x1087a, 0x10882, 0x10884, 0x10890,\n        0x1089e, 0x108a0, 0x108bc, 0x108c6, 0x108cc, 0x108d8, 0x108ee, 0x108f2, 0x108f4, 0x10902, 0x10908, 0x1091e,\n        0x10920, 0x1093c, 0x10940, 0x10978, 0x10986, 0x10998, 0x109b0, 0x109be, 0x109ce, 0x109dc, 0x109e2, 0x109e4,\n        0x109e8, 0x109f6, 0x10a08, 0x10a10, 0x10a1e, 0x10a20, 0x10a3c, 0x10a40, 0x10a78, 0x10af0, 0x10b06, 0x10b0c,\n        0x10b18, 0x10b30, 0x10b3e, 0x10b60, 0x10b7c, 0x10b8e, 0x10b9c, 0x10bb8, 0x10bc2, 0x10bc4, 0x10bc8, 0x10bd0,\n        0x10bde, 0x10be6, 0x10bec, 0x10c2e, 0x10c4e, 0x10c5c, 0x10c62, 0x10c64, 0x10c68, 0x10c76, 0x10c8e, 0x10c9c,\n        0x10cb8, 0x10cc2, 0x10cc4, 0x10cc8, 0x10cd0, 0x10cde, 0x10ce6, 0x10cec, 0x10cfa, 0x10d0e, 0x10d1c, 0x10d38,\n        0x10d70, 0x10d7e, 0x10d82, 0x10d84, 0x10d88, 0x10d90, 0x10d9e, 0x10da0, 0x10dbc, 0x10dc6, 0x10dcc, 0x10dd8,\n        0x10dee, 0x10df2, 0x10df4, 0x10e16, 0x10e26, 0x10e2c, 0x10e46, 0x10e58, 0x10e6e, 0x10e86, 0x10e8c, 0x10e98,\n        0x10eb0, 0x10ebe, 0x10ece, 0x10edc, 0x10f0a, 0x10f12, 0x10f14, 0x10f22, 0x10f28, 0x10f36, 0x10f42, 0x10f44,\n        0x10f48, 0x10f50, 0x10f5e, 0x10f66, 0x10f6c, 0x10fb2, 0x10fb4, 0x11022, 0x11028, 0x11042, 0x11048, 0x11050,\n        0x1105e, 0x1107a, 0x11082, 0x11084, 0x11090, 0x1109e, 0x110a0, 0x110bc, 0x110c6, 0x110cc, 0x110d8, 0x110ee,\n        0x110f2, 0x110f4, 0x11102, 0x1111e, 0x11120, 0x1113c, 0x11140, 0x11178, 0x11186, 0x11198, 0x111b0, 0x111be,\n        0x111ce, 0x111dc, 0x111e2, 0x111e4, 0x111e8, 0x111f6, 0x11208, 0x1121e, 0x11220, 0x11278, 0x112f0, 0x1130c,\n        0x11330, 0x1133e, 0x11360, 0x1137c, 0x1138e, 0x1139c, 0x113b8, 0x113c2, 0x113c8, 0x113d0, 0x113de, 0x113e6,\n        0x113ec, 0x11408, 0x11410, 0x1141e, 0x11420, 0x1143c, 0x11440, 0x11478, 0x114f0, 0x115e0, 0x1160c, 0x11618,\n        0x11630, 0x1163e, 0x11660, 0x1167c, 0x116c0, 0x116f8, 0x1171c, 0x11738, 0x11770, 0x1177e, 0x11782, 0x11784,\n        0x11788, 0x11790, 0x1179e, 0x117a0, 0x117bc, 0x117c6, 0x117cc, 0x117d8, 0x117ee, 0x1182e, 0x11834, 0x1184e,\n        0x1185c, 0x11862, 0x11864, 0x11868, 0x11876, 0x1188e, 0x1189c, 0x118b8, 0x118c2, 0x118c8, 0x118d0, 0x118de,\n        0x118e6, 0x118ec, 0x118fa, 0x1190e, 0x1191c, 0x11938, 0x11970, 0x1197e, 0x11982, 0x11984, 0x11990, 0x1199e,\n        0x119a0, 0x119bc, 0x119c6, 0x119cc, 0x119d8, 0x119ee, 0x119f2, 0x119f4, 0x11a0e, 0x11a1c, 0x11a38, 0x11a70,\n        0x11a7e, 0x11ae0, 0x11afc, 0x11b08, 0x11b10, 0x11b1e, 0x11b20, 0x11b3c, 0x11b40, 0x11b78, 0x11b8c, 0x11b98,\n        0x11bb0, 0x11bbe, 0x11bce, 0x11bdc, 0x11be2, 0x11be4, 0x11be8, 0x11bf6, 0x11c16, 0x11c26, 0x11c2c, 0x11c46,\n        0x11c4c, 0x11c58, 0x11c6e, 0x11c86, 0x11c98, 0x11cb0, 0x11cbe, 0x11cce, 0x11cdc, 0x11ce2, 0x11ce4, 0x11ce8,\n        0x11cf6, 0x11d06, 0x11d0c, 0x11d18, 0x11d30, 0x11d3e, 0x11d60, 0x11d7c, 0x11d8e, 0x11d9c, 0x11db8, 0x11dc4,\n        0x11dc8, 0x11dd0, 0x11dde, 0x11de6, 0x11dec, 0x11dfa, 0x11e0a, 0x11e12, 0x11e14, 0x11e22, 0x11e24, 0x11e28,\n        0x11e36, 0x11e42, 0x11e44, 0x11e50, 0x11e5e, 0x11e66, 0x11e6c, 0x11e82, 0x11e84, 0x11e88, 0x11e90, 0x11e9e,\n        0x11ea0, 0x11ebc, 0x11ec6, 0x11ecc, 0x11ed8, 0x11eee, 0x11f1a, 0x11f2e, 0x11f32, 0x11f34, 0x11f4e, 0x11f5c,\n        0x11f62, 0x11f64, 0x11f68, 0x11f76, 0x12048, 0x1205e, 0x12082, 0x12084, 0x12090, 0x1209e, 0x120a0, 0x120bc,\n        0x120d8, 0x120f2, 0x120f4, 0x12108, 0x1211e, 0x12120, 0x1213c, 0x12140, 0x12178, 0x12186, 0x12198, 0x121b0,\n        0x121be, 0x121e2, 0x121e4, 0x121e8, 0x121f6, 0x12204, 0x12210, 0x1221e, 0x12220, 0x12278, 0x122f0, 0x12306,\n        0x1230c, 0x12330, 0x1233e, 0x12360, 0x1237c, 0x1238e, 0x1239c, 0x123b8, 0x123c2, 0x123c8, 0x123d0, 0x123e6,\n        0x123ec, 0x1241e, 0x12420, 0x1243c, 0x124f0, 0x125e0, 0x12618, 0x1263e, 0x12660, 0x1267c, 0x126c0, 0x126f8,\n        0x12738, 0x12770, 0x1277e, 0x12782, 0x12784, 0x12790, 0x1279e, 0x127a0, 0x127bc, 0x127c6, 0x127cc, 0x127d8,\n        0x127ee, 0x12820, 0x1283c, 0x12840, 0x12878, 0x128f0, 0x129e0, 0x12bc0, 0x12c18, 0x12c30, 0x12c3e, 0x12c60,\n        0x12c7c, 0x12cc0, 0x12cf8, 0x12df0, 0x12e1c, 0x12e38, 0x12e70, 0x12e7e, 0x12ee0, 0x12efc, 0x12f04, 0x12f08,\n        0x12f10, 0x12f20, 0x12f3c, 0x12f40, 0x12f78, 0x12f86, 0x12f8c, 0x12f98, 0x12fb0, 0x12fbe, 0x12fce, 0x12fdc,\n        0x1302e, 0x1304e, 0x1305c, 0x13062, 0x13068, 0x1308e, 0x1309c, 0x130b8, 0x130c2, 0x130c8, 0x130d0, 0x130de,\n        0x130ec, 0x130fa, 0x1310e, 0x13138, 0x13170, 0x1317e, 0x13182, 0x13184, 0x13190, 0x1319e, 0x131a0, 0x131bc,\n        0x131c6, 0x131cc, 0x131d8, 0x131f2, 0x131f4, 0x1320e, 0x1321c, 0x13270, 0x1327e, 0x132e0, 0x132fc, 0x13308,\n        0x1331e, 0x13320, 0x1333c, 0x13340, 0x13378, 0x13386, 0x13398, 0x133b0, 0x133be, 0x133ce, 0x133dc, 0x133e2,\n        0x133e4, 0x133e8, 0x133f6, 0x1340e, 0x1341c, 0x13438, 0x13470, 0x1347e, 0x134e0, 0x134fc, 0x135c0, 0x135f8,\n        0x13608, 0x13610, 0x1361e, 0x13620, 0x1363c, 0x13640, 0x13678, 0x136f0, 0x1370c, 0x13718, 0x13730, 0x1373e,\n        0x13760, 0x1377c, 0x1379c, 0x137b8, 0x137c2, 0x137c4, 0x137c8, 0x137d0, 0x137de, 0x137e6, 0x137ec, 0x13816,\n        0x13826, 0x1382c, 0x13846, 0x1384c, 0x13858, 0x1386e, 0x13874, 0x13886, 0x13898, 0x138b0, 0x138be, 0x138ce,\n        0x138dc, 0x138e2, 0x138e4, 0x138e8, 0x13906, 0x1390c, 0x13930, 0x1393e, 0x13960, 0x1397c, 0x1398e, 0x1399c,\n        0x139b8, 0x139c8, 0x139d0, 0x139de, 0x139e6, 0x139ec, 0x139fa, 0x13a06, 0x13a0c, 0x13a18, 0x13a30, 0x13a3e,\n        0x13a60, 0x13a7c, 0x13ac0, 0x13af8, 0x13b0e, 0x13b1c, 0x13b38, 0x13b70, 0x13b7e, 0x13b88, 0x13b90, 0x13b9e,\n        0x13ba0, 0x13bbc, 0x13bcc, 0x13bd8, 0x13bee, 0x13bf2, 0x13bf4, 0x13c12, 0x13c14, 0x13c22, 0x13c24, 0x13c28,\n        0x13c36, 0x13c42, 0x13c48, 0x13c50, 0x13c5e, 0x13c66, 0x13c6c, 0x13c82, 0x13c84, 0x13c90, 0x13c9e, 0x13ca0,\n        0x13cbc, 0x13cc6, 0x13ccc, 0x13cd8, 0x13cee, 0x13d02, 0x13d04, 0x13d08, 0x13d10, 0x13d1e, 0x13d20, 0x13d3c,\n        0x13d40, 0x13d78, 0x13d86, 0x13d8c, 0x13d98, 0x13db0, 0x13dbe, 0x13dce, 0x13ddc, 0x13de4, 0x13de8, 0x13df6,\n        0x13e1a, 0x13e2e, 0x13e32, 0x13e34, 0x13e4e, 0x13e5c, 0x13e62, 0x13e64, 0x13e68, 0x13e76, 0x13e8e, 0x13e9c,\n        0x13eb8, 0x13ec2, 0x13ec4, 0x13ec8, 0x13ed0, 0x13ede, 0x13ee6, 0x13eec, 0x13f26, 0x13f2c, 0x13f3a, 0x13f46,\n        0x13f4c, 0x13f58, 0x13f6e, 0x13f72, 0x13f74, 0x14082, 0x1409e, 0x140a0, 0x140bc, 0x14104, 0x14108, 0x14110,\n        0x1411e, 0x14120, 0x1413c, 0x14140, 0x14178, 0x1418c, 0x14198, 0x141b0, 0x141be, 0x141e2, 0x141e4, 0x141e8,\n        0x14208, 0x14210, 0x1421e, 0x14220, 0x1423c, 0x14240, 0x14278, 0x142f0, 0x14306, 0x1430c, 0x14318, 0x14330,\n        0x1433e, 0x14360, 0x1437c, 0x1438e, 0x143c2, 0x143c4, 0x143c8, 0x143d0, 0x143e6, 0x143ec, 0x14408, 0x14410,\n        0x1441e, 0x14420, 0x1443c, 0x14440, 0x14478, 0x144f0, 0x145e0, 0x1460c, 0x14618, 0x14630, 0x1463e, 0x14660,\n        0x1467c, 0x146c0, 0x146f8, 0x1471c, 0x14738, 0x14770, 0x1477e, 0x14782, 0x14784, 0x14788, 0x14790, 0x147a0,\n        0x147bc, 0x147c6, 0x147cc, 0x147d8, 0x147ee, 0x14810, 0x14820, 0x1483c, 0x14840, 0x14878, 0x148f0, 0x149e0,\n        0x14bc0, 0x14c30, 0x14c3e, 0x14c60, 0x14c7c, 0x14cc0, 0x14cf8, 0x14df0, 0x14e38, 0x14e70, 0x14e7e, 0x14ee0,\n        0x14efc, 0x14f04, 0x14f08, 0x14f10, 0x14f1e, 0x14f20, 0x14f3c, 0x14f40, 0x14f78, 0x14f86, 0x14f8c, 0x14f98,\n        0x14fb0, 0x14fce, 0x14fdc, 0x15020, 0x15040, 0x15078, 0x150f0, 0x151e0, 0x153c0, 0x15860, 0x1587c, 0x158c0,\n        0x158f8, 0x159f0, 0x15be0, 0x15c70, 0x15c7e, 0x15ce0, 0x15cfc, 0x15dc0, 0x15df8, 0x15e08, 0x15e10, 0x15e20,\n        0x15e40, 0x15e78, 0x15ef0, 0x15f0c, 0x15f18, 0x15f30, 0x15f60, 0x15f7c, 0x15f8e, 0x15f9c, 0x15fb8, 0x1604e,\n        0x1605c, 0x1608e, 0x1609c, 0x160b8, 0x160c2, 0x160c4, 0x160c8, 0x160de, 0x1610e, 0x1611c, 0x16138, 0x16170,\n        0x1617e, 0x16184, 0x16188, 0x16190, 0x1619e, 0x161a0, 0x161bc, 0x161c6, 0x161cc, 0x161d8, 0x161f2, 0x161f4,\n        0x1620e, 0x1621c, 0x16238, 0x16270, 0x1627e, 0x162e0, 0x162fc, 0x16304, 0x16308, 0x16310, 0x1631e, 0x16320,\n        0x1633c, 0x16340, 0x16378, 0x16386, 0x1638c, 0x16398, 0x163b0, 0x163be, 0x163ce, 0x163dc, 0x163e2, 0x163e4,\n        0x163e8, 0x163f6, 0x1640e, 0x1641c, 0x16438, 0x16470, 0x1647e, 0x164e0, 0x164fc, 0x165c0, 0x165f8, 0x16610,\n        0x1661e, 0x16620, 0x1663c, 0x16640, 0x16678, 0x166f0, 0x16718, 0x16730, 0x1673e, 0x16760, 0x1677c, 0x1678e,\n        0x1679c, 0x167b8, 0x167c2, 0x167c4, 0x167c8, 0x167d0, 0x167de, 0x167e6, 0x167ec, 0x1681c, 0x16838, 0x16870,\n        0x168e0, 0x168fc, 0x169c0, 0x169f8, 0x16bf0, 0x16c10, 0x16c1e, 0x16c20, 0x16c3c, 0x16c40, 0x16c78, 0x16cf0,\n        0x16de0, 0x16e18, 0x16e30, 0x16e3e, 0x16e60, 0x16e7c, 0x16ec0, 0x16ef8, 0x16f1c, 0x16f38, 0x16f70, 0x16f7e,\n        0x16f84, 0x16f88, 0x16f90, 0x16f9e, 0x16fa0, 0x16fbc, 0x16fc6, 0x16fcc, 0x16fd8, 0x17026, 0x1702c, 0x17046,\n        0x1704c, 0x17058, 0x1706e, 0x17086, 0x1708c, 0x17098, 0x170b0, 0x170be, 0x170ce, 0x170dc, 0x170e8, 0x17106,\n        0x1710c, 0x17118, 0x17130, 0x1713e, 0x17160, 0x1717c, 0x1718e, 0x1719c, 0x171b8, 0x171c2, 0x171c4, 0x171c8,\n        0x171d0, 0x171de, 0x171e6, 0x171ec, 0x171fa, 0x17206, 0x1720c, 0x17218, 0x17230, 0x1723e, 0x17260, 0x1727c,\n        0x172c0, 0x172f8, 0x1730e, 0x1731c, 0x17338, 0x17370, 0x1737e, 0x17388, 0x17390, 0x1739e, 0x173a0, 0x173bc,\n        0x173cc, 0x173d8, 0x173ee, 0x173f2, 0x173f4, 0x1740c, 0x17418, 0x17430, 0x1743e, 0x17460, 0x1747c, 0x174c0,\n        0x174f8, 0x175f0, 0x1760e, 0x1761c, 0x17638, 0x17670, 0x1767e, 0x176e0, 0x176fc, 0x17708, 0x17710, 0x1771e,\n        0x17720, 0x1773c, 0x17740, 0x17778, 0x17798, 0x177b0, 0x177be, 0x177dc, 0x177e2, 0x177e4, 0x177e8, 0x17822,\n        0x17824, 0x17828, 0x17836, 0x17842, 0x17844, 0x17848, 0x17850, 0x1785e, 0x17866, 0x1786c, 0x17882, 0x17884,\n        0x17888, 0x17890, 0x1789e, 0x178a0, 0x178bc, 0x178c6, 0x178cc, 0x178d8, 0x178ee, 0x178f2, 0x178f4, 0x17902,\n        0x17904, 0x17908, 0x17910, 0x1791e, 0x17920, 0x1793c, 0x17940, 0x17978, 0x17986, 0x1798c, 0x17998, 0x179b0,\n        0x179be, 0x179ce, 0x179dc, 0x179e2, 0x179e4, 0x179e8, 0x179f6, 0x17a04, 0x17a08, 0x17a10, 0x17a1e, 0x17a20,\n        0x17a3c, 0x17a40, 0x17a78, 0x17af0, 0x17b06, 0x17b0c, 0x17b18, 0x17b30, 0x17b3e, 0x17b60, 0x17b7c, 0x17b8e,\n        0x17b9c, 0x17bb8, 0x17bc4, 0x17bc8, 0x17bd0, 0x17bde, 0x17be6, 0x17bec, 0x17c2e, 0x17c32, 0x17c34, 0x17c4e,\n        0x17c5c, 0x17c62, 0x17c64, 0x17c68, 0x17c76, 0x17c8e, 0x17c9c, 0x17cb8, 0x17cc2, 0x17cc4, 0x17cc8, 0x17cd0,\n        0x17cde, 0x17ce6, 0x17cec, 0x17d0e, 0x17d1c, 0x17d38, 0x17d70, 0x17d82, 0x17d84, 0x17d88, 0x17d90, 0x17d9e,\n        0x17da0, 0x17dbc, 0x17dc6, 0x17dcc, 0x17dd8, 0x17dee, 0x17e26, 0x17e2c, 0x17e3a, 0x17e46, 0x17e4c, 0x17e58,\n        0x17e6e, 0x17e72, 0x17e74, 0x17e86, 0x17e8c, 0x17e98, 0x17eb0, 0x17ece, 0x17edc, 0x17ee2, 0x17ee4, 0x17ee8,\n        0x17ef6, 0x1813a, 0x18172, 0x18174, 0x18216, 0x18226, 0x1823a, 0x1824c, 0x18258, 0x1826e, 0x18272, 0x18274,\n        0x18298, 0x182be, 0x182e2, 0x182e4, 0x182e8, 0x182f6, 0x1835e, 0x1837a, 0x183ae, 0x183d6, 0x18416, 0x18426,\n        0x1842c, 0x1843a, 0x18446, 0x18458, 0x1846e, 0x18472, 0x18474, 0x18486, 0x184b0, 0x184be, 0x184ce, 0x184dc,\n        0x184e2, 0x184e4, 0x184e8, 0x184f6, 0x18506, 0x1850c, 0x18518, 0x18530, 0x1853e, 0x18560, 0x1857c, 0x1858e,\n        0x1859c, 0x185b8, 0x185c2, 0x185c4, 0x185c8, 0x185d0, 0x185de, 0x185e6, 0x185ec, 0x185fa, 0x18612, 0x18614,\n        0x18622, 0x18628, 0x18636, 0x18642, 0x18650, 0x1865e, 0x1867a, 0x18682, 0x18684, 0x18688, 0x18690, 0x1869e,\n        0x186a0, 0x186bc, 0x186c6, 0x186cc, 0x186d8, 0x186ee, 0x186f2, 0x186f4, 0x1872e, 0x1874e, 0x1875c, 0x18796,\n        0x187a6, 0x187ac, 0x187d2, 0x187d4, 0x18826, 0x1882c, 0x1883a, 0x18846, 0x1884c, 0x18858, 0x1886e, 0x18872,\n        0x18874, 0x18886, 0x18898, 0x188b0, 0x188be, 0x188ce, 0x188dc, 0x188e2, 0x188e4, 0x188e8, 0x188f6, 0x1890c,\n        0x18930, 0x1893e, 0x18960, 0x1897c, 0x1898e, 0x189b8, 0x189c2, 0x189c8, 0x189d0, 0x189de, 0x189e6, 0x189ec,\n        0x189fa, 0x18a18, 0x18a30, 0x18a3e, 0x18a60, 0x18a7c, 0x18ac0, 0x18af8, 0x18b1c, 0x18b38, 0x18b70, 0x18b7e,\n        0x18b82, 0x18b84, 0x18b88, 0x18b90, 0x18b9e, 0x18ba0, 0x18bbc, 0x18bc6, 0x18bcc, 0x18bd8, 0x18bee, 0x18bf2,\n        0x18bf4, 0x18c22, 0x18c24, 0x18c28, 0x18c36, 0x18c42, 0x18c48, 0x18c50, 0x18c5e, 0x18c66, 0x18c7a, 0x18c82,\n        0x18c84, 0x18c90, 0x18c9e, 0x18ca0, 0x18cbc, 0x18ccc, 0x18cf2, 0x18cf4, 0x18d04, 0x18d08, 0x18d10, 0x18d1e,\n        0x18d20, 0x18d3c, 0x18d40, 0x18d78, 0x18d86, 0x18d98, 0x18dce, 0x18de2, 0x18de4, 0x18de8, 0x18e2e, 0x18e32,\n        0x18e34, 0x18e4e, 0x18e5c, 0x18e62, 0x18e64, 0x18e68, 0x18e8e, 0x18e9c, 0x18eb8, 0x18ec2, 0x18ec4, 0x18ec8,\n        0x18ed0, 0x18efa, 0x18f16, 0x18f26, 0x18f2c, 0x18f46, 0x18f4c, 0x18f58, 0x18f6e, 0x18f8a, 0x18f92, 0x18f94,\n        0x18fa2, 0x18fa4, 0x18fa8, 0x18fb6, 0x1902c, 0x1903a, 0x19046, 0x1904c, 0x19058, 0x19072, 0x19074, 0x19086,\n        0x19098, 0x190b0, 0x190be, 0x190ce, 0x190dc, 0x190e2, 0x190e8, 0x190f6, 0x19106, 0x1910c, 0x19130, 0x1913e,\n        0x19160, 0x1917c, 0x1918e, 0x1919c, 0x191b8, 0x191c2, 0x191c8, 0x191d0, 0x191de, 0x191e6, 0x191ec, 0x191fa,\n        0x19218, 0x1923e, 0x19260, 0x1927c, 0x192c0, 0x192f8, 0x19338, 0x19370, 0x1937e, 0x19382, 0x19384, 0x19390,\n        0x1939e, 0x193a0, 0x193bc, 0x193c6, 0x193cc, 0x193d8, 0x193ee, 0x193f2, 0x193f4, 0x19430, 0x1943e, 0x19460,\n        0x1947c, 0x194c0, 0x194f8, 0x195f0, 0x19638, 0x19670, 0x1967e, 0x196e0, 0x196fc, 0x19702, 0x19704, 0x19708,\n        0x19710, 0x19720, 0x1973c, 0x19740, 0x19778, 0x19786, 0x1978c, 0x19798, 0x197b0, 0x197be, 0x197ce, 0x197dc,\n        0x197e2, 0x197e4, 0x197e8, 0x19822, 0x19824, 0x19842, 0x19848, 0x19850, 0x1985e, 0x19866, 0x1987a, 0x19882,\n        0x19884, 0x19890, 0x1989e, 0x198a0, 0x198bc, 0x198cc, 0x198f2, 0x198f4, 0x19902, 0x19908, 0x1991e, 0x19920,\n        0x1993c, 0x19940, 0x19978, 0x19986, 0x19998, 0x199ce, 0x199e2, 0x199e4, 0x199e8, 0x19a08, 0x19a10, 0x19a1e,\n        0x19a20, 0x19a3c, 0x19a40, 0x19a78, 0x19af0, 0x19b18, 0x19b3e, 0x19b60, 0x19b9c, 0x19bc2, 0x19bc4, 0x19bc8,\n        0x19bd0, 0x19be6, 0x19c2e, 0x19c34, 0x19c4e, 0x19c5c, 0x19c62, 0x19c64, 0x19c68, 0x19c8e, 0x19c9c, 0x19cb8,\n        0x19cc2, 0x19cc8, 0x19cd0, 0x19ce6, 0x19cfa, 0x19d0e, 0x19d1c, 0x19d38, 0x19d70, 0x19d7e, 0x19d82, 0x19d84,\n        0x19d88, 0x19d90, 0x19da0, 0x19dcc, 0x19df2, 0x19df4, 0x19e16, 0x19e26, 0x19e2c, 0x19e46, 0x19e4c, 0x19e58,\n        0x19e74, 0x19e86, 0x19e8c, 0x19e98, 0x19eb0, 0x19ebe, 0x19ece, 0x19ee2, 0x19ee4, 0x19ee8, 0x19f0a, 0x19f12,\n        0x19f14, 0x19f22, 0x19f24, 0x19f28, 0x19f42, 0x19f44, 0x19f48, 0x19f50, 0x19f5e, 0x19f6c, 0x19f9a, 0x19fae,\n        0x19fb2, 0x19fb4, 0x1a046, 0x1a04c, 0x1a072, 0x1a074, 0x1a086, 0x1a08c, 0x1a098, 0x1a0b0, 0x1a0be, 0x1a0e2,\n        0x1a0e4, 0x1a0e8, 0x1a0f6, 0x1a106, 0x1a10c, 0x1a118, 0x1a130, 0x1a13e, 0x1a160, 0x1a17c, 0x1a18e, 0x1a19c,\n        0x1a1b8, 0x1a1c2, 0x1a1c4, 0x1a1c8, 0x1a1d0, 0x1a1de, 0x1a1e6, 0x1a1ec, 0x1a218, 0x1a230, 0x1a23e, 0x1a260,\n        0x1a27c, 0x1a2c0, 0x1a2f8, 0x1a31c, 0x1a338, 0x1a370, 0x1a37e, 0x1a382, 0x1a384, 0x1a388, 0x1a390, 0x1a39e,\n        0x1a3a0, 0x1a3bc, 0x1a3c6, 0x1a3cc, 0x1a3d8, 0x1a3ee, 0x1a3f2, 0x1a3f4, 0x1a418, 0x1a430, 0x1a43e, 0x1a460,\n        0x1a47c, 0x1a4c0, 0x1a4f8, 0x1a5f0, 0x1a61c, 0x1a638, 0x1a670, 0x1a67e, 0x1a6e0, 0x1a6fc, 0x1a702, 0x1a704,\n        0x1a708, 0x1a710, 0x1a71e, 0x1a720, 0x1a73c, 0x1a740, 0x1a778, 0x1a786, 0x1a78c, 0x1a798, 0x1a7b0, 0x1a7be,\n        0x1a7ce, 0x1a7dc, 0x1a7e2, 0x1a7e4, 0x1a7e8, 0x1a830, 0x1a860, 0x1a87c, 0x1a8c0, 0x1a8f8, 0x1a9f0, 0x1abe0,\n        0x1ac70, 0x1ac7e, 0x1ace0, 0x1acfc, 0x1adc0, 0x1adf8, 0x1ae04, 0x1ae08, 0x1ae10, 0x1ae20, 0x1ae3c, 0x1ae40,\n        0x1ae78, 0x1aef0, 0x1af06, 0x1af0c, 0x1af18, 0x1af30, 0x1af3e, 0x1af60, 0x1af7c, 0x1af8e, 0x1af9c, 0x1afb8,\n        0x1afc4, 0x1afc8, 0x1afd0, 0x1afde, 0x1b042, 0x1b05e, 0x1b07a, 0x1b082, 0x1b084, 0x1b088, 0x1b090, 0x1b09e,\n        0x1b0a0, 0x1b0bc, 0x1b0cc, 0x1b0f2, 0x1b0f4, 0x1b102, 0x1b104, 0x1b108, 0x1b110, 0x1b11e, 0x1b120, 0x1b13c,\n        0x1b140, 0x1b178, 0x1b186, 0x1b198, 0x1b1ce, 0x1b1e2, 0x1b1e4, 0x1b1e8, 0x1b204, 0x1b208, 0x1b210, 0x1b21e,\n        0x1b220, 0x1b23c, 0x1b240, 0x1b278, 0x1b2f0, 0x1b30c, 0x1b33e, 0x1b360, 0x1b39c, 0x1b3c2, 0x1b3c4, 0x1b3c8,\n        0x1b3d0, 0x1b3e6, 0x1b410, 0x1b41e, 0x1b420, 0x1b43c, 0x1b440, 0x1b478, 0x1b4f0, 0x1b5e0, 0x1b618, 0x1b660,\n        0x1b67c, 0x1b6c0, 0x1b738, 0x1b782, 0x1b784, 0x1b788, 0x1b790, 0x1b79e, 0x1b7a0, 0x1b7cc, 0x1b82e, 0x1b84e,\n        0x1b85c, 0x1b88e, 0x1b89c, 0x1b8b8, 0x1b8c2, 0x1b8c4, 0x1b8c8, 0x1b8d0, 0x1b8e6, 0x1b8fa, 0x1b90e, 0x1b91c,\n        0x1b938, 0x1b970, 0x1b97e, 0x1b982, 0x1b984, 0x1b988, 0x1b990, 0x1b99e, 0x1b9a0, 0x1b9cc, 0x1b9f2, 0x1b9f4,\n        0x1ba0e, 0x1ba1c, 0x1ba38, 0x1ba70, 0x1ba7e, 0x1bae0, 0x1bafc, 0x1bb08, 0x1bb10, 0x1bb20, 0x1bb3c, 0x1bb40,\n        0x1bb98, 0x1bbce, 0x1bbe2, 0x1bbe4, 0x1bbe8, 0x1bc16, 0x1bc26, 0x1bc2c, 0x1bc46, 0x1bc4c, 0x1bc58, 0x1bc72,\n        0x1bc74, 0x1bc86, 0x1bc8c, 0x1bc98, 0x1bcb0, 0x1bcbe, 0x1bcce, 0x1bce2, 0x1bce4, 0x1bce8, 0x1bd06, 0x1bd0c,\n        0x1bd18, 0x1bd30, 0x1bd3e, 0x1bd60, 0x1bd7c, 0x1bd9c, 0x1bdc2, 0x1bdc4, 0x1bdc8, 0x1bdd0, 0x1bde6, 0x1bdfa,\n        0x1be12, 0x1be14, 0x1be22, 0x1be24, 0x1be28, 0x1be42, 0x1be44, 0x1be48, 0x1be50, 0x1be5e, 0x1be66, 0x1be82,\n        0x1be84, 0x1be88, 0x1be90, 0x1be9e, 0x1bea0, 0x1bebc, 0x1becc, 0x1bef4, 0x1bf1a, 0x1bf2e, 0x1bf32, 0x1bf34,\n        0x1bf4e, 0x1bf5c, 0x1bf62, 0x1bf64, 0x1bf68, 0x1c09a, 0x1c0b2, 0x1c0b4, 0x1c11a, 0x1c132, 0x1c134, 0x1c162,\n        0x1c164, 0x1c168, 0x1c176, 0x1c1ba, 0x1c21a, 0x1c232, 0x1c234, 0x1c24e, 0x1c25c, 0x1c262, 0x1c264, 0x1c268,\n        0x1c276, 0x1c28e, 0x1c2c2, 0x1c2c4, 0x1c2c8, 0x1c2d0, 0x1c2de, 0x1c2e6, 0x1c2ec, 0x1c2fa, 0x1c316, 0x1c326,\n        0x1c33a, 0x1c346, 0x1c34c, 0x1c372, 0x1c374, 0x1c41a, 0x1c42e, 0x1c432, 0x1c434, 0x1c44e, 0x1c45c, 0x1c462,\n        0x1c464, 0x1c468, 0x1c476, 0x1c48e, 0x1c49c, 0x1c4b8, 0x1c4c2, 0x1c4c8, 0x1c4d0, 0x1c4de, 0x1c4e6, 0x1c4ec,\n        0x1c4fa, 0x1c51c, 0x1c538, 0x1c570, 0x1c57e, 0x1c582, 0x1c584, 0x1c588, 0x1c590, 0x1c59e, 0x1c5a0, 0x1c5bc,\n        0x1c5c6, 0x1c5cc, 0x1c5d8, 0x1c5ee, 0x1c5f2, 0x1c5f4, 0x1c616, 0x1c626, 0x1c62c, 0x1c63a, 0x1c646, 0x1c64c,\n        0x1c658, 0x1c66e, 0x1c672, 0x1c674, 0x1c686, 0x1c68c, 0x1c698, 0x1c6b0, 0x1c6be, 0x1c6ce, 0x1c6dc, 0x1c6e2,\n        0x1c6e4, 0x1c6e8, 0x1c712, 0x1c714, 0x1c722, 0x1c728, 0x1c736, 0x1c742, 0x1c744, 0x1c748, 0x1c750, 0x1c75e,\n        0x1c766, 0x1c76c, 0x1c77a, 0x1c7ae, 0x1c7d6, 0x1c7ea, 0x1c81a, 0x1c82e, 0x1c832, 0x1c834, 0x1c84e, 0x1c85c,\n        0x1c862, 0x1c864, 0x1c868, 0x1c876, 0x1c88e, 0x1c89c, 0x1c8b8, 0x1c8c2, 0x1c8c8, 0x1c8d0, 0x1c8de, 0x1c8e6,\n        0x1c8ec, 0x1c8fa, 0x1c90e, 0x1c938, 0x1c970, 0x1c97e, 0x1c982, 0x1c984, 0x1c990, 0x1c99e, 0x1c9a0, 0x1c9bc,\n        0x1c9c6, 0x1c9cc, 0x1c9d8, 0x1c9ee, 0x1c9f2, 0x1c9f4, 0x1ca38, 0x1ca70, 0x1ca7e, 0x1cae0, 0x1cafc, 0x1cb02,\n        0x1cb04, 0x1cb08, 0x1cb10, 0x1cb20, 0x1cb3c, 0x1cb40, 0x1cb78, 0x1cb86, 0x1cb8c, 0x1cb98, 0x1cbb0, 0x1cbbe,\n        0x1cbce, 0x1cbdc, 0x1cbe2, 0x1cbe4, 0x1cbe8, 0x1cbf6, 0x1cc16, 0x1cc26, 0x1cc2c, 0x1cc3a, 0x1cc46, 0x1cc58,\n        0x1cc72, 0x1cc74, 0x1cc86, 0x1ccb0, 0x1ccbe, 0x1ccce, 0x1cce2, 0x1cce4, 0x1cce8, 0x1cd06, 0x1cd0c, 0x1cd18,\n        0x1cd30, 0x1cd3e, 0x1cd60, 0x1cd7c, 0x1cd9c, 0x1cdc2, 0x1cdc4, 0x1cdc8, 0x1cdd0, 0x1cdde, 0x1cde6, 0x1cdfa,\n        0x1ce22, 0x1ce28, 0x1ce42, 0x1ce50, 0x1ce5e, 0x1ce66, 0x1ce7a, 0x1ce82, 0x1ce84, 0x1ce88, 0x1ce90, 0x1ce9e,\n        0x1cea0, 0x1cebc, 0x1cecc, 0x1cef2, 0x1cef4, 0x1cf2e, 0x1cf32, 0x1cf34, 0x1cf4e, 0x1cf5c, 0x1cf62, 0x1cf64,\n        0x1cf68, 0x1cf96, 0x1cfa6, 0x1cfac, 0x1cfca, 0x1cfd2, 0x1cfd4, 0x1d02e, 0x1d032, 0x1d034, 0x1d04e, 0x1d05c,\n        0x1d062, 0x1d064, 0x1d068, 0x1d076, 0x1d08e, 0x1d09c, 0x1d0b8, 0x1d0c2, 0x1d0c4, 0x1d0c8, 0x1d0d0, 0x1d0de,\n        0x1d0e6, 0x1d0ec, 0x1d0fa, 0x1d11c, 0x1d138, 0x1d170, 0x1d17e, 0x1d182, 0x1d184, 0x1d188, 0x1d190, 0x1d19e,\n        0x1d1a0, 0x1d1bc, 0x1d1c6, 0x1d1cc, 0x1d1d8, 0x1d1ee, 0x1d1f2, 0x1d1f4, 0x1d21c, 0x1d238, 0x1d270, 0x1d27e,\n        0x1d2e0, 0x1d2fc, 0x1d302, 0x1d304, 0x1d308, 0x1d310, 0x1d31e, 0x1d320, 0x1d33c, 0x1d340, 0x1d378, 0x1d386,\n        0x1d38c, 0x1d398, 0x1d3b0, 0x1d3be, 0x1d3ce, 0x1d3dc, 0x1d3e2, 0x1d3e4, 0x1d3e8, 0x1d3f6, 0x1d470, 0x1d47e,\n        0x1d4e0, 0x1d4fc, 0x1d5c0, 0x1d5f8, 0x1d604, 0x1d608, 0x1d610, 0x1d620, 0x1d640, 0x1d678, 0x1d6f0, 0x1d706,\n        0x1d70c, 0x1d718, 0x1d730, 0x1d73e, 0x1d760, 0x1d77c, 0x1d78e, 0x1d79c, 0x1d7b8, 0x1d7c2, 0x1d7c4, 0x1d7c8,\n        0x1d7d0, 0x1d7de, 0x1d7e6, 0x1d7ec, 0x1d826, 0x1d82c, 0x1d83a, 0x1d846, 0x1d84c, 0x1d858, 0x1d872, 0x1d874,\n        0x1d886, 0x1d88c, 0x1d898, 0x1d8b0, 0x1d8be, 0x1d8ce, 0x1d8e2, 0x1d8e4, 0x1d8e8, 0x1d8f6, 0x1d90c, 0x1d918,\n        0x1d930, 0x1d93e, 0x1d960, 0x1d97c, 0x1d99c, 0x1d9c2, 0x1d9c4, 0x1d9c8, 0x1d9d0, 0x1d9e6, 0x1d9fa, 0x1da0c,\n        0x1da18, 0x1da30, 0x1da3e, 0x1da60, 0x1da7c, 0x1dac0, 0x1daf8, 0x1db38, 0x1db82, 0x1db84, 0x1db88, 0x1db90,\n        0x1db9e, 0x1dba0, 0x1dbcc, 0x1dbf2, 0x1dbf4, 0x1dc22, 0x1dc42, 0x1dc44, 0x1dc48, 0x1dc50, 0x1dc5e, 0x1dc66,\n        0x1dc7a, 0x1dc82, 0x1dc84, 0x1dc88, 0x1dc90, 0x1dc9e, 0x1dca0, 0x1dcbc, 0x1dccc, 0x1dcf2, 0x1dcf4, 0x1dd04,\n        0x1dd08, 0x1dd10, 0x1dd1e, 0x1dd20, 0x1dd3c, 0x1dd40, 0x1dd78, 0x1dd86, 0x1dd98, 0x1ddce, 0x1dde2, 0x1dde4,\n        0x1dde8, 0x1de2e, 0x1de32, 0x1de34, 0x1de4e, 0x1de5c, 0x1de62, 0x1de64, 0x1de68, 0x1de8e, 0x1de9c, 0x1deb8,\n        0x1dec2, 0x1dec4, 0x1dec8, 0x1ded0, 0x1dee6, 0x1defa, 0x1df16, 0x1df26, 0x1df2c, 0x1df46, 0x1df4c, 0x1df58,\n        0x1df72, 0x1df74, 0x1df8a, 0x1df92, 0x1df94, 0x1dfa2, 0x1dfa4, 0x1dfa8, 0x1e08a, 0x1e092, 0x1e094, 0x1e0a2,\n        0x1e0a4, 0x1e0a8, 0x1e0b6, 0x1e0da, 0x1e10a, 0x1e112, 0x1e114, 0x1e122, 0x1e124, 0x1e128, 0x1e136, 0x1e142,\n        0x1e144, 0x1e148, 0x1e150, 0x1e166, 0x1e16c, 0x1e17a, 0x1e19a, 0x1e1b2, 0x1e1b4, 0x1e20a, 0x1e212, 0x1e214,\n        0x1e222, 0x1e224, 0x1e228, 0x1e236, 0x1e242, 0x1e248, 0x1e250, 0x1e25e, 0x1e266, 0x1e26c, 0x1e27a, 0x1e282,\n        0x1e284, 0x1e288, 0x1e290, 0x1e2a0, 0x1e2bc, 0x1e2c6, 0x1e2cc, 0x1e2d8, 0x1e2ee, 0x1e2f2, 0x1e2f4, 0x1e31a,\n        0x1e332, 0x1e334, 0x1e35c, 0x1e362, 0x1e364, 0x1e368, 0x1e3ba, 0x1e40a, 0x1e412, 0x1e414, 0x1e422, 0x1e428,\n        0x1e436, 0x1e442, 0x1e448, 0x1e450, 0x1e45e, 0x1e466, 0x1e46c, 0x1e47a, 0x1e482, 0x1e484, 0x1e490, 0x1e49e,\n        0x1e4a0, 0x1e4bc, 0x1e4c6, 0x1e4cc, 0x1e4d8, 0x1e4ee, 0x1e4f2, 0x1e4f4, 0x1e502, 0x1e504, 0x1e508, 0x1e510,\n        0x1e51e, 0x1e520, 0x1e53c, 0x1e540, 0x1e578, 0x1e586, 0x1e58c, 0x1e598, 0x1e5b0, 0x1e5be, 0x1e5ce, 0x1e5dc,\n        0x1e5e2, 0x1e5e4, 0x1e5e8, 0x1e5f6, 0x1e61a, 0x1e62e, 0x1e632, 0x1e634, 0x1e64e, 0x1e65c, 0x1e662, 0x1e668,\n        0x1e68e, 0x1e69c, 0x1e6b8, 0x1e6c2, 0x1e6c4, 0x1e6c8, 0x1e6d0, 0x1e6e6, 0x1e6fa, 0x1e716, 0x1e726, 0x1e72c,\n        0x1e73a, 0x1e746, 0x1e74c, 0x1e758, 0x1e772, 0x1e774, 0x1e792, 0x1e794, 0x1e7a2, 0x1e7a4, 0x1e7a8, 0x1e7b6,\n        0x1e812, 0x1e814, 0x1e822, 0x1e824, 0x1e828, 0x1e836, 0x1e842, 0x1e844, 0x1e848, 0x1e850, 0x1e85e, 0x1e866,\n        0x1e86c, 0x1e87a, 0x1e882, 0x1e884, 0x1e888, 0x1e890, 0x1e89e, 0x1e8a0, 0x1e8bc, 0x1e8c6, 0x1e8cc, 0x1e8d8,\n        0x1e8ee, 0x1e8f2, 0x1e8f4, 0x1e902, 0x1e904, 0x1e908, 0x1e910, 0x1e920, 0x1e93c, 0x1e940, 0x1e978, 0x1e986,\n        0x1e98c, 0x1e998, 0x1e9b0, 0x1e9be, 0x1e9ce, 0x1e9dc, 0x1e9e2, 0x1e9e4, 0x1e9e8, 0x1e9f6, 0x1ea04, 0x1ea08,\n        0x1ea10, 0x1ea20, 0x1ea40, 0x1ea78, 0x1eaf0, 0x1eb06, 0x1eb0c, 0x1eb18, 0x1eb30, 0x1eb3e, 0x1eb60, 0x1eb7c,\n        0x1eb8e, 0x1eb9c, 0x1ebb8, 0x1ebc2, 0x1ebc4, 0x1ebc8, 0x1ebd0, 0x1ebde, 0x1ebe6, 0x1ebec, 0x1ec1a, 0x1ec2e,\n        0x1ec32, 0x1ec34, 0x1ec4e, 0x1ec5c, 0x1ec62, 0x1ec64, 0x1ec68, 0x1ec8e, 0x1ec9c, 0x1ecb8, 0x1ecc2, 0x1ecc4,\n        0x1ecc8, 0x1ecd0, 0x1ece6, 0x1ecfa, 0x1ed0e, 0x1ed1c, 0x1ed38, 0x1ed70, 0x1ed7e, 0x1ed82, 0x1ed84, 0x1ed88,\n        0x1ed90, 0x1ed9e, 0x1eda0, 0x1edcc, 0x1edf2, 0x1edf4, 0x1ee16, 0x1ee26, 0x1ee2c, 0x1ee3a, 0x1ee46, 0x1ee4c,\n        0x1ee58, 0x1ee6e, 0x1ee72, 0x1ee74, 0x1ee86, 0x1ee8c, 0x1ee98, 0x1eeb0, 0x1eebe, 0x1eece, 0x1eedc, 0x1eee2,\n        0x1eee4, 0x1eee8, 0x1ef12, 0x1ef22, 0x1ef24, 0x1ef28, 0x1ef36, 0x1ef42, 0x1ef44, 0x1ef48, 0x1ef50, 0x1ef5e,\n        0x1ef66, 0x1ef6c, 0x1ef7a, 0x1efae, 0x1efb2, 0x1efb4, 0x1efd6, 0x1f096, 0x1f0a6, 0x1f0ac, 0x1f0ba, 0x1f0ca,\n        0x1f0d2, 0x1f0d4, 0x1f116, 0x1f126, 0x1f12c, 0x1f13a, 0x1f146, 0x1f14c, 0x1f158, 0x1f16e, 0x1f172, 0x1f174,\n        0x1f18a, 0x1f192, 0x1f194, 0x1f1a2, 0x1f1a4, 0x1f1a8, 0x1f1da, 0x1f216, 0x1f226, 0x1f22c, 0x1f23a, 0x1f246,\n        0x1f258, 0x1f26e, 0x1f272, 0x1f274, 0x1f286, 0x1f28c, 0x1f298, 0x1f2b0, 0x1f2be, 0x1f2ce, 0x1f2dc, 0x1f2e2,\n        0x1f2e4, 0x1f2e8, 0x1f2f6, 0x1f30a, 0x1f312, 0x1f314, 0x1f322, 0x1f328, 0x1f342, 0x1f344, 0x1f348, 0x1f350,\n        0x1f35e, 0x1f366, 0x1f37a, 0x1f39a, 0x1f3ae, 0x1f3b2, 0x1f3b4, 0x1f416, 0x1f426, 0x1f42c, 0x1f43a, 0x1f446,\n        0x1f44c, 0x1f458, 0x1f46e, 0x1f472, 0x1f474, 0x1f486, 0x1f48c, 0x1f498, 0x1f4b0, 0x1f4be, 0x1f4ce, 0x1f4dc,\n        0x1f4e2, 0x1f4e4, 0x1f4e8, 0x1f4f6, 0x1f506, 0x1f50c, 0x1f518, 0x1f530, 0x1f53e, 0x1f560, 0x1f57c, 0x1f58e,\n        0x1f59c, 0x1f5b8, 0x1f5c2, 0x1f5c4, 0x1f5c8, 0x1f5d0, 0x1f5de, 0x1f5e6, 0x1f5ec, 0x1f5fa, 0x1f60a, 0x1f612,\n        0x1f614, 0x1f622, 0x1f624, 0x1f628, 0x1f636, 0x1f642, 0x1f644, 0x1f648, 0x1f650, 0x1f65e, 0x1f666, 0x1f67a,\n        0x1f682, 0x1f684, 0x1f688, 0x1f690, 0x1f69e, 0x1f6a0, 0x1f6bc, 0x1f6cc, 0x1f6f2, 0x1f6f4, 0x1f71a, 0x1f72e,\n        0x1f732, 0x1f734, 0x1f74e, 0x1f75c, 0x1f762, 0x1f764, 0x1f768, 0x1f776, 0x1f796, 0x1f7a6, 0x1f7ac, 0x1f7ba,\n        0x1f7d2, 0x1f7d4, 0x1f89a, 0x1f8ae, 0x1f8b2, 0x1f8b4, 0x1f8d6, 0x1f8ea, 0x1f91a, 0x1f92e, 0x1f932, 0x1f934,\n        0x1f94e, 0x1f95c, 0x1f962, 0x1f964, 0x1f968, 0x1f976, 0x1f996, 0x1f9a6, 0x1f9ac, 0x1f9ba, 0x1f9ca, 0x1f9d2,\n        0x1f9d4, 0x1fa1a, 0x1fa2e, 0x1fa32, 0x1fa34, 0x1fa4e, 0x1fa5c, 0x1fa62, 0x1fa64, 0x1fa68, 0x1fa76, 0x1fa8e,\n        0x1fa9c, 0x1fab8, 0x1fac2, 0x1fac4, 0x1fac8, 0x1fad0, 0x1fade, 0x1fae6, 0x1faec, 0x1fb16, 0x1fb26, 0x1fb2c,\n        0x1fb3a, 0x1fb46, 0x1fb4c, 0x1fb58, 0x1fb6e, 0x1fb72, 0x1fb74, 0x1fb8a, 0x1fb92, 0x1fb94, 0x1fba2, 0x1fba4,\n        0x1fba8, 0x1fbb6, 0x1fbda\n    ]);\n    /**\n     * This table contains to codewords for all symbols.\n     */\n    PDF417Common.CODEWORD_TABLE = Int32Array.from([\n        2627, 1819, 2622, 2621, 1813, 1812, 2729, 2724, 2723, 2779, 2774, 2773, 902, 896, 908, 868, 865, 861, 859, 2511,\n        873, 871, 1780, 835, 2493, 825, 2491, 842, 837, 844, 1764, 1762, 811, 810, 809, 2483, 807, 2482, 806, 2480, 815,\n        814, 813, 812, 2484, 817, 816, 1745, 1744, 1742, 1746, 2655, 2637, 2635, 2626, 2625, 2623, 2628, 1820, 2752,\n        2739, 2737, 2728, 2727, 2725, 2730, 2785, 2783, 2778, 2777, 2775, 2780, 787, 781, 747, 739, 736, 2413, 754, 752,\n        1719, 692, 689, 681, 2371, 678, 2369, 700, 697, 694, 703, 1688, 1686, 642, 638, 2343, 631, 2341, 627, 2338, 651,\n        646, 643, 2345, 654, 652, 1652, 1650, 1647, 1654, 601, 599, 2322, 596, 2321, 594, 2319, 2317, 611, 610, 608, 606,\n        2324, 603, 2323, 615, 614, 612, 1617, 1616, 1614, 1612, 616, 1619, 1618, 2575, 2538, 2536, 905, 901, 898, 909,\n        2509, 2507, 2504, 870, 867, 864, 860, 2512, 875, 872, 1781, 2490, 2489, 2487, 2485, 1748, 836, 834, 832, 830,\n        2494, 827, 2492, 843, 841, 839, 845, 1765, 1763, 2701, 2676, 2674, 2653, 2648, 2656, 2634, 2633, 2631, 2629,\n        1821, 2638, 2636, 2770, 2763, 2761, 2750, 2745, 2753, 2736, 2735, 2733, 2731, 1848, 2740, 2738, 2786, 2784, 591,\n        588, 576, 569, 566, 2296, 1590, 537, 534, 526, 2276, 522, 2274, 545, 542, 539, 548, 1572, 1570, 481, 2245, 466,\n        2242, 462, 2239, 492, 485, 482, 2249, 496, 494, 1534, 1531, 1528, 1538, 413, 2196, 406, 2191, 2188, 425, 419,\n        2202, 415, 2199, 432, 430, 427, 1472, 1467, 1464, 433, 1476, 1474, 368, 367, 2160, 365, 2159, 362, 2157, 2155,\n        2152, 378, 377, 375, 2166, 372, 2165, 369, 2162, 383, 381, 379, 2168, 1419, 1418, 1416, 1414, 385, 1411, 384,\n        1423, 1422, 1420, 1424, 2461, 802, 2441, 2439, 790, 786, 783, 794, 2409, 2406, 2403, 750, 742, 738, 2414, 756,\n        753, 1720, 2367, 2365, 2362, 2359, 1663, 693, 691, 684, 2373, 680, 2370, 702, 699, 696, 704, 1690, 1687, 2337,\n        2336, 2334, 2332, 1624, 2329, 1622, 640, 637, 2344, 634, 2342, 630, 2340, 650, 648, 645, 2346, 655, 653, 1653,\n        1651, 1649, 1655, 2612, 2597, 2595, 2571, 2568, 2565, 2576, 2534, 2529, 2526, 1787, 2540, 2537, 907, 904, 900,\n        910, 2503, 2502, 2500, 2498, 1768, 2495, 1767, 2510, 2508, 2506, 869, 866, 863, 2513, 876, 874, 1782, 2720, 2713,\n        2711, 2697, 2694, 2691, 2702, 2672, 2670, 2664, 1828, 2678, 2675, 2647, 2646, 2644, 2642, 1823, 2639, 1822, 2654,\n        2652, 2650, 2657, 2771, 1855, 2765, 2762, 1850, 1849, 2751, 2749, 2747, 2754, 353, 2148, 344, 342, 336, 2142,\n        332, 2140, 345, 1375, 1373, 306, 2130, 299, 2128, 295, 2125, 319, 314, 311, 2132, 1354, 1352, 1349, 1356, 262,\n        257, 2101, 253, 2096, 2093, 274, 273, 267, 2107, 263, 2104, 280, 278, 275, 1316, 1311, 1308, 1320, 1318, 2052,\n        202, 2050, 2044, 2040, 219, 2063, 212, 2060, 208, 2055, 224, 221, 2066, 1260, 1258, 1252, 231, 1248, 229, 1266,\n        1264, 1261, 1268, 155, 1998, 153, 1996, 1994, 1991, 1988, 165, 164, 2007, 162, 2006, 159, 2003, 2000, 172, 171,\n        169, 2012, 166, 2010, 1186, 1184, 1182, 1179, 175, 1176, 173, 1192, 1191, 1189, 1187, 176, 1194, 1193, 2313,\n        2307, 2305, 592, 589, 2294, 2292, 2289, 578, 572, 568, 2297, 580, 1591, 2272, 2267, 2264, 1547, 538, 536, 529,\n        2278, 525, 2275, 547, 544, 541, 1574, 1571, 2237, 2235, 2229, 1493, 2225, 1489, 478, 2247, 470, 2244, 465, 2241,\n        493, 488, 484, 2250, 498, 495, 1536, 1533, 1530, 1539, 2187, 2186, 2184, 2182, 1432, 2179, 1430, 2176, 1427, 414,\n        412, 2197, 409, 2195, 405, 2193, 2190, 426, 424, 421, 2203, 418, 2201, 431, 429, 1473, 1471, 1469, 1466, 434,\n        1477, 1475, 2478, 2472, 2470, 2459, 2457, 2454, 2462, 803, 2437, 2432, 2429, 1726, 2443, 2440, 792, 789, 785,\n        2401, 2399, 2393, 1702, 2389, 1699, 2411, 2408, 2405, 745, 741, 2415, 758, 755, 1721, 2358, 2357, 2355, 2353,\n        1661, 2350, 1660, 2347, 1657, 2368, 2366, 2364, 2361, 1666, 690, 687, 2374, 683, 2372, 701, 698, 705, 1691, 1689,\n        2619, 2617, 2610, 2608, 2605, 2613, 2593, 2588, 2585, 1803, 2599, 2596, 2563, 2561, 2555, 1797, 2551, 1795, 2573,\n        2570, 2567, 2577, 2525, 2524, 2522, 2520, 1786, 2517, 1785, 2514, 1783, 2535, 2533, 2531, 2528, 1788, 2541, 2539,\n        906, 903, 911, 2721, 1844, 2715, 2712, 1838, 1836, 2699, 2696, 2693, 2703, 1827, 1826, 1824, 2673, 2671, 2669,\n        2666, 1829, 2679, 2677, 1858, 1857, 2772, 1854, 1853, 1851, 1856, 2766, 2764, 143, 1987, 139, 1986, 135, 133,\n        131, 1984, 128, 1983, 125, 1981, 138, 137, 136, 1985, 1133, 1132, 1130, 112, 110, 1974, 107, 1973, 104, 1971,\n        1969, 122, 121, 119, 117, 1977, 114, 1976, 124, 1115, 1114, 1112, 1110, 1117, 1116, 84, 83, 1953, 81, 1952, 78,\n        1950, 1948, 1945, 94, 93, 91, 1959, 88, 1958, 85, 1955, 99, 97, 95, 1961, 1086, 1085, 1083, 1081, 1078, 100,\n        1090, 1089, 1087, 1091, 49, 47, 1917, 44, 1915, 1913, 1910, 1907, 59, 1926, 56, 1925, 53, 1922, 1919, 66, 64,\n        1931, 61, 1929, 1042, 1040, 1038, 71, 1035, 70, 1032, 68, 1048, 1047, 1045, 1043, 1050, 1049, 12, 10, 1869, 1867,\n        1864, 1861, 21, 1880, 19, 1877, 1874, 1871, 28, 1888, 25, 1886, 22, 1883, 982, 980, 977, 974, 32, 30, 991, 989,\n        987, 984, 34, 995, 994, 992, 2151, 2150, 2147, 2146, 2144, 356, 355, 354, 2149, 2139, 2138, 2136, 2134, 1359,\n        343, 341, 338, 2143, 335, 2141, 348, 347, 346, 1376, 1374, 2124, 2123, 2121, 2119, 1326, 2116, 1324, 310, 308,\n        305, 2131, 302, 2129, 298, 2127, 320, 318, 316, 313, 2133, 322, 321, 1355, 1353, 1351, 1357, 2092, 2091, 2089,\n        2087, 1276, 2084, 1274, 2081, 1271, 259, 2102, 256, 2100, 252, 2098, 2095, 272, 269, 2108, 266, 2106, 281, 279,\n        277, 1317, 1315, 1313, 1310, 282, 1321, 1319, 2039, 2037, 2035, 2032, 1203, 2029, 1200, 1197, 207, 2053, 205,\n        2051, 201, 2049, 2046, 2043, 220, 218, 2064, 215, 2062, 211, 2059, 228, 226, 223, 2069, 1259, 1257, 1254, 232,\n        1251, 230, 1267, 1265, 1263, 2316, 2315, 2312, 2311, 2309, 2314, 2304, 2303, 2301, 2299, 1593, 2308, 2306, 590,\n        2288, 2287, 2285, 2283, 1578, 2280, 1577, 2295, 2293, 2291, 579, 577, 574, 571, 2298, 582, 581, 1592, 2263, 2262,\n        2260, 2258, 1545, 2255, 1544, 2252, 1541, 2273, 2271, 2269, 2266, 1550, 535, 532, 2279, 528, 2277, 546, 543, 549,\n        1575, 1573, 2224, 2222, 2220, 1486, 2217, 1485, 2214, 1482, 1479, 2238, 2236, 2234, 2231, 1496, 2228, 1492, 480,\n        477, 2248, 473, 2246, 469, 2243, 490, 487, 2251, 497, 1537, 1535, 1532, 2477, 2476, 2474, 2479, 2469, 2468, 2466,\n        2464, 1730, 2473, 2471, 2453, 2452, 2450, 2448, 1729, 2445, 1728, 2460, 2458, 2456, 2463, 805, 804, 2428, 2427,\n        2425, 2423, 1725, 2420, 1724, 2417, 1722, 2438, 2436, 2434, 2431, 1727, 2444, 2442, 793, 791, 788, 795, 2388,\n        2386, 2384, 1697, 2381, 1696, 2378, 1694, 1692, 2402, 2400, 2398, 2395, 1703, 2392, 1701, 2412, 2410, 2407, 751,\n        748, 744, 2416, 759, 757, 1807, 2620, 2618, 1806, 1805, 2611, 2609, 2607, 2614, 1802, 1801, 1799, 2594, 2592,\n        2590, 2587, 1804, 2600, 2598, 1794, 1793, 1791, 1789, 2564, 2562, 2560, 2557, 1798, 2554, 1796, 2574, 2572, 2569,\n        2578, 1847, 1846, 2722, 1843, 1842, 1840, 1845, 2716, 2714, 1835, 1834, 1832, 1830, 1839, 1837, 2700, 2698, 2695,\n        2704, 1817, 1811, 1810, 897, 862, 1777, 829, 826, 838, 1760, 1758, 808, 2481, 1741, 1740, 1738, 1743, 2624, 1818,\n        2726, 2776, 782, 740, 737, 1715, 686, 679, 695, 1682, 1680, 639, 628, 2339, 647, 644, 1645, 1643, 1640, 1648,\n        602, 600, 597, 595, 2320, 593, 2318, 609, 607, 604, 1611, 1610, 1608, 1606, 613, 1615, 1613, 2328, 926, 924, 892,\n        886, 899, 857, 850, 2505, 1778, 824, 823, 821, 819, 2488, 818, 2486, 833, 831, 828, 840, 1761, 1759, 2649, 2632,\n        2630, 2746, 2734, 2732, 2782, 2781, 570, 567, 1587, 531, 527, 523, 540, 1566, 1564, 476, 467, 463, 2240, 486,\n        483, 1524, 1521, 1518, 1529, 411, 403, 2192, 399, 2189, 423, 416, 1462, 1457, 1454, 428, 1468, 1465, 2210, 366,\n        363, 2158, 360, 2156, 357, 2153, 376, 373, 370, 2163, 1410, 1409, 1407, 1405, 382, 1402, 380, 1417, 1415, 1412,\n        1421, 2175, 2174, 777, 774, 771, 784, 732, 725, 722, 2404, 743, 1716, 676, 674, 668, 2363, 665, 2360, 685, 1684,\n        1681, 626, 624, 622, 2335, 620, 2333, 617, 2330, 641, 635, 649, 1646, 1644, 1642, 2566, 928, 925, 2530, 2527,\n        894, 891, 888, 2501, 2499, 2496, 858, 856, 854, 851, 1779, 2692, 2668, 2665, 2645, 2643, 2640, 2651, 2768, 2759,\n        2757, 2744, 2743, 2741, 2748, 352, 1382, 340, 337, 333, 1371, 1369, 307, 300, 296, 2126, 315, 312, 1347, 1342,\n        1350, 261, 258, 250, 2097, 246, 2094, 271, 268, 264, 1306, 1301, 1298, 276, 1312, 1309, 2115, 203, 2048, 195,\n        2045, 191, 2041, 213, 209, 2056, 1246, 1244, 1238, 225, 1234, 222, 1256, 1253, 1249, 1262, 2080, 2079, 154, 1997,\n        150, 1995, 147, 1992, 1989, 163, 160, 2004, 156, 2001, 1175, 1174, 1172, 1170, 1167, 170, 1164, 167, 1185, 1183,\n        1180, 1177, 174, 1190, 1188, 2025, 2024, 2022, 587, 586, 564, 559, 556, 2290, 573, 1588, 520, 518, 512, 2268,\n        508, 2265, 530, 1568, 1565, 461, 457, 2233, 450, 2230, 446, 2226, 479, 471, 489, 1526, 1523, 1520, 397, 395,\n        2185, 392, 2183, 389, 2180, 2177, 410, 2194, 402, 422, 1463, 1461, 1459, 1456, 1470, 2455, 799, 2433, 2430, 779,\n        776, 773, 2397, 2394, 2390, 734, 728, 724, 746, 1717, 2356, 2354, 2351, 2348, 1658, 677, 675, 673, 670, 667, 688,\n        1685, 1683, 2606, 2589, 2586, 2559, 2556, 2552, 927, 2523, 2521, 2518, 2515, 1784, 2532, 895, 893, 890, 2718,\n        2709, 2707, 2689, 2687, 2684, 2663, 2662, 2660, 2658, 1825, 2667, 2769, 1852, 2760, 2758, 142, 141, 1139, 1138,\n        134, 132, 129, 126, 1982, 1129, 1128, 1126, 1131, 113, 111, 108, 105, 1972, 101, 1970, 120, 118, 115, 1109, 1108,\n        1106, 1104, 123, 1113, 1111, 82, 79, 1951, 75, 1949, 72, 1946, 92, 89, 86, 1956, 1077, 1076, 1074, 1072, 98,\n        1069, 96, 1084, 1082, 1079, 1088, 1968, 1967, 48, 45, 1916, 42, 1914, 39, 1911, 1908, 60, 57, 54, 1923, 50, 1920,\n        1031, 1030, 1028, 1026, 67, 1023, 65, 1020, 62, 1041, 1039, 1036, 1033, 69, 1046, 1044, 1944, 1943, 1941, 11, 9,\n        1868, 7, 1865, 1862, 1859, 20, 1878, 16, 1875, 13, 1872, 970, 968, 966, 963, 29, 960, 26, 23, 983, 981, 978, 975,\n        33, 971, 31, 990, 988, 985, 1906, 1904, 1902, 993, 351, 2145, 1383, 331, 330, 328, 326, 2137, 323, 2135, 339,\n        1372, 1370, 294, 293, 291, 289, 2122, 286, 2120, 283, 2117, 309, 303, 317, 1348, 1346, 1344, 245, 244, 242, 2090,\n        239, 2088, 236, 2085, 2082, 260, 2099, 249, 270, 1307, 1305, 1303, 1300, 1314, 189, 2038, 186, 2036, 183, 2033,\n        2030, 2026, 206, 198, 2047, 194, 216, 1247, 1245, 1243, 1240, 227, 1237, 1255, 2310, 2302, 2300, 2286, 2284,\n        2281, 565, 563, 561, 558, 575, 1589, 2261, 2259, 2256, 2253, 1542, 521, 519, 517, 514, 2270, 511, 533, 1569,\n        1567, 2223, 2221, 2218, 2215, 1483, 2211, 1480, 459, 456, 453, 2232, 449, 474, 491, 1527, 1525, 1522, 2475, 2467,\n        2465, 2451, 2449, 2446, 801, 800, 2426, 2424, 2421, 2418, 1723, 2435, 780, 778, 775, 2387, 2385, 2382, 2379,\n        1695, 2375, 1693, 2396, 735, 733, 730, 727, 749, 1718, 2616, 2615, 2604, 2603, 2601, 2584, 2583, 2581, 2579,\n        1800, 2591, 2550, 2549, 2547, 2545, 1792, 2542, 1790, 2558, 929, 2719, 1841, 2710, 2708, 1833, 1831, 2690, 2688,\n        2686, 1815, 1809, 1808, 1774, 1756, 1754, 1737, 1736, 1734, 1739, 1816, 1711, 1676, 1674, 633, 629, 1638, 1636,\n        1633, 1641, 598, 1605, 1604, 1602, 1600, 605, 1609, 1607, 2327, 887, 853, 1775, 822, 820, 1757, 1755, 1584, 524,\n        1560, 1558, 468, 464, 1514, 1511, 1508, 1519, 408, 404, 400, 1452, 1447, 1444, 417, 1458, 1455, 2208, 364, 361,\n        358, 2154, 1401, 1400, 1398, 1396, 374, 1393, 371, 1408, 1406, 1403, 1413, 2173, 2172, 772, 726, 723, 1712, 672,\n        669, 666, 682, 1678, 1675, 625, 623, 621, 618, 2331, 636, 632, 1639, 1637, 1635, 920, 918, 884, 880, 889, 849,\n        848, 847, 846, 2497, 855, 852, 1776, 2641, 2742, 2787, 1380, 334, 1367, 1365, 301, 297, 1340, 1338, 1335, 1343,\n        255, 251, 247, 1296, 1291, 1288, 265, 1302, 1299, 2113, 204, 196, 192, 2042, 1232, 1230, 1224, 214, 1220, 210,\n        1242, 1239, 1235, 1250, 2077, 2075, 151, 148, 1993, 144, 1990, 1163, 1162, 1160, 1158, 1155, 161, 1152, 157,\n        1173, 1171, 1168, 1165, 168, 1181, 1178, 2021, 2020, 2018, 2023, 585, 560, 557, 1585, 516, 509, 1562, 1559, 458,\n        447, 2227, 472, 1516, 1513, 1510, 398, 396, 393, 390, 2181, 386, 2178, 407, 1453, 1451, 1449, 1446, 420, 1460,\n        2209, 769, 764, 720, 712, 2391, 729, 1713, 664, 663, 661, 659, 2352, 656, 2349, 671, 1679, 1677, 2553, 922, 919,\n        2519, 2516, 885, 883, 881, 2685, 2661, 2659, 2767, 2756, 2755, 140, 1137, 1136, 130, 127, 1125, 1124, 1122, 1127,\n        109, 106, 102, 1103, 1102, 1100, 1098, 116, 1107, 1105, 1980, 80, 76, 73, 1947, 1068, 1067, 1065, 1063, 90, 1060,\n        87, 1075, 1073, 1070, 1080, 1966, 1965, 46, 43, 40, 1912, 36, 1909, 1019, 1018, 1016, 1014, 58, 1011, 55, 1008,\n        51, 1029, 1027, 1024, 1021, 63, 1037, 1034, 1940, 1939, 1937, 1942, 8, 1866, 4, 1863, 1, 1860, 956, 954, 952,\n        949, 946, 17, 14, 969, 967, 964, 961, 27, 957, 24, 979, 976, 972, 1901, 1900, 1898, 1896, 986, 1905, 1903, 350,\n        349, 1381, 329, 327, 324, 1368, 1366, 292, 290, 287, 284, 2118, 304, 1341, 1339, 1337, 1345, 243, 240, 237, 2086,\n        233, 2083, 254, 1297, 1295, 1293, 1290, 1304, 2114, 190, 187, 184, 2034, 180, 2031, 177, 2027, 199, 1233, 1231,\n        1229, 1226, 217, 1223, 1241, 2078, 2076, 584, 555, 554, 552, 550, 2282, 562, 1586, 507, 506, 504, 502, 2257, 499,\n        2254, 515, 1563, 1561, 445, 443, 441, 2219, 438, 2216, 435, 2212, 460, 454, 475, 1517, 1515, 1512, 2447, 798,\n        797, 2422, 2419, 770, 768, 766, 2383, 2380, 2376, 721, 719, 717, 714, 731, 1714, 2602, 2582, 2580, 2548, 2546,\n        2543, 923, 921, 2717, 2706, 2705, 2683, 2682, 2680, 1771, 1752, 1750, 1733, 1732, 1731, 1735, 1814, 1707, 1670,\n        1668, 1631, 1629, 1626, 1634, 1599, 1598, 1596, 1594, 1603, 1601, 2326, 1772, 1753, 1751, 1581, 1554, 1552, 1504,\n        1501, 1498, 1509, 1442, 1437, 1434, 401, 1448, 1445, 2206, 1392, 1391, 1389, 1387, 1384, 359, 1399, 1397, 1394,\n        1404, 2171, 2170, 1708, 1672, 1669, 619, 1632, 1630, 1628, 1773, 1378, 1363, 1361, 1333, 1328, 1336, 1286, 1281,\n        1278, 248, 1292, 1289, 2111, 1218, 1216, 1210, 197, 1206, 193, 1228, 1225, 1221, 1236, 2073, 2071, 1151, 1150,\n        1148, 1146, 152, 1143, 149, 1140, 145, 1161, 1159, 1156, 1153, 158, 1169, 1166, 2017, 2016, 2014, 2019, 1582,\n        510, 1556, 1553, 452, 448, 1506, 1500, 394, 391, 387, 1443, 1441, 1439, 1436, 1450, 2207, 765, 716, 713, 1709,\n        662, 660, 657, 1673, 1671, 916, 914, 879, 878, 877, 882, 1135, 1134, 1121, 1120, 1118, 1123, 1097, 1096, 1094,\n        1092, 103, 1101, 1099, 1979, 1059, 1058, 1056, 1054, 77, 1051, 74, 1066, 1064, 1061, 1071, 1964, 1963, 1007,\n        1006, 1004, 1002, 999, 41, 996, 37, 1017, 1015, 1012, 1009, 52, 1025, 1022, 1936, 1935, 1933, 1938, 942, 940,\n        938, 935, 932, 5, 2, 955, 953, 950, 947, 18, 943, 15, 965, 962, 958, 1895, 1894, 1892, 1890, 973, 1899, 1897,\n        1379, 325, 1364, 1362, 288, 285, 1334, 1332, 1330, 241, 238, 234, 1287, 1285, 1283, 1280, 1294, 2112, 188, 185,\n        181, 178, 2028, 1219, 1217, 1215, 1212, 200, 1209, 1227, 2074, 2072, 583, 553, 551, 1583, 505, 503, 500, 513,\n        1557, 1555, 444, 442, 439, 436, 2213, 455, 451, 1507, 1505, 1502, 796, 763, 762, 760, 767, 711, 710, 708, 706,\n        2377, 718, 715, 1710, 2544, 917, 915, 2681, 1627, 1597, 1595, 2325, 1769, 1749, 1747, 1499, 1438, 1435, 2204,\n        1390, 1388, 1385, 1395, 2169, 2167, 1704, 1665, 1662, 1625, 1623, 1620, 1770, 1329, 1282, 1279, 2109, 1214, 1207,\n        1222, 2068, 2065, 1149, 1147, 1144, 1141, 146, 1157, 1154, 2013, 2011, 2008, 2015, 1579, 1549, 1546, 1495, 1487,\n        1433, 1431, 1428, 1425, 388, 1440, 2205, 1705, 658, 1667, 1664, 1119, 1095, 1093, 1978, 1057, 1055, 1052, 1062,\n        1962, 1960, 1005, 1003, 1000, 997, 38, 1013, 1010, 1932, 1930, 1927, 1934, 941, 939, 936, 933, 6, 930, 3, 951,\n        948, 944, 1889, 1887, 1884, 1881, 959, 1893, 1891, 35, 1377, 1360, 1358, 1327, 1325, 1322, 1331, 1277, 1275,\n        1272, 1269, 235, 1284, 2110, 1205, 1204, 1201, 1198, 182, 1195, 179, 1213, 2070, 2067, 1580, 501, 1551, 1548,\n        440, 437, 1497, 1494, 1490, 1503, 761, 709, 707, 1706, 913, 912, 2198, 1386, 2164, 2161, 1621, 1766, 2103, 1208,\n        2058, 2054, 1145, 1142, 2005, 2002, 1999, 2009, 1488, 1429, 1426, 2200, 1698, 1659, 1656, 1975, 1053, 1957, 1954,\n        1001, 998, 1924, 1921, 1918, 1928, 937, 934, 931, 1879, 1876, 1873, 1870, 945, 1885, 1882, 1323, 1273, 1270,\n        2105, 1202, 1199, 1196, 1211, 2061, 2057, 1576, 1543, 1540, 1484, 1481, 1478, 1491, 1700\n    ]);\n    return PDF417Common;\n}());\nexport default PDF417Common;\n","/*\n* Copyright 2007 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// import java.util.List;\n/**\n * @author Guenther Grau\n */\nvar PDF417DetectorResult = /** @class */ (function () {\n    function PDF417DetectorResult(bits, points) {\n        this.bits = bits;\n        this.points = points;\n    }\n    PDF417DetectorResult.prototype.getBits = function () {\n        return this.bits;\n    };\n    PDF417DetectorResult.prototype.getPoints = function () {\n        return this.points;\n    };\n    return PDF417DetectorResult;\n}());\nexport default PDF417DetectorResult;\n","/*\n* Copyright 2009 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import com.google.zxing.NotFoundException;\n// import com.google.zxing.ResultPoint;\nimport ResultPoint from '../../ResultPoint';\nimport System from '../../util/System';\nimport Arrays from '../../util/Arrays';\nimport PDF417DetectorResult from './PDF417DetectorResult';\n// import java.util.ArrayList;\n// import java.util.Arrays;\n// import java.util.List;\n// import java.util.Map;\n/**\n * <p>Encapsulates logic that can detect a PDF417 Code in an image, even if the\n * PDF417 Code is rotated or skewed, or partially obscured.</p>\n *\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Guenther Grau\n */\nvar Detector = /** @class */ (function () {\n    function Detector() {\n    }\n    /**\n     * <p>Detects a PDF417 Code in an image. Only checks 0 and 180 degree rotations.</p>\n     *\n     * @param image barcode image to decode\n     * @param hints optional hints to detector\n     * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will\n     * be found and returned\n     * @return {@link PDF417DetectorResult} encapsulating results of detecting a PDF417 code\n     * @throws NotFoundException if no PDF417 Code can be found\n     */\n    Detector.detectMultiple = function (image, hints, multiple) {\n        // TODO detection improvement, tryHarder could try several different luminance thresholds/blackpoints or even\n        // different binarizers\n        // boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);\n        var bitMatrix = image.getBlackMatrix();\n        var barcodeCoordinates = Detector.detect(multiple, bitMatrix);\n        if (!barcodeCoordinates.length) {\n            bitMatrix = bitMatrix.clone();\n            bitMatrix.rotate180();\n            barcodeCoordinates = Detector.detect(multiple, bitMatrix);\n        }\n        return new PDF417DetectorResult(bitMatrix, barcodeCoordinates);\n    };\n    /**\n     * Detects PDF417 codes in an image. Only checks 0 degree rotation\n     * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will\n     * be found and returned\n     * @param bitMatrix bit matrix to detect barcodes in\n     * @return List of ResultPoint arrays containing the coordinates of found barcodes\n     */\n    Detector.detect = function (multiple, bitMatrix) {\n        var e_1, _a;\n        var barcodeCoordinates = new Array();\n        var row = 0;\n        var column = 0;\n        var foundBarcodeInRow = false;\n        while (row < bitMatrix.getHeight()) {\n            var vertices = Detector.findVertices(bitMatrix, row, column);\n            if (vertices[0] == null && vertices[3] == null) {\n                if (!foundBarcodeInRow) {\n                    // we didn't find any barcode so that's the end of searching\n                    break;\n                }\n                // we didn't find a barcode starting at the given column and row. Try again from the first column and slightly\n                // below the lowest barcode we found so far.\n                foundBarcodeInRow = false;\n                column = 0;\n                try {\n                    for (var barcodeCoordinates_1 = (e_1 = void 0, __values(barcodeCoordinates)), barcodeCoordinates_1_1 = barcodeCoordinates_1.next(); !barcodeCoordinates_1_1.done; barcodeCoordinates_1_1 = barcodeCoordinates_1.next()) {\n                        var barcodeCoordinate = barcodeCoordinates_1_1.value;\n                        if (barcodeCoordinate[1] != null) {\n                            row = Math.trunc(Math.max(row, barcodeCoordinate[1].getY()));\n                        }\n                        if (barcodeCoordinate[3] != null) {\n                            row = Math.max(row, Math.trunc(barcodeCoordinate[3].getY()));\n                        }\n                    }\n                }\n                catch (e_1_1) { e_1 = { error: e_1_1 }; }\n                finally {\n                    try {\n                        if (barcodeCoordinates_1_1 && !barcodeCoordinates_1_1.done && (_a = barcodeCoordinates_1.return)) _a.call(barcodeCoordinates_1);\n                    }\n                    finally { if (e_1) throw e_1.error; }\n                }\n                row += Detector.ROW_STEP;\n                continue;\n            }\n            foundBarcodeInRow = true;\n            barcodeCoordinates.push(vertices);\n            if (!multiple) {\n                break;\n            }\n            // if we didn't find a right row indicator column, then continue the search for the next barcode after the\n            // start pattern of the barcode just found.\n            if (vertices[2] != null) {\n                column = Math.trunc(vertices[2].getX());\n                row = Math.trunc(vertices[2].getY());\n            }\n            else {\n                column = Math.trunc(vertices[4].getX());\n                row = Math.trunc(vertices[4].getY());\n            }\n        }\n        return barcodeCoordinates;\n    };\n    /**\n     * Locate the vertices and the codewords area of a black blob using the Start\n     * and Stop patterns as locators.\n     *\n     * @param matrix the scanned barcode image.\n     * @return an array containing the vertices:\n     *           vertices[0] x, y top left barcode\n     *           vertices[1] x, y bottom left barcode\n     *           vertices[2] x, y top right barcode\n     *           vertices[3] x, y bottom right barcode\n     *           vertices[4] x, y top left codeword area\n     *           vertices[5] x, y bottom left codeword area\n     *           vertices[6] x, y top right codeword area\n     *           vertices[7] x, y bottom right codeword area\n     */\n    Detector.findVertices = function (matrix, startRow, startColumn) {\n        var height = matrix.getHeight();\n        var width = matrix.getWidth();\n        // const result = new ResultPoint[8];\n        var result = new Array(8);\n        Detector.copyToResult(result, Detector.findRowsWithPattern(matrix, height, width, startRow, startColumn, Detector.START_PATTERN), Detector.INDEXES_START_PATTERN);\n        if (result[4] != null) {\n            startColumn = Math.trunc(result[4].getX());\n            startRow = Math.trunc(result[4].getY());\n        }\n        Detector.copyToResult(result, Detector.findRowsWithPattern(matrix, height, width, startRow, startColumn, Detector.STOP_PATTERN), Detector.INDEXES_STOP_PATTERN);\n        return result;\n    };\n    Detector.copyToResult = function (result, tmpResult, destinationIndexes) {\n        for (var i = 0; i < destinationIndexes.length; i++) {\n            result[destinationIndexes[i]] = tmpResult[i];\n        }\n    };\n    Detector.findRowsWithPattern = function (matrix, height, width, startRow, startColumn, pattern) {\n        // const result = new ResultPoint[4];\n        var result = new Array(4);\n        var found = false;\n        var counters = new Int32Array(pattern.length);\n        for (; startRow < height; startRow += Detector.ROW_STEP) {\n            var loc = Detector.findGuardPattern(matrix, startColumn, startRow, width, false, pattern, counters);\n            if (loc != null) {\n                while (startRow > 0) {\n                    var previousRowLoc = Detector.findGuardPattern(matrix, startColumn, --startRow, width, false, pattern, counters);\n                    if (previousRowLoc != null) {\n                        loc = previousRowLoc;\n                    }\n                    else {\n                        startRow++;\n                        break;\n                    }\n                }\n                result[0] = new ResultPoint(loc[0], startRow);\n                result[1] = new ResultPoint(loc[1], startRow);\n                found = true;\n                break;\n            }\n        }\n        var stopRow = startRow + 1;\n        // Last row of the current symbol that contains pattern\n        if (found) {\n            var skippedRowCount = 0;\n            var previousRowLoc = Int32Array.from([Math.trunc(result[0].getX()), Math.trunc(result[1].getX())]);\n            for (; stopRow < height; stopRow++) {\n                var loc = Detector.findGuardPattern(matrix, previousRowLoc[0], stopRow, width, false, pattern, counters);\n                // a found pattern is only considered to belong to the same barcode if the start and end positions\n                // don't differ too much. Pattern drift should be not bigger than two for consecutive rows. With\n                // a higher number of skipped rows drift could be larger. To keep it simple for now, we allow a slightly\n                // larger drift and don't check for skipped rows.\n                if (loc != null &&\n                    Math.abs(previousRowLoc[0] - loc[0]) < Detector.MAX_PATTERN_DRIFT &&\n                    Math.abs(previousRowLoc[1] - loc[1]) < Detector.MAX_PATTERN_DRIFT) {\n                    previousRowLoc = loc;\n                    skippedRowCount = 0;\n                }\n                else {\n                    if (skippedRowCount > Detector.SKIPPED_ROW_COUNT_MAX) {\n                        break;\n                    }\n                    else {\n                        skippedRowCount++;\n                    }\n                }\n            }\n            stopRow -= skippedRowCount + 1;\n            result[2] = new ResultPoint(previousRowLoc[0], stopRow);\n            result[3] = new ResultPoint(previousRowLoc[1], stopRow);\n        }\n        if (stopRow - startRow < Detector.BARCODE_MIN_HEIGHT) {\n            Arrays.fill(result, null);\n        }\n        return result;\n    };\n    /**\n     * @param matrix row of black/white values to search\n     * @param column x position to start search\n     * @param row y position to start search\n     * @param width the number of pixels to search on this row\n     * @param pattern pattern of counts of number of black and white pixels that are\n     *                 being searched for as a pattern\n     * @param counters array of counters, as long as pattern, to re-use\n     * @return start/end horizontal offset of guard pattern, as an array of two ints.\n     */\n    Detector.findGuardPattern = function (matrix, column, row, width, whiteFirst, pattern, counters) {\n        Arrays.fillWithin(counters, 0, counters.length, 0);\n        var patternStart = column;\n        var pixelDrift = 0;\n        // if there are black pixels left of the current pixel shift to the left, but only for MAX_PIXEL_DRIFT pixels\n        while (matrix.get(patternStart, row) && patternStart > 0 && pixelDrift++ < Detector.MAX_PIXEL_DRIFT) {\n            patternStart--;\n        }\n        var x = patternStart;\n        var counterPosition = 0;\n        var patternLength = pattern.length;\n        for (var isWhite = whiteFirst; x < width; x++) {\n            var pixel = matrix.get(x, row);\n            if (pixel !== isWhite) {\n                counters[counterPosition]++;\n            }\n            else {\n                if (counterPosition === patternLength - 1) {\n                    if (Detector.patternMatchVariance(counters, pattern, Detector.MAX_INDIVIDUAL_VARIANCE) < Detector.MAX_AVG_VARIANCE) {\n                        return new Int32Array([patternStart, x]);\n                    }\n                    patternStart += counters[0] + counters[1];\n                    System.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n                    counters[counterPosition - 1] = 0;\n                    counters[counterPosition] = 0;\n                    counterPosition--;\n                }\n                else {\n                    counterPosition++;\n                }\n                counters[counterPosition] = 1;\n                isWhite = !isWhite;\n            }\n        }\n        if (counterPosition === patternLength - 1 &&\n            Detector.patternMatchVariance(counters, pattern, Detector.MAX_INDIVIDUAL_VARIANCE) < Detector.MAX_AVG_VARIANCE) {\n            return new Int32Array([patternStart, x - 1]);\n        }\n        return null;\n    };\n    /**\n     * Determines how closely a set of observed counts of runs of black/white\n     * values matches a given target pattern. This is reported as the ratio of\n     * the total variance from the expected pattern proportions across all\n     * pattern elements, to the length of the pattern.\n     *\n     * @param counters observed counters\n     * @param pattern expected pattern\n     * @param maxIndividualVariance The most any counter can differ before we give up\n     * @return ratio of total variance between counters and pattern compared to total pattern size\n     */\n    Detector.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\n        var numCounters = counters.length;\n        var total = 0;\n        var patternLength = 0;\n        for (var i = 0; i < numCounters; i++) {\n            total += counters[i];\n            patternLength += pattern[i];\n        }\n        if (total < patternLength) {\n            // If we don't even have one pixel per unit of bar width, assume this\n            // is too small to reliably match, so fail:\n            return /*Float.POSITIVE_INFINITY*/ Infinity;\n        }\n        // We're going to fake floating-point math in integers. We just need to use more bits.\n        // Scale up patternLength so that intermediate values below like scaledCounter will have\n        // more \"significant digits\".\n        var unitBarWidth = total / patternLength;\n        maxIndividualVariance *= unitBarWidth;\n        var totalVariance = 0.0;\n        for (var x = 0; x < numCounters; x++) {\n            var counter = counters[x];\n            var scaledPattern = pattern[x] * unitBarWidth;\n            var variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n            if (variance > maxIndividualVariance) {\n                return /*Float.POSITIVE_INFINITY*/ Infinity;\n            }\n            totalVariance += variance;\n        }\n        return totalVariance / total;\n    };\n    Detector.INDEXES_START_PATTERN = Int32Array.from([0, 4, 1, 5]);\n    Detector.INDEXES_STOP_PATTERN = Int32Array.from([6, 2, 7, 3]);\n    Detector.MAX_AVG_VARIANCE = 0.42;\n    Detector.MAX_INDIVIDUAL_VARIANCE = 0.8;\n    // B S B S B S B S Bar/Space pattern\n    // 11111111 0 1 0 1 0 1 000\n    Detector.START_PATTERN = Int32Array.from([8, 1, 1, 1, 1, 1, 1, 3]);\n    // 1111111 0 1 000 1 0 1 00 1\n    Detector.STOP_PATTERN = Int32Array.from([7, 1, 1, 3, 1, 1, 1, 2, 1]);\n    Detector.MAX_PIXEL_DRIFT = 3;\n    Detector.MAX_PATTERN_DRIFT = 5;\n    // if we set the value too low, then we don't detect the correct height of the bar if the start patterns are damaged.\n    // if we set the value too high, then we might detect the start pattern from a neighbor barcode.\n    Detector.SKIPPED_ROW_COUNT_MAX = 25;\n    // A PDF471 barcode should have at least 3 rows, with each row being >= 3 times the module width. Therefore it should be at least\n    // 9 pixels tall. To be conservative, we use about half the size to ensure we don't miss it.\n    Detector.ROW_STEP = 5;\n    Detector.BARCODE_MIN_HEIGHT = 10;\n    return Detector;\n}());\nexport default Detector;\n","/*\n* Copyright 2012 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder.ec;\nimport IllegalArgumentException from '../../../IllegalArgumentException';\nimport System from '../../../util/System';\nimport StringBuilder from '../../../util/StringBuilder';\n/**\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.GenericGFPoly\n */\nvar ModulusPoly = /** @class */ (function () {\n    function ModulusPoly(field, coefficients) {\n        if (coefficients.length === 0) {\n            throw new IllegalArgumentException();\n        }\n        this.field = field;\n        var coefficientsLength = /*int*/ coefficients.length;\n        if (coefficientsLength > 1 && coefficients[0] === 0) {\n            // Leading term must be non-zero for anything except the constant polynomial \"0\"\n            var firstNonZero = /*int*/ 1;\n            while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n                firstNonZero++;\n            }\n            if (firstNonZero === coefficientsLength) {\n                this.coefficients = new Int32Array([0]);\n            }\n            else {\n                this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n                System.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n            }\n        }\n        else {\n            this.coefficients = coefficients;\n        }\n    }\n    ModulusPoly.prototype.getCoefficients = function () {\n        return this.coefficients;\n    };\n    /**\n     * @return degree of this polynomial\n     */\n    ModulusPoly.prototype.getDegree = function () {\n        return this.coefficients.length - 1;\n    };\n    /**\n     * @return true iff this polynomial is the monomial \"0\"\n     */\n    ModulusPoly.prototype.isZero = function () {\n        return this.coefficients[0] === 0;\n    };\n    /**\n     * @return coefficient of x^degree term in this polynomial\n     */\n    ModulusPoly.prototype.getCoefficient = function (degree) {\n        return this.coefficients[this.coefficients.length - 1 - degree];\n    };\n    /**\n     * @return evaluation of this polynomial at a given point\n     */\n    ModulusPoly.prototype.evaluateAt = function (a) {\n        var e_1, _a;\n        if (a === 0) {\n            // Just return the x^0 coefficient\n            return this.getCoefficient(0);\n        }\n        if (a === 1) {\n            // Just the sum of the coefficients\n            var sum = /*int*/ 0;\n            try {\n                for (var _b = __values(this.coefficients), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var coefficient = _c.value /*int*/;\n                    sum = this.field.add(sum, coefficient);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            return sum;\n        }\n        var result = /*int*/ this.coefficients[0];\n        var size = /*int*/ this.coefficients.length;\n        for (var i /*int*/ = 1; i < size; i++) {\n            result = this.field.add(this.field.multiply(a, result), this.coefficients[i]);\n        }\n        return result;\n    };\n    ModulusPoly.prototype.add = function (other) {\n        if (!this.field.equals(other.field)) {\n            throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n        }\n        if (this.isZero()) {\n            return other;\n        }\n        if (other.isZero()) {\n            return this;\n        }\n        var smallerCoefficients = this.coefficients;\n        var largerCoefficients = other.coefficients;\n        if (smallerCoefficients.length > largerCoefficients.length) {\n            var temp = smallerCoefficients;\n            smallerCoefficients = largerCoefficients;\n            largerCoefficients = temp;\n        }\n        var sumDiff = new Int32Array(largerCoefficients.length);\n        var lengthDiff = /*int*/ largerCoefficients.length - smallerCoefficients.length;\n        // Copy high-order terms only found in higher-degree polynomial's coefficients\n        System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n        for (var i /*int*/ = lengthDiff; i < largerCoefficients.length; i++) {\n            sumDiff[i] = this.field.add(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n        }\n        return new ModulusPoly(this.field, sumDiff);\n    };\n    ModulusPoly.prototype.subtract = function (other) {\n        if (!this.field.equals(other.field)) {\n            throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n        }\n        if (other.isZero()) {\n            return this;\n        }\n        return this.add(other.negative());\n    };\n    ModulusPoly.prototype.multiply = function (other) {\n        if (other instanceof ModulusPoly) {\n            return this.multiplyOther(other);\n        }\n        return this.multiplyScalar(other);\n    };\n    ModulusPoly.prototype.multiplyOther = function (other) {\n        if (!this.field.equals(other.field)) {\n            throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n        }\n        if (this.isZero() || other.isZero()) {\n            // return this.field.getZero();\n            return new ModulusPoly(this.field, new Int32Array([0]));\n        }\n        var aCoefficients = this.coefficients;\n        var aLength = /*int*/ aCoefficients.length;\n        var bCoefficients = other.coefficients;\n        var bLength = /*int*/ bCoefficients.length;\n        var product = new Int32Array(aLength + bLength - 1);\n        for (var i /*int*/ = 0; i < aLength; i++) {\n            var aCoeff = /*int*/ aCoefficients[i];\n            for (var j /*int*/ = 0; j < bLength; j++) {\n                product[i + j] = this.field.add(product[i + j], this.field.multiply(aCoeff, bCoefficients[j]));\n            }\n        }\n        return new ModulusPoly(this.field, product);\n    };\n    ModulusPoly.prototype.negative = function () {\n        var size = /*int*/ this.coefficients.length;\n        var negativeCoefficients = new Int32Array(size);\n        for (var i /*int*/ = 0; i < size; i++) {\n            negativeCoefficients[i] = this.field.subtract(0, this.coefficients[i]);\n        }\n        return new ModulusPoly(this.field, negativeCoefficients);\n    };\n    ModulusPoly.prototype.multiplyScalar = function (scalar) {\n        if (scalar === 0) {\n            return new ModulusPoly(this.field, new Int32Array([0]));\n        }\n        if (scalar === 1) {\n            return this;\n        }\n        var size = /*int*/ this.coefficients.length;\n        var product = new Int32Array(size);\n        for (var i /*int*/ = 0; i < size; i++) {\n            product[i] = this.field.multiply(this.coefficients[i], scalar);\n        }\n        return new ModulusPoly(this.field, product);\n    };\n    ModulusPoly.prototype.multiplyByMonomial = function (degree, coefficient) {\n        if (degree < 0) {\n            throw new IllegalArgumentException();\n        }\n        if (coefficient === 0) {\n            return new ModulusPoly(this.field, new Int32Array([0]));\n        }\n        var size = /*int*/ this.coefficients.length;\n        var product = new Int32Array(size + degree);\n        for (var i /*int*/ = 0; i < size; i++) {\n            product[i] = this.field.multiply(this.coefficients[i], coefficient);\n        }\n        return new ModulusPoly(this.field, product);\n    };\n    /*\n    ModulusPoly[] divide(other: ModulusPoly) {\n      if (!field.equals(other.field)) {\n        throw new IllegalArgumentException(\"ModulusPolys do not have same ModulusGF field\");\n      }\n      if (other.isZero()) {\n        throw new IllegalArgumentException(\"Divide by 0\");\n      }\n  \n      let quotient: ModulusPoly = field.getZero();\n      let remainder: ModulusPoly = this;\n  \n      let denominatorLeadingTerm: /*int/ number = other.getCoefficient(other.getDegree());\n      let inverseDenominatorLeadingTerm: /*int/ number = field.inverse(denominatorLeadingTerm);\n  \n      while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n        let degreeDifference: /*int/ number = remainder.getDegree() - other.getDegree();\n        let scale: /*int/ number = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n        let term: ModulusPoly = other.multiplyByMonomial(degreeDifference, scale);\n        let iterationQuotient: ModulusPoly = field.buildMonomial(degreeDifference, scale);\n        quotient = quotient.add(iterationQuotient);\n        remainder = remainder.subtract(term);\n      }\n  \n      return new ModulusPoly[] { quotient, remainder };\n    }\n    */\n    // @Override\n    ModulusPoly.prototype.toString = function () {\n        var result = new StringBuilder( /*8 * this.getDegree()*/); // dynamic string size in JS\n        for (var degree /*int*/ = this.getDegree(); degree >= 0; degree--) {\n            var coefficient = /*int*/ this.getCoefficient(degree);\n            if (coefficient !== 0) {\n                if (coefficient < 0) {\n                    result.append(' - ');\n                    coefficient = -coefficient;\n                }\n                else {\n                    if (result.length() > 0) {\n                        result.append(' + ');\n                    }\n                }\n                if (degree === 0 || coefficient !== 1) {\n                    result.append(coefficient);\n                }\n                if (degree !== 0) {\n                    if (degree === 1) {\n                        result.append('x');\n                    }\n                    else {\n                        result.append('x^');\n                        result.append(degree);\n                    }\n                }\n            }\n        }\n        return result.toString();\n    };\n    return ModulusPoly;\n}());\nexport default ModulusPoly;\n","import IllegalArgumentException from '../../../IllegalArgumentException';\nimport ArithmeticException from '../../../ArithmeticException';\nvar ModulusBase = /** @class */ (function () {\n    function ModulusBase() {\n    }\n    ModulusBase.prototype.add = function (a, b) {\n        return (a + b) % this.modulus;\n    };\n    ModulusBase.prototype.subtract = function (a, b) {\n        return (this.modulus + a - b) % this.modulus;\n    };\n    ModulusBase.prototype.exp = function (a) {\n        return this.expTable[a];\n    };\n    ModulusBase.prototype.log = function (a) {\n        if (a === 0) {\n            throw new IllegalArgumentException();\n        }\n        return this.logTable[a];\n    };\n    ModulusBase.prototype.inverse = function (a) {\n        if (a === 0) {\n            throw new ArithmeticException();\n        }\n        return this.expTable[this.modulus - this.logTable[a] - 1];\n    };\n    ModulusBase.prototype.multiply = function (a, b) {\n        if (a === 0 || b === 0) {\n            return 0;\n        }\n        return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.modulus - 1)];\n    };\n    ModulusBase.prototype.getSize = function () {\n        return this.modulus;\n    };\n    ModulusBase.prototype.equals = function (o) {\n        return o === this;\n    };\n    return ModulusBase;\n}());\nexport default ModulusBase;\n","/*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n// package com.google.zxing.pdf417.decoder.ec;\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../../PDF417Common';\nimport ModulusPoly from './ModulusPoly';\nimport IllegalArgumentException from '../../../IllegalArgumentException';\nimport ModulusBase from './ModulusBase';\n/**\n * <p>A field based on powers of a generator integer, modulo some modulus.</p>\n *\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.GenericGF\n */\nvar ModulusGF = /** @class */ (function (_super) {\n    __extends(ModulusGF, _super);\n    // private /*final*/ modulus: /*int*/ number;\n    function ModulusGF(modulus, generator) {\n        var _this = _super.call(this) || this;\n        _this.modulus = modulus;\n        _this.expTable = new Int32Array(modulus);\n        _this.logTable = new Int32Array(modulus);\n        var x = /*int*/ 1;\n        for (var i /*int*/ = 0; i < modulus; i++) {\n            _this.expTable[i] = x;\n            x = (x * generator) % modulus;\n        }\n        for (var i /*int*/ = 0; i < modulus - 1; i++) {\n            _this.logTable[_this.expTable[i]] = i;\n        }\n        // logTable[0] == 0 but this should never be used\n        _this.zero = new ModulusPoly(_this, new Int32Array([0]));\n        _this.one = new ModulusPoly(_this, new Int32Array([1]));\n        return _this;\n    }\n    ModulusGF.prototype.getZero = function () {\n        return this.zero;\n    };\n    ModulusGF.prototype.getOne = function () {\n        return this.one;\n    };\n    ModulusGF.prototype.buildMonomial = function (degree, coefficient) {\n        if (degree < 0) {\n            throw new IllegalArgumentException();\n        }\n        if (coefficient === 0) {\n            return this.zero;\n        }\n        var coefficients = new Int32Array(degree + 1);\n        coefficients[0] = coefficient;\n        return new ModulusPoly(this, coefficients);\n    };\n    ModulusGF.PDF417_GF = new ModulusGF(PDF417Common.NUMBER_OF_CODEWORDS, 3);\n    return ModulusGF;\n}(ModulusBase));\nexport default ModulusGF;\n","/*\n* Copyright 2012 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder.ec;\n// import com.google.zxing.ChecksumException;\nimport ChecksumException from '../../../ChecksumException';\nimport ModulusPoly from './ModulusPoly';\nimport ModulusGF from './ModulusGF';\n/**\n * <p>PDF417 error correction implementation.</p>\n *\n * <p>This <a href=\"http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction#Example\">example</a>\n * is quite useful in understanding the algorithm.</p>\n *\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.ReedSolomonDecoder\n */\nvar ErrorCorrection = /** @class */ (function () {\n    function ErrorCorrection() {\n        this.field = ModulusGF.PDF417_GF;\n    }\n    /**\n     * @param received received codewords\n     * @param numECCodewords number of those codewords used for EC\n     * @param erasures location of erasures\n     * @return number of errors\n     * @throws ChecksumException if errors cannot be corrected, maybe because of too many errors\n     */\n    ErrorCorrection.prototype.decode = function (received, numECCodewords, erasures) {\n        var e_1, _a;\n        var poly = new ModulusPoly(this.field, received);\n        var S = new Int32Array(numECCodewords);\n        var error = false;\n        for (var i /*int*/ = numECCodewords; i > 0; i--) {\n            var evaluation = poly.evaluateAt(this.field.exp(i));\n            S[numECCodewords - i] = evaluation;\n            if (evaluation !== 0) {\n                error = true;\n            }\n        }\n        if (!error) {\n            return 0;\n        }\n        var knownErrors = this.field.getOne();\n        if (erasures != null) {\n            try {\n                for (var erasures_1 = __values(erasures), erasures_1_1 = erasures_1.next(); !erasures_1_1.done; erasures_1_1 = erasures_1.next()) {\n                    var erasure = erasures_1_1.value;\n                    var b = this.field.exp(received.length - 1 - erasure);\n                    // Add (1 - bx) term:\n                    var term = new ModulusPoly(this.field, new Int32Array([this.field.subtract(0, b), 1]));\n                    knownErrors = knownErrors.multiply(term);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (erasures_1_1 && !erasures_1_1.done && (_a = erasures_1.return)) _a.call(erasures_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        var syndrome = new ModulusPoly(this.field, S);\n        // syndrome = syndrome.multiply(knownErrors);\n        var sigmaOmega = this.runEuclideanAlgorithm(this.field.buildMonomial(numECCodewords, 1), syndrome, numECCodewords);\n        var sigma = sigmaOmega[0];\n        var omega = sigmaOmega[1];\n        // sigma = sigma.multiply(knownErrors);\n        var errorLocations = this.findErrorLocations(sigma);\n        var errorMagnitudes = this.findErrorMagnitudes(omega, sigma, errorLocations);\n        for (var i /*int*/ = 0; i < errorLocations.length; i++) {\n            var position = received.length - 1 - this.field.log(errorLocations[i]);\n            if (position < 0) {\n                throw ChecksumException.getChecksumInstance();\n            }\n            received[position] = this.field.subtract(received[position], errorMagnitudes[i]);\n        }\n        return errorLocations.length;\n    };\n    /**\n     *\n     * @param ModulusPoly\n     * @param a\n     * @param ModulusPoly\n     * @param b\n     * @param int\n     * @param R\n     * @throws ChecksumException\n     */\n    ErrorCorrection.prototype.runEuclideanAlgorithm = function (a, b, R) {\n        // Assume a's degree is >= b's\n        if (a.getDegree() < b.getDegree()) {\n            var temp = a;\n            a = b;\n            b = temp;\n        }\n        var rLast = a;\n        var r = b;\n        var tLast = this.field.getZero();\n        var t = this.field.getOne();\n        // Run Euclidean algorithm until r's degree is less than R/2\n        while (r.getDegree() >= Math.round(R / 2)) {\n            var rLastLast = rLast;\n            var tLastLast = tLast;\n            rLast = r;\n            tLast = t;\n            // Divide rLastLast by rLast, with quotient in q and remainder in r\n            if (rLast.isZero()) {\n                // Oops, Euclidean algorithm already terminated?\n                throw ChecksumException.getChecksumInstance();\n            }\n            r = rLastLast;\n            var q = this.field.getZero();\n            var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n            var dltInverse = this.field.inverse(denominatorLeadingTerm);\n            while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n                var degreeDiff = r.getDegree() - rLast.getDegree();\n                var scale = this.field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n                q = q.add(this.field.buildMonomial(degreeDiff, scale));\n                r = r.subtract(rLast.multiplyByMonomial(degreeDiff, scale));\n            }\n            t = q.multiply(tLast).subtract(tLastLast).negative();\n        }\n        var sigmaTildeAtZero = t.getCoefficient(0);\n        if (sigmaTildeAtZero === 0) {\n            throw ChecksumException.getChecksumInstance();\n        }\n        var inverse = this.field.inverse(sigmaTildeAtZero);\n        var sigma = t.multiply(inverse);\n        var omega = r.multiply(inverse);\n        return [sigma, omega];\n    };\n    /**\n     *\n     * @param errorLocator\n     * @throws ChecksumException\n     */\n    ErrorCorrection.prototype.findErrorLocations = function (errorLocator) {\n        // This is a direct application of Chien's search\n        var numErrors = errorLocator.getDegree();\n        var result = new Int32Array(numErrors);\n        var e = 0;\n        for (var i /*int*/ = 1; i < this.field.getSize() && e < numErrors; i++) {\n            if (errorLocator.evaluateAt(i) === 0) {\n                result[e] = this.field.inverse(i);\n                e++;\n            }\n        }\n        if (e !== numErrors) {\n            throw ChecksumException.getChecksumInstance();\n        }\n        return result;\n    };\n    ErrorCorrection.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocator, errorLocations) {\n        var errorLocatorDegree = errorLocator.getDegree();\n        var formalDerivativeCoefficients = new Int32Array(errorLocatorDegree);\n        for (var i /*int*/ = 1; i <= errorLocatorDegree; i++) {\n            formalDerivativeCoefficients[errorLocatorDegree - i] =\n                this.field.multiply(i, errorLocator.getCoefficient(i));\n        }\n        var formalDerivative = new ModulusPoly(this.field, formalDerivativeCoefficients);\n        // This is directly applying Forney's Formula\n        var s = errorLocations.length;\n        var result = new Int32Array(s);\n        for (var i /*int*/ = 0; i < s; i++) {\n            var xiInverse = this.field.inverse(errorLocations[i]);\n            var numerator = this.field.subtract(0, errorEvaluator.evaluateAt(xiInverse));\n            var denominator = this.field.inverse(formalDerivative.evaluateAt(xiInverse));\n            result[i] = this.field.multiply(numerator, denominator);\n        }\n        return result;\n    };\n    return ErrorCorrection;\n}());\nexport default ErrorCorrection;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.NotFoundException;\nimport NotFoundException from '../../NotFoundException';\n// import com.google.zxing.ResultPoint;\nimport ResultPoint from '../../ResultPoint';\n/**\n * @author Guenther Grau\n */\nvar BoundingBox = /** @class */ (function () {\n    function BoundingBox(image, topLeft, bottomLeft, topRight, bottomRight) {\n        if (image instanceof BoundingBox) {\n            this.constructor_2(image);\n        }\n        else {\n            this.constructor_1(image, topLeft, bottomLeft, topRight, bottomRight);\n        }\n    }\n    /**\n     *\n     * @param image\n     * @param topLeft\n     * @param bottomLeft\n     * @param topRight\n     * @param bottomRight\n     *\n     * @throws NotFoundException\n     */\n    BoundingBox.prototype.constructor_1 = function (image, topLeft, bottomLeft, topRight, bottomRight) {\n        var leftUnspecified = topLeft == null || bottomLeft == null;\n        var rightUnspecified = topRight == null || bottomRight == null;\n        if (leftUnspecified && rightUnspecified) {\n            throw new NotFoundException();\n        }\n        if (leftUnspecified) {\n            topLeft = new ResultPoint(0, topRight.getY());\n            bottomLeft = new ResultPoint(0, bottomRight.getY());\n        }\n        else if (rightUnspecified) {\n            topRight = new ResultPoint(image.getWidth() - 1, topLeft.getY());\n            bottomRight = new ResultPoint(image.getWidth() - 1, bottomLeft.getY());\n        }\n        this.image = image;\n        this.topLeft = topLeft;\n        this.bottomLeft = bottomLeft;\n        this.topRight = topRight;\n        this.bottomRight = bottomRight;\n        this.minX = Math.trunc(Math.min(topLeft.getX(), bottomLeft.getX()));\n        this.maxX = Math.trunc(Math.max(topRight.getX(), bottomRight.getX()));\n        this.minY = Math.trunc(Math.min(topLeft.getY(), topRight.getY()));\n        this.maxY = Math.trunc(Math.max(bottomLeft.getY(), bottomRight.getY()));\n    };\n    BoundingBox.prototype.constructor_2 = function (boundingBox) {\n        this.image = boundingBox.image;\n        this.topLeft = boundingBox.getTopLeft();\n        this.bottomLeft = boundingBox.getBottomLeft();\n        this.topRight = boundingBox.getTopRight();\n        this.bottomRight = boundingBox.getBottomRight();\n        this.minX = boundingBox.getMinX();\n        this.maxX = boundingBox.getMaxX();\n        this.minY = boundingBox.getMinY();\n        this.maxY = boundingBox.getMaxY();\n    };\n    /**\n     * @throws NotFoundException\n     */\n    BoundingBox.merge = function (leftBox, rightBox) {\n        if (leftBox == null) {\n            return rightBox;\n        }\n        if (rightBox == null) {\n            return leftBox;\n        }\n        return new BoundingBox(leftBox.image, leftBox.topLeft, leftBox.bottomLeft, rightBox.topRight, rightBox.bottomRight);\n    };\n    /**\n     * @throws NotFoundException\n     */\n    BoundingBox.prototype.addMissingRows = function (missingStartRows, missingEndRows, isLeft) {\n        var newTopLeft = this.topLeft;\n        var newBottomLeft = this.bottomLeft;\n        var newTopRight = this.topRight;\n        var newBottomRight = this.bottomRight;\n        if (missingStartRows > 0) {\n            var top_1 = isLeft ? this.topLeft : this.topRight;\n            var newMinY = Math.trunc(top_1.getY() - missingStartRows);\n            if (newMinY < 0) {\n                newMinY = 0;\n            }\n            var newTop = new ResultPoint(top_1.getX(), newMinY);\n            if (isLeft) {\n                newTopLeft = newTop;\n            }\n            else {\n                newTopRight = newTop;\n            }\n        }\n        if (missingEndRows > 0) {\n            var bottom = isLeft ? this.bottomLeft : this.bottomRight;\n            var newMaxY = Math.trunc(bottom.getY() + missingEndRows);\n            if (newMaxY >= this.image.getHeight()) {\n                newMaxY = this.image.getHeight() - 1;\n            }\n            var newBottom = new ResultPoint(bottom.getX(), newMaxY);\n            if (isLeft) {\n                newBottomLeft = newBottom;\n            }\n            else {\n                newBottomRight = newBottom;\n            }\n        }\n        return new BoundingBox(this.image, newTopLeft, newBottomLeft, newTopRight, newBottomRight);\n    };\n    BoundingBox.prototype.getMinX = function () {\n        return this.minX;\n    };\n    BoundingBox.prototype.getMaxX = function () {\n        return this.maxX;\n    };\n    BoundingBox.prototype.getMinY = function () {\n        return this.minY;\n    };\n    BoundingBox.prototype.getMaxY = function () {\n        return this.maxY;\n    };\n    BoundingBox.prototype.getTopLeft = function () {\n        return this.topLeft;\n    };\n    BoundingBox.prototype.getTopRight = function () {\n        return this.topRight;\n    };\n    BoundingBox.prototype.getBottomLeft = function () {\n        return this.bottomLeft;\n    };\n    BoundingBox.prototype.getBottomRight = function () {\n        return this.bottomRight;\n    };\n    return BoundingBox;\n}());\nexport default BoundingBox;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417.decoder;\n/**\n * @author Guenther Grau\n */\nvar BarcodeMetadata = /** @class */ (function () {\n    function BarcodeMetadata(columnCount, rowCountUpperPart, rowCountLowerPart, errorCorrectionLevel) {\n        this.columnCount = columnCount;\n        this.errorCorrectionLevel = errorCorrectionLevel;\n        this.rowCountUpperPart = rowCountUpperPart;\n        this.rowCountLowerPart = rowCountLowerPart;\n        this.rowCount = rowCountUpperPart + rowCountLowerPart;\n    }\n    BarcodeMetadata.prototype.getColumnCount = function () {\n        return this.columnCount;\n    };\n    BarcodeMetadata.prototype.getErrorCorrectionLevel = function () {\n        return this.errorCorrectionLevel;\n    };\n    BarcodeMetadata.prototype.getRowCount = function () {\n        return this.rowCount;\n    };\n    BarcodeMetadata.prototype.getRowCountUpperPart = function () {\n        return this.rowCountUpperPart;\n    };\n    BarcodeMetadata.prototype.getRowCountLowerPart = function () {\n        return this.rowCountLowerPart;\n    };\n    return BarcodeMetadata;\n}());\nexport default BarcodeMetadata;\n","/**\n * Java Formatter class polyfill that works in the JS way.\n */\nvar Formatter = /** @class */ (function () {\n    function Formatter() {\n        this.buffer = '';\n    }\n    /**\n     *\n     * @see https://stackoverflow.com/a/13439711/4367683\n     *\n     * @param str\n     * @param arr\n     */\n    Formatter.form = function (str, arr) {\n        var i = -1;\n        function callback(exp, p0, p1, p2, p3, p4) {\n            if (exp === '%%')\n                return '%';\n            if (arr[++i] === undefined)\n                return undefined;\n            exp = p2 ? parseInt(p2.substr(1)) : undefined;\n            var base = p3 ? parseInt(p3.substr(1)) : undefined;\n            var val;\n            switch (p4) {\n                case 's':\n                    val = arr[i];\n                    break;\n                case 'c':\n                    val = arr[i][0];\n                    break;\n                case 'f':\n                    val = parseFloat(arr[i]).toFixed(exp);\n                    break;\n                case 'p':\n                    val = parseFloat(arr[i]).toPrecision(exp);\n                    break;\n                case 'e':\n                    val = parseFloat(arr[i]).toExponential(exp);\n                    break;\n                case 'x':\n                    val = parseInt(arr[i]).toString(base ? base : 16);\n                    break;\n                case 'd':\n                    val = parseFloat(parseInt(arr[i], base ? base : 10).toPrecision(exp)).toFixed(0);\n                    break;\n            }\n            val = typeof val === 'object' ? JSON.stringify(val) : (+val).toString(base);\n            var size = parseInt(p1); /* padding size */\n            var ch = p1 && (p1[0] + '') === '0' ? '0' : ' '; /* isnull? */\n            while (val.length < size)\n                val = p0 !== undefined ? val + ch : ch + val; /* isminus? */\n            return val;\n        }\n        var regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;\n        return str.replace(regex, callback);\n    };\n    /**\n     *\n     * @param append The new string to append.\n     * @param args Argumets values to be formated.\n     */\n    Formatter.prototype.format = function (append) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        this.buffer += Formatter.form(append, args);\n    };\n    /**\n     * Returns the Formatter string value.\n     */\n    Formatter.prototype.toString = function () {\n        return this.buffer;\n    };\n    return Formatter;\n}());\nexport default Formatter;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder;\n// import java.util.Formatter;\nimport Formatter from '../../util/Formatter';\nimport BoundingBox from './BoundingBox';\n/**\n * @author Guenther Grau\n */\nvar DetectionResultColumn = /** @class */ (function () {\n    function DetectionResultColumn(boundingBox) {\n        this.boundingBox = new BoundingBox(boundingBox);\n        // this.codewords = new Codeword[boundingBox.getMaxY() - boundingBox.getMinY() + 1];\n        this.codewords = new Array(boundingBox.getMaxY() - boundingBox.getMinY() + 1);\n    }\n    /*final*/ DetectionResultColumn.prototype.getCodewordNearby = function (imageRow) {\n        var codeword = this.getCodeword(imageRow);\n        if (codeword != null) {\n            return codeword;\n        }\n        for (var i = 1; i < DetectionResultColumn.MAX_NEARBY_DISTANCE; i++) {\n            var nearImageRow = this.imageRowToCodewordIndex(imageRow) - i;\n            if (nearImageRow >= 0) {\n                codeword = this.codewords[nearImageRow];\n                if (codeword != null) {\n                    return codeword;\n                }\n            }\n            nearImageRow = this.imageRowToCodewordIndex(imageRow) + i;\n            if (nearImageRow < this.codewords.length) {\n                codeword = this.codewords[nearImageRow];\n                if (codeword != null) {\n                    return codeword;\n                }\n            }\n        }\n        return null;\n    };\n    /*final int*/ DetectionResultColumn.prototype.imageRowToCodewordIndex = function (imageRow) {\n        return imageRow - this.boundingBox.getMinY();\n    };\n    /*final void*/ DetectionResultColumn.prototype.setCodeword = function (imageRow, codeword) {\n        this.codewords[this.imageRowToCodewordIndex(imageRow)] = codeword;\n    };\n    /*final*/ DetectionResultColumn.prototype.getCodeword = function (imageRow) {\n        return this.codewords[this.imageRowToCodewordIndex(imageRow)];\n    };\n    /*final*/ DetectionResultColumn.prototype.getBoundingBox = function () {\n        return this.boundingBox;\n    };\n    /*final*/ DetectionResultColumn.prototype.getCodewords = function () {\n        return this.codewords;\n    };\n    // @Override\n    DetectionResultColumn.prototype.toString = function () {\n        var e_1, _a;\n        var formatter = new Formatter();\n        var row = 0;\n        try {\n            for (var _b = __values(this.codewords), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var codeword = _c.value;\n                if (codeword == null) {\n                    formatter.format('%3d:    |   %n', row++);\n                    continue;\n                }\n                formatter.format('%3d: %3d|%3d%n', row++, codeword.getRowNumber(), codeword.getValue());\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return formatter.toString();\n    };\n    DetectionResultColumn.MAX_NEARBY_DISTANCE = 5;\n    return DetectionResultColumn;\n}());\nexport default DetectionResultColumn;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\n// import java.util.ArrayList;\n// import java.util.Collection;\n// import java.util.HashMap;\n// import java.util.Map;\n// import java.util.Map.Entry;\n/**\n * @author Guenther Grau\n */\nvar BarcodeValue = /** @class */ (function () {\n    function BarcodeValue() {\n        this.values = new Map();\n    }\n    /**\n     * Add an occurrence of a value\n     */\n    BarcodeValue.prototype.setValue = function (value) {\n        value = Math.trunc(value);\n        var confidence = this.values.get(value);\n        if (confidence == null) {\n            confidence = 0;\n        }\n        confidence++;\n        this.values.set(value, confidence);\n    };\n    /**\n     * Determines the maximum occurrence of a set value and returns all values which were set with this occurrence.\n     * @return an array of int, containing the values with the highest occurrence, or null, if no value was set\n     */\n    BarcodeValue.prototype.getValue = function () {\n        var e_1, _a;\n        var maxConfidence = -1;\n        var result = new Array();\n        var _loop_1 = function (key, value) {\n            var entry = {\n                getKey: function () { return key; },\n                getValue: function () { return value; },\n            };\n            if (entry.getValue() > maxConfidence) {\n                maxConfidence = entry.getValue();\n                result = [];\n                result.push(entry.getKey());\n            }\n            else if (entry.getValue() === maxConfidence) {\n                result.push(entry.getKey());\n            }\n        };\n        try {\n            for (var _b = __values(this.values.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n                _loop_1(key, value);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return PDF417Common.toIntArray(result);\n    };\n    BarcodeValue.prototype.getConfidence = function (value) {\n        return this.values.get(value);\n    };\n    return BarcodeValue;\n}());\nexport default BarcodeValue;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\nimport BarcodeMetadata from './BarcodeMetadata';\nimport DetectionResultColumn from './DetectionResultColumn';\nimport BarcodeValue from './BarcodeValue';\n/**\n * @author Guenther Grau\n */\nvar DetectionResultRowIndicatorColumn = /** @class */ (function (_super) {\n    __extends(DetectionResultRowIndicatorColumn, _super);\n    function DetectionResultRowIndicatorColumn(boundingBox, isLeft) {\n        var _this = _super.call(this, boundingBox) || this;\n        _this._isLeft = isLeft;\n        return _this;\n    }\n    DetectionResultRowIndicatorColumn.prototype.setRowNumbers = function () {\n        var e_1, _a;\n        try {\n            for (var _b = __values(this.getCodewords()), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var codeword = _c.value /*Codeword*/;\n                if (codeword != null) {\n                    codeword.setRowNumberAsRowIndicatorColumn();\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    // TODO implement properly\n    // TODO maybe we should add missing codewords to store the correct row number to make\n    // finding row numbers for other columns easier\n    // use row height count to make detection of invalid row numbers more reliable\n    DetectionResultRowIndicatorColumn.prototype.adjustCompleteIndicatorColumnRowNumbers = function (barcodeMetadata) {\n        var codewords = this.getCodewords();\n        this.setRowNumbers();\n        this.removeIncorrectCodewords(codewords, barcodeMetadata);\n        var boundingBox = this.getBoundingBox();\n        var top = this._isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight();\n        var bottom = this._isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight();\n        var firstRow = this.imageRowToCodewordIndex(Math.trunc(top.getY()));\n        var lastRow = this.imageRowToCodewordIndex(Math.trunc(bottom.getY()));\n        // We need to be careful using the average row height. Barcode could be skewed so that we have smaller and\n        // taller rows\n        // float averageRowHeight = (lastRow - firstRow) / /*(float)*/ barcodeMetadata.getRowCount();\n        var barcodeRow = -1;\n        var maxRowHeight = 1;\n        var currentRowHeight = 0;\n        for (var codewordsRow /*int*/ = firstRow; codewordsRow < lastRow; codewordsRow++) {\n            if (codewords[codewordsRow] == null) {\n                continue;\n            }\n            var codeword = codewords[codewordsRow];\n            //      float expectedRowNumber = (codewordsRow - firstRow) / averageRowHeight;\n            //      if (Math.abs(codeword.getRowNumber() - expectedRowNumber) > 2) {\n            //        SimpleLog.log(LEVEL.WARNING,\n            //            \"Removing codeword, rowNumberSkew too high, codeword[\" + codewordsRow + \"]: Expected Row: \" +\n            //                expectedRowNumber + \", RealRow: \" + codeword.getRowNumber() + \", value: \" + codeword.getValue());\n            //        codewords[codewordsRow] = null;\n            //      }\n            var rowDifference = codeword.getRowNumber() - barcodeRow;\n            // TODO improve handling with case where first row indicator doesn't start with 0\n            if (rowDifference === 0) {\n                currentRowHeight++;\n            }\n            else if (rowDifference === 1) {\n                maxRowHeight = Math.max(maxRowHeight, currentRowHeight);\n                currentRowHeight = 1;\n                barcodeRow = codeword.getRowNumber();\n            }\n            else if (rowDifference < 0 ||\n                codeword.getRowNumber() >= barcodeMetadata.getRowCount() ||\n                rowDifference > codewordsRow) {\n                codewords[codewordsRow] = null;\n            }\n            else {\n                var checkedRows = void 0;\n                if (maxRowHeight > 2) {\n                    checkedRows = (maxRowHeight - 2) * rowDifference;\n                }\n                else {\n                    checkedRows = rowDifference;\n                }\n                var closePreviousCodewordFound = checkedRows >= codewordsRow;\n                for (var i /*int*/ = 1; i <= checkedRows && !closePreviousCodewordFound; i++) {\n                    // there must be (height * rowDifference) number of codewords missing. For now we assume height = 1.\n                    // This should hopefully get rid of most problems already.\n                    closePreviousCodewordFound = codewords[codewordsRow - i] != null;\n                }\n                if (closePreviousCodewordFound) {\n                    codewords[codewordsRow] = null;\n                }\n                else {\n                    barcodeRow = codeword.getRowNumber();\n                    currentRowHeight = 1;\n                }\n            }\n        }\n        // return (int) (averageRowHeight + 0.5);\n    };\n    DetectionResultRowIndicatorColumn.prototype.getRowHeights = function () {\n        var e_2, _a;\n        var barcodeMetadata = this.getBarcodeMetadata();\n        if (barcodeMetadata == null) {\n            return null;\n        }\n        this.adjustIncompleteIndicatorColumnRowNumbers(barcodeMetadata);\n        var result = new Int32Array(barcodeMetadata.getRowCount());\n        try {\n            for (var _b = __values(this.getCodewords()), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var codeword = _c.value /*Codeword*/;\n                if (codeword != null) {\n                    var rowNumber = codeword.getRowNumber();\n                    if (rowNumber >= result.length) {\n                        // We have more rows than the barcode metadata allows for, ignore them.\n                        continue;\n                    }\n                    result[rowNumber]++;\n                } // else throw exception?\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        return result;\n    };\n    // TODO maybe we should add missing codewords to store the correct row number to make\n    // finding row numbers for other columns easier\n    // use row height count to make detection of invalid row numbers more reliable\n    DetectionResultRowIndicatorColumn.prototype.adjustIncompleteIndicatorColumnRowNumbers = function (barcodeMetadata) {\n        var boundingBox = this.getBoundingBox();\n        var top = this._isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight();\n        var bottom = this._isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight();\n        var firstRow = this.imageRowToCodewordIndex(Math.trunc(top.getY()));\n        var lastRow = this.imageRowToCodewordIndex(Math.trunc(bottom.getY()));\n        // float averageRowHeight = (lastRow - firstRow) / /*(float)*/ barcodeMetadata.getRowCount();\n        var codewords = this.getCodewords();\n        var barcodeRow = -1;\n        var maxRowHeight = 1;\n        var currentRowHeight = 0;\n        for (var codewordsRow /*int*/ = firstRow; codewordsRow < lastRow; codewordsRow++) {\n            if (codewords[codewordsRow] == null) {\n                continue;\n            }\n            var codeword = codewords[codewordsRow];\n            codeword.setRowNumberAsRowIndicatorColumn();\n            var rowDifference = codeword.getRowNumber() - barcodeRow;\n            // TODO improve handling with case where first row indicator doesn't start with 0\n            if (rowDifference === 0) {\n                currentRowHeight++;\n            }\n            else if (rowDifference === 1) {\n                maxRowHeight = Math.max(maxRowHeight, currentRowHeight);\n                currentRowHeight = 1;\n                barcodeRow = codeword.getRowNumber();\n            }\n            else if (codeword.getRowNumber() >= barcodeMetadata.getRowCount()) {\n                codewords[codewordsRow] = null;\n            }\n            else {\n                barcodeRow = codeword.getRowNumber();\n                currentRowHeight = 1;\n            }\n        }\n        // return (int) (averageRowHeight + 0.5);\n    };\n    DetectionResultRowIndicatorColumn.prototype.getBarcodeMetadata = function () {\n        var e_3, _a;\n        var codewords = this.getCodewords();\n        var barcodeColumnCount = new BarcodeValue();\n        var barcodeRowCountUpperPart = new BarcodeValue();\n        var barcodeRowCountLowerPart = new BarcodeValue();\n        var barcodeECLevel = new BarcodeValue();\n        try {\n            for (var codewords_1 = __values(codewords), codewords_1_1 = codewords_1.next(); !codewords_1_1.done; codewords_1_1 = codewords_1.next()) {\n                var codeword = codewords_1_1.value /*Codeword*/;\n                if (codeword == null) {\n                    continue;\n                }\n                codeword.setRowNumberAsRowIndicatorColumn();\n                var rowIndicatorValue = codeword.getValue() % 30;\n                var codewordRowNumber = codeword.getRowNumber();\n                if (!this._isLeft) {\n                    codewordRowNumber += 2;\n                }\n                switch (codewordRowNumber % 3) {\n                    case 0:\n                        barcodeRowCountUpperPart.setValue(rowIndicatorValue * 3 + 1);\n                        break;\n                    case 1:\n                        barcodeECLevel.setValue(rowIndicatorValue / 3);\n                        barcodeRowCountLowerPart.setValue(rowIndicatorValue % 3);\n                        break;\n                    case 2:\n                        barcodeColumnCount.setValue(rowIndicatorValue + 1);\n                        break;\n                }\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (codewords_1_1 && !codewords_1_1.done && (_a = codewords_1.return)) _a.call(codewords_1);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n        // Maybe we should check if we have ambiguous values?\n        if ((barcodeColumnCount.getValue().length === 0) ||\n            (barcodeRowCountUpperPart.getValue().length === 0) ||\n            (barcodeRowCountLowerPart.getValue().length === 0) ||\n            (barcodeECLevel.getValue().length === 0) ||\n            barcodeColumnCount.getValue()[0] < 1 ||\n            barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] < PDF417Common.MIN_ROWS_IN_BARCODE ||\n            barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] > PDF417Common.MAX_ROWS_IN_BARCODE) {\n            return null;\n        }\n        var barcodeMetadata = new BarcodeMetadata(barcodeColumnCount.getValue()[0], barcodeRowCountUpperPart.getValue()[0], barcodeRowCountLowerPart.getValue()[0], barcodeECLevel.getValue()[0]);\n        this.removeIncorrectCodewords(codewords, barcodeMetadata);\n        return barcodeMetadata;\n    };\n    DetectionResultRowIndicatorColumn.prototype.removeIncorrectCodewords = function (codewords, barcodeMetadata) {\n        // Remove codewords which do not match the metadata\n        // TODO Maybe we should keep the incorrect codewords for the start and end positions?\n        for (var codewordRow /*int*/ = 0; codewordRow < codewords.length; codewordRow++) {\n            var codeword = codewords[codewordRow];\n            if (codewords[codewordRow] == null) {\n                continue;\n            }\n            var rowIndicatorValue = codeword.getValue() % 30;\n            var codewordRowNumber = codeword.getRowNumber();\n            if (codewordRowNumber > barcodeMetadata.getRowCount()) {\n                codewords[codewordRow] = null;\n                continue;\n            }\n            if (!this._isLeft) {\n                codewordRowNumber += 2;\n            }\n            switch (codewordRowNumber % 3) {\n                case 0:\n                    if (rowIndicatorValue * 3 + 1 !== barcodeMetadata.getRowCountUpperPart()) {\n                        codewords[codewordRow] = null;\n                    }\n                    break;\n                case 1:\n                    if (Math.trunc(rowIndicatorValue / 3) !== barcodeMetadata.getErrorCorrectionLevel() ||\n                        rowIndicatorValue % 3 !== barcodeMetadata.getRowCountLowerPart()) {\n                        codewords[codewordRow] = null;\n                    }\n                    break;\n                case 2:\n                    if (rowIndicatorValue + 1 !== barcodeMetadata.getColumnCount()) {\n                        codewords[codewordRow] = null;\n                    }\n                    break;\n            }\n        }\n    };\n    DetectionResultRowIndicatorColumn.prototype.isLeft = function () {\n        return this._isLeft;\n    };\n    // @Override\n    DetectionResultRowIndicatorColumn.prototype.toString = function () {\n        return 'IsLeft: ' + this._isLeft + '\\n' + _super.prototype.toString.call(this);\n    };\n    return DetectionResultRowIndicatorColumn;\n}(DetectionResultColumn));\nexport default DetectionResultRowIndicatorColumn;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\nimport Formatter from '../../util/Formatter';\n/**\n * @author Guenther Grau\n */\nvar DetectionResult = /** @class */ (function () {\n    function DetectionResult(barcodeMetadata, boundingBox) {\n        /*final*/ this.ADJUST_ROW_NUMBER_SKIP = 2;\n        this.barcodeMetadata = barcodeMetadata;\n        this.barcodeColumnCount = barcodeMetadata.getColumnCount();\n        this.boundingBox = boundingBox;\n        // this.detectionResultColumns = new DetectionResultColumn[this.barcodeColumnCount + 2];\n        this.detectionResultColumns = new Array(this.barcodeColumnCount + 2);\n    }\n    DetectionResult.prototype.getDetectionResultColumns = function () {\n        this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[0]);\n        this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[this.barcodeColumnCount + 1]);\n        var unadjustedCodewordCount = PDF417Common.MAX_CODEWORDS_IN_BARCODE;\n        var previousUnadjustedCount;\n        do {\n            previousUnadjustedCount = unadjustedCodewordCount;\n            unadjustedCodewordCount = this.adjustRowNumbersAndGetCount();\n        } while (unadjustedCodewordCount > 0 && unadjustedCodewordCount < previousUnadjustedCount);\n        return this.detectionResultColumns;\n    };\n    DetectionResult.prototype.adjustIndicatorColumnRowNumbers = function (detectionResultColumn) {\n        if (detectionResultColumn != null) {\n            detectionResultColumn\n                .adjustCompleteIndicatorColumnRowNumbers(this.barcodeMetadata);\n        }\n    };\n    // TODO ensure that no detected codewords with unknown row number are left\n    // we should be able to estimate the row height and use it as a hint for the row number\n    // we should also fill the rows top to bottom and bottom to top\n    /**\n     * @return number of codewords which don't have a valid row number. Note that the count is not accurate as codewords\n     * will be counted several times. It just serves as an indicator to see when we can stop adjusting row numbers\n     */\n    DetectionResult.prototype.adjustRowNumbersAndGetCount = function () {\n        var unadjustedCount = this.adjustRowNumbersByRow();\n        if (unadjustedCount === 0) {\n            return 0;\n        }\n        for (var barcodeColumn /*int*/ = 1; barcodeColumn < this.barcodeColumnCount + 1; barcodeColumn++) {\n            var codewords = this.detectionResultColumns[barcodeColumn].getCodewords();\n            for (var codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n                if (codewords[codewordsRow] == null) {\n                    continue;\n                }\n                if (!codewords[codewordsRow].hasValidRowNumber()) {\n                    this.adjustRowNumbers(barcodeColumn, codewordsRow, codewords);\n                }\n            }\n        }\n        return unadjustedCount;\n    };\n    DetectionResult.prototype.adjustRowNumbersByRow = function () {\n        this.adjustRowNumbersFromBothRI();\n        // TODO we should only do full row adjustments if row numbers of left and right row indicator column match.\n        // Maybe it's even better to calculated the height (rows: d) and divide it by the number of barcode\n        // rows. This, together with the LRI and RRI row numbers should allow us to get a good estimate where a row\n        // number starts and ends.\n        var unadjustedCount = this.adjustRowNumbersFromLRI();\n        return unadjustedCount + this.adjustRowNumbersFromRRI();\n    };\n    DetectionResult.prototype.adjustRowNumbersFromBothRI = function () {\n        if (this.detectionResultColumns[0] == null || this.detectionResultColumns[this.barcodeColumnCount + 1] == null) {\n            return;\n        }\n        var LRIcodewords = this.detectionResultColumns[0].getCodewords();\n        var RRIcodewords = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords();\n        for (var codewordsRow /*int*/ = 0; codewordsRow < LRIcodewords.length; codewordsRow++) {\n            if (LRIcodewords[codewordsRow] != null &&\n                RRIcodewords[codewordsRow] != null &&\n                LRIcodewords[codewordsRow].getRowNumber() === RRIcodewords[codewordsRow].getRowNumber()) {\n                for (var barcodeColumn /*int*/ = 1; barcodeColumn <= this.barcodeColumnCount; barcodeColumn++) {\n                    var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n                    if (codeword == null) {\n                        continue;\n                    }\n                    codeword.setRowNumber(LRIcodewords[codewordsRow].getRowNumber());\n                    if (!codeword.hasValidRowNumber()) {\n                        this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow] = null;\n                    }\n                }\n            }\n        }\n    };\n    DetectionResult.prototype.adjustRowNumbersFromRRI = function () {\n        if (this.detectionResultColumns[this.barcodeColumnCount + 1] == null) {\n            return 0;\n        }\n        var unadjustedCount = 0;\n        var codewords = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords();\n        for (var codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n            if (codewords[codewordsRow] == null) {\n                continue;\n            }\n            var rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber();\n            var invalidRowCounts = 0;\n            for (var barcodeColumn /*int*/ = this.barcodeColumnCount + 1; barcodeColumn > 0 && invalidRowCounts < this.ADJUST_ROW_NUMBER_SKIP; barcodeColumn--) {\n                var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n                if (codeword != null) {\n                    invalidRowCounts = DetectionResult.adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword);\n                    if (!codeword.hasValidRowNumber()) {\n                        unadjustedCount++;\n                    }\n                }\n            }\n        }\n        return unadjustedCount;\n    };\n    DetectionResult.prototype.adjustRowNumbersFromLRI = function () {\n        if (this.detectionResultColumns[0] == null) {\n            return 0;\n        }\n        var unadjustedCount = 0;\n        var codewords = this.detectionResultColumns[0].getCodewords();\n        for (var codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n            if (codewords[codewordsRow] == null) {\n                continue;\n            }\n            var rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber();\n            var invalidRowCounts = 0;\n            for (var barcodeColumn /*int*/ = 1; barcodeColumn < this.barcodeColumnCount + 1 && invalidRowCounts < this.ADJUST_ROW_NUMBER_SKIP; barcodeColumn++) {\n                var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n                if (codeword != null) {\n                    invalidRowCounts = DetectionResult.adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword);\n                    if (!codeword.hasValidRowNumber()) {\n                        unadjustedCount++;\n                    }\n                }\n            }\n        }\n        return unadjustedCount;\n    };\n    DetectionResult.adjustRowNumberIfValid = function (rowIndicatorRowNumber, invalidRowCounts, codeword) {\n        if (codeword == null) {\n            return invalidRowCounts;\n        }\n        if (!codeword.hasValidRowNumber()) {\n            if (codeword.isValidRowNumber(rowIndicatorRowNumber)) {\n                codeword.setRowNumber(rowIndicatorRowNumber);\n                invalidRowCounts = 0;\n            }\n            else {\n                ++invalidRowCounts;\n            }\n        }\n        return invalidRowCounts;\n    };\n    DetectionResult.prototype.adjustRowNumbers = function (barcodeColumn, codewordsRow, codewords) {\n        var e_1, _a;\n        var codeword = codewords[codewordsRow];\n        var previousColumnCodewords = this.detectionResultColumns[barcodeColumn - 1].getCodewords();\n        var nextColumnCodewords = previousColumnCodewords;\n        if (this.detectionResultColumns[barcodeColumn + 1] != null) {\n            nextColumnCodewords = this.detectionResultColumns[barcodeColumn + 1].getCodewords();\n        }\n        // let otherCodewords: Codeword[] = new Codeword[14];\n        var otherCodewords = new Array(14);\n        otherCodewords[2] = previousColumnCodewords[codewordsRow];\n        otherCodewords[3] = nextColumnCodewords[codewordsRow];\n        if (codewordsRow > 0) {\n            otherCodewords[0] = codewords[codewordsRow - 1];\n            otherCodewords[4] = previousColumnCodewords[codewordsRow - 1];\n            otherCodewords[5] = nextColumnCodewords[codewordsRow - 1];\n        }\n        if (codewordsRow > 1) {\n            otherCodewords[8] = codewords[codewordsRow - 2];\n            otherCodewords[10] = previousColumnCodewords[codewordsRow - 2];\n            otherCodewords[11] = nextColumnCodewords[codewordsRow - 2];\n        }\n        if (codewordsRow < codewords.length - 1) {\n            otherCodewords[1] = codewords[codewordsRow + 1];\n            otherCodewords[6] = previousColumnCodewords[codewordsRow + 1];\n            otherCodewords[7] = nextColumnCodewords[codewordsRow + 1];\n        }\n        if (codewordsRow < codewords.length - 2) {\n            otherCodewords[9] = codewords[codewordsRow + 2];\n            otherCodewords[12] = previousColumnCodewords[codewordsRow + 2];\n            otherCodewords[13] = nextColumnCodewords[codewordsRow + 2];\n        }\n        try {\n            for (var otherCodewords_1 = __values(otherCodewords), otherCodewords_1_1 = otherCodewords_1.next(); !otherCodewords_1_1.done; otherCodewords_1_1 = otherCodewords_1.next()) {\n                var otherCodeword = otherCodewords_1_1.value;\n                if (DetectionResult.adjustRowNumber(codeword, otherCodeword)) {\n                    return;\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (otherCodewords_1_1 && !otherCodewords_1_1.done && (_a = otherCodewords_1.return)) _a.call(otherCodewords_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    /**\n     * @return true, if row number was adjusted, false otherwise\n     */\n    DetectionResult.adjustRowNumber = function (codeword, otherCodeword) {\n        if (otherCodeword == null) {\n            return false;\n        }\n        if (otherCodeword.hasValidRowNumber() && otherCodeword.getBucket() === codeword.getBucket()) {\n            codeword.setRowNumber(otherCodeword.getRowNumber());\n            return true;\n        }\n        return false;\n    };\n    DetectionResult.prototype.getBarcodeColumnCount = function () {\n        return this.barcodeColumnCount;\n    };\n    DetectionResult.prototype.getBarcodeRowCount = function () {\n        return this.barcodeMetadata.getRowCount();\n    };\n    DetectionResult.prototype.getBarcodeECLevel = function () {\n        return this.barcodeMetadata.getErrorCorrectionLevel();\n    };\n    DetectionResult.prototype.setBoundingBox = function (boundingBox) {\n        this.boundingBox = boundingBox;\n    };\n    DetectionResult.prototype.getBoundingBox = function () {\n        return this.boundingBox;\n    };\n    DetectionResult.prototype.setDetectionResultColumn = function (barcodeColumn, detectionResultColumn) {\n        this.detectionResultColumns[barcodeColumn] = detectionResultColumn;\n    };\n    DetectionResult.prototype.getDetectionResultColumn = function (barcodeColumn) {\n        return this.detectionResultColumns[barcodeColumn];\n    };\n    // @Override\n    DetectionResult.prototype.toString = function () {\n        var rowIndicatorColumn = this.detectionResultColumns[0];\n        if (rowIndicatorColumn == null) {\n            rowIndicatorColumn = this.detectionResultColumns[this.barcodeColumnCount + 1];\n        }\n        // try (\n        var formatter = new Formatter();\n        // ) {\n        for (var codewordsRow /*int*/ = 0; codewordsRow < rowIndicatorColumn.getCodewords().length; codewordsRow++) {\n            formatter.format('CW %3d:', codewordsRow);\n            for (var barcodeColumn /*int*/ = 0; barcodeColumn < this.barcodeColumnCount + 2; barcodeColumn++) {\n                if (this.detectionResultColumns[barcodeColumn] == null) {\n                    formatter.format('    |   ');\n                    continue;\n                }\n                var codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n                if (codeword == null) {\n                    formatter.format('    |   ');\n                    continue;\n                }\n                formatter.format(' %3d|%3d', codeword.getRowNumber(), codeword.getValue());\n            }\n            formatter.format('%n');\n        }\n        return formatter.toString();\n        // }\n    };\n    return DetectionResult;\n}());\nexport default DetectionResult;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417.decoder;\n/**\n * @author Guenther Grau\n */\nvar Codeword = /** @class */ (function () {\n    function Codeword(startX, endX, bucket, value) {\n        this.rowNumber = Codeword.BARCODE_ROW_UNKNOWN;\n        this.startX = Math.trunc(startX);\n        this.endX = Math.trunc(endX);\n        this.bucket = Math.trunc(bucket);\n        this.value = Math.trunc(value);\n    }\n    Codeword.prototype.hasValidRowNumber = function () {\n        return this.isValidRowNumber(this.rowNumber);\n    };\n    Codeword.prototype.isValidRowNumber = function (rowNumber) {\n        return rowNumber !== Codeword.BARCODE_ROW_UNKNOWN && this.bucket === (rowNumber % 3) * 3;\n    };\n    Codeword.prototype.setRowNumberAsRowIndicatorColumn = function () {\n        this.rowNumber = Math.trunc((Math.trunc(this.value / 30)) * 3 + Math.trunc(this.bucket / 3));\n    };\n    Codeword.prototype.getWidth = function () {\n        return this.endX - this.startX;\n    };\n    Codeword.prototype.getStartX = function () {\n        return this.startX;\n    };\n    Codeword.prototype.getEndX = function () {\n        return this.endX;\n    };\n    Codeword.prototype.getBucket = function () {\n        return this.bucket;\n    };\n    Codeword.prototype.getValue = function () {\n        return this.value;\n    };\n    Codeword.prototype.getRowNumber = function () {\n        return this.rowNumber;\n    };\n    Codeword.prototype.setRowNumber = function (rowNumber) {\n        this.rowNumber = rowNumber;\n    };\n    //   @Override\n    Codeword.prototype.toString = function () {\n        return this.rowNumber + '|' + this.value;\n    };\n    Codeword.BARCODE_ROW_UNKNOWN = -1;\n    return Codeword;\n}());\nexport default Codeword;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.common.detector.MathUtils;\nimport MathUtils from '../../common/detector/MathUtils';\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\nimport Float from '../../util/Float';\n/**\n * @author Guenther Grau\n * @author creatale GmbH (christoph.schulz@creatale.de)\n */\nvar PDF417CodewordDecoder = /** @class */ (function () {\n    function PDF417CodewordDecoder() {\n    }\n    /* @note\n     * this action have to be performed before first use of class\n     * - static constructor\n     * working with 32bit float (based from Java logic)\n    */\n    PDF417CodewordDecoder.initialize = function () {\n        // Pre-computes the symbol ratio table.\n        for ( /*int*/var i = 0; i < PDF417Common.SYMBOL_TABLE.length; i++) {\n            var currentSymbol = PDF417Common.SYMBOL_TABLE[i];\n            var currentBit = currentSymbol & 0x1;\n            for ( /*int*/var j = 0; j < PDF417Common.BARS_IN_MODULE; j++) {\n                var size = 0.0;\n                while ((currentSymbol & 0x1) === currentBit) {\n                    size += 1.0;\n                    currentSymbol >>= 1;\n                }\n                currentBit = currentSymbol & 0x1;\n                if (!PDF417CodewordDecoder.RATIOS_TABLE[i]) {\n                    PDF417CodewordDecoder.RATIOS_TABLE[i] = new Array(PDF417Common.BARS_IN_MODULE);\n                }\n                PDF417CodewordDecoder.RATIOS_TABLE[i][PDF417Common.BARS_IN_MODULE - j - 1] = Math.fround(size / PDF417Common.MODULES_IN_CODEWORD);\n            }\n        }\n        this.bSymbolTableReady = true;\n    };\n    PDF417CodewordDecoder.getDecodedValue = function (moduleBitCount) {\n        var decodedValue = PDF417CodewordDecoder.getDecodedCodewordValue(PDF417CodewordDecoder.sampleBitCounts(moduleBitCount));\n        if (decodedValue !== -1) {\n            return decodedValue;\n        }\n        return PDF417CodewordDecoder.getClosestDecodedValue(moduleBitCount);\n    };\n    PDF417CodewordDecoder.sampleBitCounts = function (moduleBitCount) {\n        var bitCountSum = MathUtils.sum(moduleBitCount);\n        var result = new Int32Array(PDF417Common.BARS_IN_MODULE);\n        var bitCountIndex = 0;\n        var sumPreviousBits = 0;\n        for ( /*int*/var i = 0; i < PDF417Common.MODULES_IN_CODEWORD; i++) {\n            var sampleIndex = bitCountSum / (2 * PDF417Common.MODULES_IN_CODEWORD) +\n                (i * bitCountSum) / PDF417Common.MODULES_IN_CODEWORD;\n            if (sumPreviousBits + moduleBitCount[bitCountIndex] <= sampleIndex) {\n                sumPreviousBits += moduleBitCount[bitCountIndex];\n                bitCountIndex++;\n            }\n            result[bitCountIndex]++;\n        }\n        return result;\n    };\n    PDF417CodewordDecoder.getDecodedCodewordValue = function (moduleBitCount) {\n        var decodedValue = PDF417CodewordDecoder.getBitValue(moduleBitCount);\n        return PDF417Common.getCodeword(decodedValue) === -1 ? -1 : decodedValue;\n    };\n    PDF417CodewordDecoder.getBitValue = function (moduleBitCount) {\n        var result = /*long*/ 0;\n        for (var /*int*/ i = 0; i < moduleBitCount.length; i++) {\n            for ( /*int*/var bit = 0; bit < moduleBitCount[i]; bit++) {\n                result = (result << 1) | (i % 2 === 0 ? 1 : 0);\n            }\n        }\n        return Math.trunc(result);\n    };\n    // working with 32bit float (as in Java)\n    PDF417CodewordDecoder.getClosestDecodedValue = function (moduleBitCount) {\n        var bitCountSum = MathUtils.sum(moduleBitCount);\n        var bitCountRatios = new Array(PDF417Common.BARS_IN_MODULE);\n        if (bitCountSum > 1) {\n            for (var /*int*/ i = 0; i < bitCountRatios.length; i++) {\n                bitCountRatios[i] = Math.fround(moduleBitCount[i] / bitCountSum);\n            }\n        }\n        var bestMatchError = Float.MAX_VALUE;\n        var bestMatch = -1;\n        if (!this.bSymbolTableReady) {\n            PDF417CodewordDecoder.initialize();\n        }\n        for ( /*int*/var j = 0; j < PDF417CodewordDecoder.RATIOS_TABLE.length; j++) {\n            var error = 0.0;\n            var ratioTableRow = PDF417CodewordDecoder.RATIOS_TABLE[j];\n            for ( /*int*/var k = 0; k < PDF417Common.BARS_IN_MODULE; k++) {\n                var diff = Math.fround(ratioTableRow[k] - bitCountRatios[k]);\n                error += Math.fround(diff * diff);\n                if (error >= bestMatchError) {\n                    break;\n                }\n            }\n            if (error < bestMatchError) {\n                bestMatchError = error;\n                bestMatch = PDF417Common.SYMBOL_TABLE[j];\n            }\n        }\n        return bestMatch;\n    };\n    // flag that the table is ready for use\n    PDF417CodewordDecoder.bSymbolTableReady = false;\n    PDF417CodewordDecoder.RATIOS_TABLE = new Array(PDF417Common.SYMBOL_TABLE.length).map(function (x) { return x = new Array(PDF417Common.BARS_IN_MODULE); });\n    return PDF417CodewordDecoder;\n}());\nexport default PDF417CodewordDecoder;\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.pdf417;\n/**\n * @author Guenther Grau\n */\nvar PDF417ResultMetadata = /** @class */ (function () {\n    function PDF417ResultMetadata() {\n        this.segmentCount = -1;\n        this.fileSize = -1;\n        this.timestamp = -1;\n        this.checksum = -1;\n    }\n    /**\n     * The Segment ID represents the segment of the whole file distributed over different symbols.\n     *\n     * @return File segment index\n     */\n    PDF417ResultMetadata.prototype.getSegmentIndex = function () {\n        return this.segmentIndex;\n    };\n    PDF417ResultMetadata.prototype.setSegmentIndex = function (segmentIndex) {\n        this.segmentIndex = segmentIndex;\n    };\n    /**\n     * Is the same for each related PDF417 symbol\n     *\n     * @return File ID\n     */\n    PDF417ResultMetadata.prototype.getFileId = function () {\n        return this.fileId;\n    };\n    PDF417ResultMetadata.prototype.setFileId = function (fileId) {\n        this.fileId = fileId;\n    };\n    /**\n     * @return always null\n     * @deprecated use dedicated already parsed fields\n     */\n    //   @Deprecated\n    PDF417ResultMetadata.prototype.getOptionalData = function () {\n        return this.optionalData;\n    };\n    /**\n     * @param optionalData old optional data format as int array\n     * @deprecated parse and use new fields\n     */\n    //   @Deprecated\n    PDF417ResultMetadata.prototype.setOptionalData = function (optionalData) {\n        this.optionalData = optionalData;\n    };\n    /**\n     * @return true if it is the last segment\n     */\n    PDF417ResultMetadata.prototype.isLastSegment = function () {\n        return this.lastSegment;\n    };\n    PDF417ResultMetadata.prototype.setLastSegment = function (lastSegment) {\n        this.lastSegment = lastSegment;\n    };\n    /**\n     * @return count of segments, -1 if not set\n     */\n    PDF417ResultMetadata.prototype.getSegmentCount = function () {\n        return this.segmentCount;\n    };\n    PDF417ResultMetadata.prototype.setSegmentCount = function (segmentCount /*int*/) {\n        this.segmentCount = segmentCount;\n    };\n    PDF417ResultMetadata.prototype.getSender = function () {\n        return this.sender || null;\n    };\n    PDF417ResultMetadata.prototype.setSender = function (sender) {\n        this.sender = sender;\n    };\n    PDF417ResultMetadata.prototype.getAddressee = function () {\n        return this.addressee || null;\n    };\n    PDF417ResultMetadata.prototype.setAddressee = function (addressee) {\n        this.addressee = addressee;\n    };\n    /**\n     * Filename of the encoded file\n     *\n     * @return filename\n     */\n    PDF417ResultMetadata.prototype.getFileName = function () {\n        return this.fileName;\n    };\n    PDF417ResultMetadata.prototype.setFileName = function (fileName) {\n        this.fileName = fileName;\n    };\n    /**\n     * filesize in bytes of the encoded file\n     *\n     * @return filesize in bytes, -1 if not set\n     */\n    PDF417ResultMetadata.prototype.getFileSize = function () {\n        return this.fileSize;\n    };\n    PDF417ResultMetadata.prototype.setFileSize = function (fileSize /*long*/) {\n        this.fileSize = fileSize;\n    };\n    /**\n     * 16-bit CRC checksum using CCITT-16\n     *\n     * @return crc checksum, -1 if not set\n     */\n    PDF417ResultMetadata.prototype.getChecksum = function () {\n        return this.checksum;\n    };\n    PDF417ResultMetadata.prototype.setChecksum = function (checksum /*int*/) {\n        this.checksum = checksum;\n    };\n    /**\n     * unix epock timestamp, elapsed seconds since 1970-01-01\n     *\n     * @return elapsed seconds, -1 if not set\n     */\n    PDF417ResultMetadata.prototype.getTimestamp = function () {\n        return this.timestamp;\n    };\n    PDF417ResultMetadata.prototype.setTimestamp = function (timestamp /*long*/) {\n        this.timestamp = timestamp;\n    };\n    return PDF417ResultMetadata;\n}());\nexport default PDF417ResultMetadata;\n","/**\n * Ponyfill for Java's Long class.\n */\nvar Long = /** @class */ (function () {\n    function Long() {\n    }\n    /**\n     * Parses a string to a number, since JS has no really Int64.\n     *\n     * @param num Numeric string.\n     * @param radix Destination radix.\n     */\n    Long.parseLong = function (num, radix) {\n        if (radix === void 0) { radix = undefined; }\n        return parseInt(num, radix);\n    };\n    return Long;\n}());\nexport default Long;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar NullPointerException = /** @class */ (function (_super) {\n    __extends(NullPointerException, _super);\n    function NullPointerException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    NullPointerException.kind = 'NullPointerException';\n    return NullPointerException;\n}(Exception));\nexport default NullPointerException;\n","import IndexOutOfBoundsException from '../IndexOutOfBoundsException';\nimport NullPointerException from '../NullPointerException';\n/*\n * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * This code is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License version 2 only, as\n * published by the Free Software Foundation.  Oracle designates this\n * particular file as subject to the \"Classpath\" exception as provided\n * by Oracle in the LICENSE file that accompanied this code.\n *\n * This code is distributed in the hope that it will be useful, but WITHOUT\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n * version 2 for more details (a copy is included in the LICENSE file that\n * accompanied this code).\n *\n * You should have received a copy of the GNU General Public License version\n * 2 along with this work; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n *\n * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\n * or visit www.oracle.com if you need additional information or have any\n * questions.\n */\n// package java.io;\n/**\n * This abstract class is the superclass of all classes representing\n * an output stream of bytes. An output stream accepts output bytes\n * and sends them to some sink.\n * <p>\n * Applications that need to define a subclass of\n * <code>OutputStream</code> must always provide at least a method\n * that writes one byte of output.\n *\n * @author  Arthur van Hoff\n * @see     java.io.BufferedOutputStream\n * @see     java.io.ByteArrayOutputStream\n * @see     java.io.DataOutputStream\n * @see     java.io.FilterOutputStream\n * @see     java.io.InputStream\n * @see     java.io.OutputStream#write(int)\n * @since   JDK1.0\n */\nvar OutputStream /*implements Closeable, Flushable*/ = /** @class */ (function () {\n    function OutputStream() {\n    }\n    /**\n     * Writes <code>b.length</code> bytes from the specified byte array\n     * to this output stream. The general contract for <code>write(b)</code>\n     * is that it should have exactly the same effect as the call\n     * <code>write(b, 0, b.length)</code>.\n     *\n     * @param      b   the data.\n     * @exception  IOException  if an I/O error occurs.\n     * @see        java.io.OutputStream#write(byte[], int, int)\n     */\n    OutputStream.prototype.writeBytes = function (b) {\n        this.writeBytesOffset(b, 0, b.length);\n    };\n    /**\n     * Writes <code>len</code> bytes from the specified byte array\n     * starting at offset <code>off</code> to this output stream.\n     * The general contract for <code>write(b, off, len)</code> is that\n     * some of the bytes in the array <code>b</code> are written to the\n     * output stream in order; element <code>b[off]</code> is the first\n     * byte written and <code>b[off+len-1]</code> is the last byte written\n     * by this operation.\n     * <p>\n     * The <code>write</code> method of <code>OutputStream</code> calls\n     * the write method of one argument on each of the bytes to be\n     * written out. Subclasses are encouraged to override this method and\n     * provide a more efficient implementation.\n     * <p>\n     * If <code>b</code> is <code>null</code>, a\n     * <code>NullPointerException</code> is thrown.\n     * <p>\n     * If <code>off</code> is negative, or <code>len</code> is negative, or\n     * <code>off+len</code> is greater than the length of the array\n     * <code>b</code>, then an <tt>IndexOutOfBoundsException</tt> is thrown.\n     *\n     * @param      b     the data.\n     * @param      off   the start offset in the data.\n     * @param      len   the number of bytes to write.\n     * @exception  IOException  if an I/O error occurs. In particular,\n     *             an <code>IOException</code> is thrown if the output\n     *             stream is closed.\n     */\n    OutputStream.prototype.writeBytesOffset = function (b, off, len) {\n        if (b == null) {\n            throw new NullPointerException();\n        }\n        else if ((off < 0) || (off > b.length) || (len < 0) ||\n            ((off + len) > b.length) || ((off + len) < 0)) {\n            throw new IndexOutOfBoundsException();\n        }\n        else if (len === 0) {\n            return;\n        }\n        for (var i = 0; i < len; i++) {\n            this.write(b[off + i]);\n        }\n    };\n    /**\n     * Flushes this output stream and forces any buffered output bytes\n     * to be written out. The general contract of <code>flush</code> is\n     * that calling it is an indication that, if any bytes previously\n     * written have been buffered by the implementation of the output\n     * stream, such bytes should immediately be written to their\n     * intended destination.\n     * <p>\n     * If the intended destination of this stream is an abstraction provided by\n     * the underlying operating system, for example a file, then flushing the\n     * stream guarantees only that bytes previously written to the stream are\n     * passed to the operating system for writing; it does not guarantee that\n     * they are actually written to a physical device such as a disk drive.\n     * <p>\n     * The <code>flush</code> method of <code>OutputStream</code> does nothing.\n     *\n     * @exception  IOException  if an I/O error occurs.\n     */\n    OutputStream.prototype.flush = function () {\n    };\n    /**\n     * Closes this output stream and releases any system resources\n     * associated with this stream. The general contract of <code>close</code>\n     * is that it closes the output stream. A closed stream cannot perform\n     * output operations and cannot be reopened.\n     * <p>\n     * The <code>close</code> method of <code>OutputStream</code> does nothing.\n     *\n     * @exception  IOException  if an I/O error occurs.\n     */\n    OutputStream.prototype.close = function () {\n    };\n    return OutputStream;\n}());\nexport default OutputStream;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar OutOfMemoryError = /** @class */ (function (_super) {\n    __extends(OutOfMemoryError, _super);\n    function OutOfMemoryError() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return OutOfMemoryError;\n}(Exception));\nexport default OutOfMemoryError;\n","/*\n * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * This code is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License version 2 only, as\n * published by the Free Software Foundation.  Oracle designates this\n * particular file as subject to the \"Classpath\" exception as provided\n * by Oracle in the LICENSE file that accompanied this code.\n *\n * This code is distributed in the hope that it will be useful, but WITHOUT\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n * version 2 for more details (a copy is included in the LICENSE file that\n * accompanied this code).\n *\n * You should have received a copy of the GNU General Public License version\n * 2 along with this work; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n *\n * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\n * or visit www.oracle.com if you need additional information or have any\n * questions.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n// package java.io;\n// import java.util.Arrays;\nimport Arrays from './Arrays';\nimport OutputStream from './OutputStream';\nimport Integer from './Integer';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport OutOfMemoryError from '../OutOfMemoryError';\nimport System from './System';\nimport IndexOutOfBoundsException from '../IndexOutOfBoundsException';\n/**\n * This class implements an output stream in which the data is\n * written into a byte array. The buffer automatically grows as data\n * is written to it.\n * The data can be retrieved using <code>toByteArray()</code> and\n * <code>toString()</code>.\n * <p>\n * Closing a <tt>ByteArrayOutputStream</tt> has no effect. The methods in\n * this class can be called after the stream has been closed without\n * generating an <tt>IOException</tt>.\n *\n * @author  Arthur van Hoff\n * @since   JDK1.0\n */\nvar ByteArrayOutputStream = /** @class */ (function (_super) {\n    __extends(ByteArrayOutputStream, _super);\n    /**\n     * Creates a new byte array output stream. The buffer capacity is\n     * initially 32 bytes, though its size increases if necessary.\n     */\n    // public constructor() {\n    //     this(32);\n    // }\n    /**\n     * Creates a new byte array output stream, with a buffer capacity of\n     * the specified size, in bytes.\n     *\n     * @param   size   the initial size.\n     * @exception  IllegalArgumentException if size is negative.\n     */\n    function ByteArrayOutputStream(size) {\n        if (size === void 0) { size = 32; }\n        var _this = _super.call(this) || this;\n        /**\n         * The number of valid bytes in the buffer.\n         */\n        _this.count = 0;\n        if (size < 0) {\n            throw new IllegalArgumentException('Negative initial size: '\n                + size);\n        }\n        _this.buf = new Uint8Array(size);\n        return _this;\n    }\n    /**\n     * Increases the capacity if necessary to ensure that it can hold\n     * at least the number of elements specified by the minimum\n     * capacity argument.\n     *\n     * @param minCapacity the desired minimum capacity\n     * @throws OutOfMemoryError if {@code minCapacity < 0}.  This is\n     * interpreted as a request for the unsatisfiably large capacity\n     * {@code (long) Integer.MAX_VALUE + (minCapacity - Integer.MAX_VALUE)}.\n     */\n    ByteArrayOutputStream.prototype.ensureCapacity = function (minCapacity) {\n        // overflow-conscious code\n        if (minCapacity - this.buf.length > 0)\n            this.grow(minCapacity);\n    };\n    /**\n     * Increases the capacity to ensure that it can hold at least the\n     * number of elements specified by the minimum capacity argument.\n     *\n     * @param minCapacity the desired minimum capacity\n     */\n    ByteArrayOutputStream.prototype.grow = function (minCapacity) {\n        // overflow-conscious code\n        var oldCapacity = this.buf.length;\n        var newCapacity = oldCapacity << 1;\n        if (newCapacity - minCapacity < 0)\n            newCapacity = minCapacity;\n        if (newCapacity < 0) {\n            if (minCapacity < 0) // overflow\n                throw new OutOfMemoryError();\n            newCapacity = Integer.MAX_VALUE;\n        }\n        this.buf = Arrays.copyOfUint8Array(this.buf, newCapacity);\n    };\n    /**\n     * Writes the specified byte to this byte array output stream.\n     *\n     * @param   b   the byte to be written.\n     */\n    ByteArrayOutputStream.prototype.write = function (b) {\n        this.ensureCapacity(this.count + 1);\n        this.buf[this.count] = /*(byte)*/ b;\n        this.count += 1;\n    };\n    /**\n     * Writes <code>len</code> bytes from the specified byte array\n     * starting at offset <code>off</code> to this byte array output stream.\n     *\n     * @param   b     the data.\n     * @param   off   the start offset in the data.\n     * @param   len   the number of bytes to write.\n     */\n    ByteArrayOutputStream.prototype.writeBytesOffset = function (b, off, len) {\n        if ((off < 0) || (off > b.length) || (len < 0) ||\n            ((off + len) - b.length > 0)) {\n            throw new IndexOutOfBoundsException();\n        }\n        this.ensureCapacity(this.count + len);\n        System.arraycopy(b, off, this.buf, this.count, len);\n        this.count += len;\n    };\n    /**\n     * Writes the complete contents of this byte array output stream to\n     * the specified output stream argument, as if by calling the output\n     * stream's write method using <code>out.write(buf, 0, count)</code>.\n     *\n     * @param      out   the output stream to which to write the data.\n     * @exception  IOException  if an I/O error occurs.\n     */\n    ByteArrayOutputStream.prototype.writeTo = function (out) {\n        out.writeBytesOffset(this.buf, 0, this.count);\n    };\n    /**\n     * Resets the <code>count</code> field of this byte array output\n     * stream to zero, so that all currently accumulated output in the\n     * output stream is discarded. The output stream can be used again,\n     * reusing the already allocated buffer space.\n     *\n     * @see     java.io.ByteArrayInputStream#count\n     */\n    ByteArrayOutputStream.prototype.reset = function () {\n        this.count = 0;\n    };\n    /**\n     * Creates a newly allocated byte array. Its size is the current\n     * size of this output stream and the valid contents of the buffer\n     * have been copied into it.\n     *\n     * @return  the current contents of this output stream, as a byte array.\n     * @see     java.io.ByteArrayOutputStream#size()\n     */\n    ByteArrayOutputStream.prototype.toByteArray = function () {\n        return Arrays.copyOfUint8Array(this.buf, this.count);\n    };\n    /**\n     * Returns the current size of the buffer.\n     *\n     * @return  the value of the <code>count</code> field, which is the number\n     *          of valid bytes in this output stream.\n     * @see     java.io.ByteArrayOutputStream#count\n     */\n    ByteArrayOutputStream.prototype.size = function () {\n        return this.count;\n    };\n    ByteArrayOutputStream.prototype.toString = function (param) {\n        if (!param) {\n            return this.toString_void();\n        }\n        if (typeof param === 'string') {\n            return this.toString_string(param);\n        }\n        return this.toString_number(param);\n    };\n    /**\n     * Converts the buffer's contents into a string decoding bytes using the\n     * platform's default character set. The length of the new <tt>String</tt>\n     * is a function of the character set, and hence may not be equal to the\n     * size of the buffer.\n     *\n     * <p> This method always replaces malformed-input and unmappable-character\n     * sequences with the default replacement string for the platform's\n     * default character set. The {@linkplain java.nio.charset.CharsetDecoder}\n     * class should be used when more control over the decoding process is\n     * required.\n     *\n     * @return String decoded from the buffer's contents.\n     * @since  JDK1.1\n     */\n    ByteArrayOutputStream.prototype.toString_void = function () {\n        return new String(this.buf /*, 0, this.count*/).toString();\n    };\n    /**\n     * Converts the buffer's contents into a string by decoding the bytes using\n     * the specified {@link java.nio.charset.Charset charsetName}. The length of\n     * the new <tt>String</tt> is a function of the charset, and hence may not be\n     * equal to the length of the byte array.\n     *\n     * <p> This method always replaces malformed-input and unmappable-character\n     * sequences with this charset's default replacement string. The {@link\n     * java.nio.charset.CharsetDecoder} class should be used when more control\n     * over the decoding process is required.\n     *\n     * @param  charsetName  the name of a supported\n     *              {@linkplain java.nio.charset.Charset </code>charset<code>}\n     * @return String decoded from the buffer's contents.\n     * @exception  UnsupportedEncodingException\n     *             If the named charset is not supported\n     * @since   JDK1.1\n     */\n    ByteArrayOutputStream.prototype.toString_string = function (charsetName) {\n        return new String(this.buf /*, 0, this.count, charsetName*/).toString();\n    };\n    /**\n     * Creates a newly allocated string. Its size is the current size of\n     * the output stream and the valid contents of the buffer have been\n     * copied into it. Each character <i>c</i> in the resulting string is\n     * constructed from the corresponding element <i>b</i> in the byte\n     * array such that:\n     * <blockquote><pre>\n     *     c == (char)(((hibyte &amp; 0xff) &lt;&lt; 8) | (b &amp; 0xff))\n     * </pre></blockquote>\n     *\n     * @deprecated This method does not properly convert bytes into characters.\n     * As of JDK&nbsp;1.1, the preferred way to do this is via the\n     * <code>toString(String enc)</code> method, which takes an encoding-name\n     * argument, or the <code>toString()</code> method, which uses the\n     * platform's default character encoding.\n     *\n     * @param      hibyte    the high byte of each resulting Unicode character.\n     * @return     the current contents of the output stream, as a string.\n     * @see        java.io.ByteArrayOutputStream#size()\n     * @see        java.io.ByteArrayOutputStream#toString(String)\n     * @see        java.io.ByteArrayOutputStream#toString()\n     */\n    // @Deprecated\n    ByteArrayOutputStream.prototype.toString_number = function (hibyte) {\n        return new String(this.buf /*, hibyte, 0, this.count*/).toString();\n    };\n    /**\n     * Closing a <tt>ByteArrayOutputStream</tt> has no effect. The methods in\n     * this class can be called after the stream has been closed without\n     * generating an <tt>IOException</tt>.\n     * <p>\n     *\n     * @throws IOException\n     */\n    ByteArrayOutputStream.prototype.close = function () {\n    };\n    return ByteArrayOutputStream;\n}(OutputStream));\nexport default ByteArrayOutputStream;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing {*/\n/**\n * These are a set of hints that you may pass to Writers to specify their behavior.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar EncodeHintType;\n(function (EncodeHintType) {\n    /**\n     * Specifies what degree of error correction to use, for example in QR Codes.\n     * Type depends on the encoder. For example for QR codes it's type\n     * {@link com.google.zxing.qrcode.decoder.ErrorCorrectionLevel ErrorCorrectionLevel}.\n     * For Aztec it is of type {@link Integer}, representing the minimal percentage of error correction words.\n     * For PDF417 it is of type {@link Integer}, valid values being 0 to 8.\n     * In all cases, it can also be a {@link String} representation of the desired value as well.\n     * Note: an Aztec symbol should have a minimum of 25% EC words.\n     */\n    EncodeHintType[EncodeHintType[\"ERROR_CORRECTION\"] = 0] = \"ERROR_CORRECTION\";\n    /**\n     * Specifies what character encoding to use where applicable (type {@link String})\n     */\n    EncodeHintType[EncodeHintType[\"CHARACTER_SET\"] = 1] = \"CHARACTER_SET\";\n    /**\n     * Specifies the matrix shape for Data Matrix (type {@link com.google.zxing.datamatrix.encoder.SymbolShapeHint})\n     */\n    EncodeHintType[EncodeHintType[\"DATA_MATRIX_SHAPE\"] = 2] = \"DATA_MATRIX_SHAPE\";\n    /**\n     * Specifies a minimum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.\n     *\n     * @deprecated use width/height params in\n     * {@link com.google.zxing.datamatrix.DataMatrixWriter#encode(String, BarcodeFormat, int, int)}\n     */\n    /*@Deprecated*/\n    EncodeHintType[EncodeHintType[\"MIN_SIZE\"] = 3] = \"MIN_SIZE\";\n    /**\n     * Specifies a maximum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.\n     *\n     * @deprecated without replacement\n     */\n    /*@Deprecated*/\n    EncodeHintType[EncodeHintType[\"MAX_SIZE\"] = 4] = \"MAX_SIZE\";\n    /**\n     * Specifies margin, in pixels, to use when generating the barcode. The meaning can vary\n     * by format; for example it controls margin before and after the barcode horizontally for\n     * most 1D formats. (Type {@link Integer}, or {@link String} representation of the integer value).\n     */\n    EncodeHintType[EncodeHintType[\"MARGIN\"] = 5] = \"MARGIN\";\n    /**\n     * Specifies whether to use compact mode for PDF417 (type {@link Boolean}, or \"true\" or \"false\"\n     * {@link String} value).\n     */\n    EncodeHintType[EncodeHintType[\"PDF417_COMPACT\"] = 6] = \"PDF417_COMPACT\";\n    /**\n     * Specifies what compaction mode to use for PDF417 (type\n     * {@link com.google.zxing.pdf417.encoder.Compaction Compaction} or {@link String} value of one of its\n     * enum values).\n     */\n    EncodeHintType[EncodeHintType[\"PDF417_COMPACTION\"] = 7] = \"PDF417_COMPACTION\";\n    /**\n     * Specifies the minimum and maximum number of rows and columns for PDF417 (type\n     * {@link com.google.zxing.pdf417.encoder.Dimensions Dimensions}).\n     */\n    EncodeHintType[EncodeHintType[\"PDF417_DIMENSIONS\"] = 8] = \"PDF417_DIMENSIONS\";\n    /**\n     * Specifies the required number of layers for an Aztec code.\n     * A negative number (-1, -2, -3, -4) specifies a compact Aztec code.\n     * 0 indicates to use the minimum number of layers (the default).\n     * A positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code.\n     * (Type {@link Integer}, or {@link String} representation of the integer value).\n     */\n    EncodeHintType[EncodeHintType[\"AZTEC_LAYERS\"] = 9] = \"AZTEC_LAYERS\";\n    /**\n     * Specifies the exact version of QR code to be encoded.\n     * (Type {@link Integer}, or {@link String} representation of the integer value).\n     */\n    EncodeHintType[EncodeHintType[\"QR_VERSION\"] = 10] = \"QR_VERSION\";\n})(EncodeHintType || (EncodeHintType = {}));\nexport default EncodeHintType;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417.decoder;\n// import com.google.zxing.ChecksumException;\nimport ChecksumException from '../../ChecksumException';\n// import com.google.zxing.FormatException;\nimport FormatException from '../../FormatException';\n// import com.google.zxing.NotFoundException;\nimport NotFoundException from '../../NotFoundException';\n// import com.google.zxing.common.detector.MathUtils;\nimport MathUtils from '../../common/detector/MathUtils';\n// import com.google.zxing.pdf417.PDF417Common;\nimport PDF417Common from '../PDF417Common';\n// import com.google.zxing.pdf417.decoder.ec.ErrorCorrection;\nimport ErrorCorrection from './ec/ErrorCorrection';\n// local\nimport BoundingBox from './BoundingBox';\nimport DetectionResultRowIndicatorColumn from './DetectionResultRowIndicatorColumn';\nimport DetectionResult from './DetectionResult';\nimport DetectionResultColumn from './DetectionResultColumn';\nimport Codeword from './Codeword';\nimport BarcodeValue from './BarcodeValue';\nimport PDF417CodewordDecoder from './PDF417CodewordDecoder';\nimport DecodedBitStreamParser from './DecodedBitStreamParser';\n// utils\nimport Formatter from '../../util/Formatter';\n// import java.util.ArrayList;\n// import java.util.Collection;\n// import java.util.Formatter;\n// import java.util.List;\n/**\n * @author Guenther Grau\n */\nvar PDF417ScanningDecoder = /** @class */ (function () {\n    function PDF417ScanningDecoder() {\n    }\n    /**\n     * @TODO don't pass in minCodewordWidth and maxCodewordWidth, pass in barcode columns for start and stop pattern\n     *\n     * columns. That way width can be deducted from the pattern column.\n     * This approach also allows to detect more details about the barcode, e.g. if a bar type (white or black) is wider\n     * than it should be. This can happen if the scanner used a bad blackpoint.\n     *\n     * @param BitMatrix\n     * @param image\n     * @param ResultPoint\n     * @param imageTopLeft\n     * @param ResultPoint\n     * @param imageBottomLeft\n     * @param ResultPoint\n     * @param imageTopRight\n     * @param ResultPoint\n     * @param imageBottomRight\n     * @param int\n     * @param minCodewordWidth\n     * @param int\n     * @param maxCodewordWidth\n     *\n     * @throws NotFoundException\n     * @throws FormatException\n     * @throws ChecksumException\n     */\n    PDF417ScanningDecoder.decode = function (image, imageTopLeft, imageBottomLeft, imageTopRight, imageBottomRight, minCodewordWidth, maxCodewordWidth) {\n        var boundingBox = new BoundingBox(image, imageTopLeft, imageBottomLeft, imageTopRight, imageBottomRight);\n        var leftRowIndicatorColumn = null;\n        var rightRowIndicatorColumn = null;\n        var detectionResult;\n        for (var firstPass /*boolean*/ = true;; firstPass = false) {\n            if (imageTopLeft != null) {\n                leftRowIndicatorColumn = PDF417ScanningDecoder.getRowIndicatorColumn(image, boundingBox, imageTopLeft, true, minCodewordWidth, maxCodewordWidth);\n            }\n            if (imageTopRight != null) {\n                rightRowIndicatorColumn = PDF417ScanningDecoder.getRowIndicatorColumn(image, boundingBox, imageTopRight, false, minCodewordWidth, maxCodewordWidth);\n            }\n            detectionResult = PDF417ScanningDecoder.merge(leftRowIndicatorColumn, rightRowIndicatorColumn);\n            if (detectionResult == null) {\n                throw NotFoundException.getNotFoundInstance();\n            }\n            var resultBox = detectionResult.getBoundingBox();\n            if (firstPass && resultBox != null &&\n                (resultBox.getMinY() < boundingBox.getMinY() || resultBox.getMaxY() > boundingBox.getMaxY())) {\n                boundingBox = resultBox;\n            }\n            else {\n                break;\n            }\n        }\n        detectionResult.setBoundingBox(boundingBox);\n        var maxBarcodeColumn = detectionResult.getBarcodeColumnCount() + 1;\n        detectionResult.setDetectionResultColumn(0, leftRowIndicatorColumn);\n        detectionResult.setDetectionResultColumn(maxBarcodeColumn, rightRowIndicatorColumn);\n        var leftToRight = leftRowIndicatorColumn != null;\n        for (var barcodeColumnCount /*int*/ = 1; barcodeColumnCount <= maxBarcodeColumn; barcodeColumnCount++) {\n            var barcodeColumn = leftToRight ? barcodeColumnCount : maxBarcodeColumn - barcodeColumnCount;\n            if (detectionResult.getDetectionResultColumn(barcodeColumn) !== /* null */ undefined) {\n                // This will be the case for the opposite row indicator column, which doesn't need to be decoded again.\n                continue;\n            }\n            var detectionResultColumn = void 0;\n            if (barcodeColumn === 0 || barcodeColumn === maxBarcodeColumn) {\n                detectionResultColumn = new DetectionResultRowIndicatorColumn(boundingBox, barcodeColumn === 0);\n            }\n            else {\n                detectionResultColumn = new DetectionResultColumn(boundingBox);\n            }\n            detectionResult.setDetectionResultColumn(barcodeColumn, detectionResultColumn);\n            var startColumn = -1;\n            var previousStartColumn = startColumn;\n            // TODO start at a row for which we know the start position, then detect upwards and downwards from there.\n            for (var imageRow /*int*/ = boundingBox.getMinY(); imageRow <= boundingBox.getMaxY(); imageRow++) {\n                startColumn = PDF417ScanningDecoder.getStartColumn(detectionResult, barcodeColumn, imageRow, leftToRight);\n                if (startColumn < 0 || startColumn > boundingBox.getMaxX()) {\n                    if (previousStartColumn === -1) {\n                        continue;\n                    }\n                    startColumn = previousStartColumn;\n                }\n                var codeword = PDF417ScanningDecoder.detectCodeword(image, boundingBox.getMinX(), boundingBox.getMaxX(), leftToRight, startColumn, imageRow, minCodewordWidth, maxCodewordWidth);\n                if (codeword != null) {\n                    detectionResultColumn.setCodeword(imageRow, codeword);\n                    previousStartColumn = startColumn;\n                    minCodewordWidth = Math.min(minCodewordWidth, codeword.getWidth());\n                    maxCodewordWidth = Math.max(maxCodewordWidth, codeword.getWidth());\n                }\n            }\n        }\n        return PDF417ScanningDecoder.createDecoderResult(detectionResult);\n    };\n    /**\n     *\n     * @param leftRowIndicatorColumn\n     * @param rightRowIndicatorColumn\n     *\n     * @throws NotFoundException\n     */\n    PDF417ScanningDecoder.merge = function (leftRowIndicatorColumn, rightRowIndicatorColumn) {\n        if (leftRowIndicatorColumn == null && rightRowIndicatorColumn == null) {\n            return null;\n        }\n        var barcodeMetadata = PDF417ScanningDecoder.getBarcodeMetadata(leftRowIndicatorColumn, rightRowIndicatorColumn);\n        if (barcodeMetadata == null) {\n            return null;\n        }\n        var boundingBox = BoundingBox.merge(PDF417ScanningDecoder.adjustBoundingBox(leftRowIndicatorColumn), PDF417ScanningDecoder.adjustBoundingBox(rightRowIndicatorColumn));\n        return new DetectionResult(barcodeMetadata, boundingBox);\n    };\n    /**\n     *\n     * @param rowIndicatorColumn\n     *\n     * @throws NotFoundException\n     */\n    PDF417ScanningDecoder.adjustBoundingBox = function (rowIndicatorColumn) {\n        var e_1, _a;\n        if (rowIndicatorColumn == null) {\n            return null;\n        }\n        var rowHeights = rowIndicatorColumn.getRowHeights();\n        if (rowHeights == null) {\n            return null;\n        }\n        var maxRowHeight = PDF417ScanningDecoder.getMax(rowHeights);\n        var missingStartRows = 0;\n        try {\n            for (var rowHeights_1 = __values(rowHeights), rowHeights_1_1 = rowHeights_1.next(); !rowHeights_1_1.done; rowHeights_1_1 = rowHeights_1.next()) {\n                var rowHeight = rowHeights_1_1.value /*int*/;\n                missingStartRows += maxRowHeight - rowHeight;\n                if (rowHeight > 0) {\n                    break;\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (rowHeights_1_1 && !rowHeights_1_1.done && (_a = rowHeights_1.return)) _a.call(rowHeights_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        var codewords = rowIndicatorColumn.getCodewords();\n        for (var row /*int*/ = 0; missingStartRows > 0 && codewords[row] == null; row++) {\n            missingStartRows--;\n        }\n        var missingEndRows = 0;\n        for (var row /*int*/ = rowHeights.length - 1; row >= 0; row--) {\n            missingEndRows += maxRowHeight - rowHeights[row];\n            if (rowHeights[row] > 0) {\n                break;\n            }\n        }\n        for (var row /*int*/ = codewords.length - 1; missingEndRows > 0 && codewords[row] == null; row--) {\n            missingEndRows--;\n        }\n        return rowIndicatorColumn.getBoundingBox().addMissingRows(missingStartRows, missingEndRows, rowIndicatorColumn.isLeft());\n    };\n    PDF417ScanningDecoder.getMax = function (values) {\n        var e_2, _a;\n        var maxValue = -1;\n        try {\n            for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n                var value = values_1_1.value /*int*/;\n                maxValue = Math.max(maxValue, value);\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        return maxValue;\n    };\n    PDF417ScanningDecoder.getBarcodeMetadata = function (leftRowIndicatorColumn, rightRowIndicatorColumn) {\n        var leftBarcodeMetadata;\n        if (leftRowIndicatorColumn == null ||\n            (leftBarcodeMetadata = leftRowIndicatorColumn.getBarcodeMetadata()) == null) {\n            return rightRowIndicatorColumn == null ? null : rightRowIndicatorColumn.getBarcodeMetadata();\n        }\n        var rightBarcodeMetadata;\n        if (rightRowIndicatorColumn == null ||\n            (rightBarcodeMetadata = rightRowIndicatorColumn.getBarcodeMetadata()) == null) {\n            return leftBarcodeMetadata;\n        }\n        if (leftBarcodeMetadata.getColumnCount() !== rightBarcodeMetadata.getColumnCount() &&\n            leftBarcodeMetadata.getErrorCorrectionLevel() !== rightBarcodeMetadata.getErrorCorrectionLevel() &&\n            leftBarcodeMetadata.getRowCount() !== rightBarcodeMetadata.getRowCount()) {\n            return null;\n        }\n        return leftBarcodeMetadata;\n    };\n    PDF417ScanningDecoder.getRowIndicatorColumn = function (image, boundingBox, startPoint, leftToRight, minCodewordWidth, maxCodewordWidth) {\n        var rowIndicatorColumn = new DetectionResultRowIndicatorColumn(boundingBox, leftToRight);\n        for (var i /*int*/ = 0; i < 2; i++) {\n            var increment = i === 0 ? 1 : -1;\n            var startColumn = Math.trunc(Math.trunc(startPoint.getX()));\n            for (var imageRow /*int*/ = Math.trunc(Math.trunc(startPoint.getY())); imageRow <= boundingBox.getMaxY() &&\n                imageRow >= boundingBox.getMinY(); imageRow += increment) {\n                var codeword = PDF417ScanningDecoder.detectCodeword(image, 0, image.getWidth(), leftToRight, startColumn, imageRow, minCodewordWidth, maxCodewordWidth);\n                if (codeword != null) {\n                    rowIndicatorColumn.setCodeword(imageRow, codeword);\n                    if (leftToRight) {\n                        startColumn = codeword.getStartX();\n                    }\n                    else {\n                        startColumn = codeword.getEndX();\n                    }\n                }\n            }\n        }\n        return rowIndicatorColumn;\n    };\n    /**\n     *\n     * @param detectionResult\n     * @param BarcodeValue\n     * @param param2\n     * @param param3\n     * @param barcodeMatrix\n     *\n     * @throws NotFoundException\n     */\n    PDF417ScanningDecoder.adjustCodewordCount = function (detectionResult, barcodeMatrix) {\n        var barcodeMatrix01 = barcodeMatrix[0][1];\n        var numberOfCodewords = barcodeMatrix01.getValue();\n        var calculatedNumberOfCodewords = detectionResult.getBarcodeColumnCount() *\n            detectionResult.getBarcodeRowCount() -\n            PDF417ScanningDecoder.getNumberOfECCodeWords(detectionResult.getBarcodeECLevel());\n        if (numberOfCodewords.length === 0) {\n            if (calculatedNumberOfCodewords < 1 || calculatedNumberOfCodewords > PDF417Common.MAX_CODEWORDS_IN_BARCODE) {\n                throw NotFoundException.getNotFoundInstance();\n            }\n            barcodeMatrix01.setValue(calculatedNumberOfCodewords);\n        }\n        else if (numberOfCodewords[0] !== calculatedNumberOfCodewords) {\n            // The calculated one is more reliable as it is derived from the row indicator columns\n            barcodeMatrix01.setValue(calculatedNumberOfCodewords);\n        }\n    };\n    /**\n     *\n     * @param detectionResult\n     *\n     * @throws FormatException\n     * @throws ChecksumException\n     * @throws NotFoundException\n     */\n    PDF417ScanningDecoder.createDecoderResult = function (detectionResult) {\n        var barcodeMatrix = PDF417ScanningDecoder.createBarcodeMatrix(detectionResult);\n        PDF417ScanningDecoder.adjustCodewordCount(detectionResult, barcodeMatrix);\n        var erasures /*Collection<Integer>*/ = new Array();\n        var codewords = new Int32Array(detectionResult.getBarcodeRowCount() * detectionResult.getBarcodeColumnCount());\n        var ambiguousIndexValuesList = /*List<int[]>*/ [];\n        var ambiguousIndexesList = /*Collection<Integer>*/ new Array();\n        for (var row /*int*/ = 0; row < detectionResult.getBarcodeRowCount(); row++) {\n            for (var column /*int*/ = 0; column < detectionResult.getBarcodeColumnCount(); column++) {\n                var values = barcodeMatrix[row][column + 1].getValue();\n                var codewordIndex = row * detectionResult.getBarcodeColumnCount() + column;\n                if (values.length === 0) {\n                    erasures.push(codewordIndex);\n                }\n                else if (values.length === 1) {\n                    codewords[codewordIndex] = values[0];\n                }\n                else {\n                    ambiguousIndexesList.push(codewordIndex);\n                    ambiguousIndexValuesList.push(values);\n                }\n            }\n        }\n        var ambiguousIndexValues = new Array(ambiguousIndexValuesList.length);\n        for (var i /*int*/ = 0; i < ambiguousIndexValues.length; i++) {\n            ambiguousIndexValues[i] = ambiguousIndexValuesList[i];\n        }\n        return PDF417ScanningDecoder.createDecoderResultFromAmbiguousValues(detectionResult.getBarcodeECLevel(), codewords, PDF417Common.toIntArray(erasures), PDF417Common.toIntArray(ambiguousIndexesList), ambiguousIndexValues);\n    };\n    /**\n     * This method deals with the fact, that the decoding process doesn't always yield a single most likely value. The\n     * current error correction implementation doesn't deal with erasures very well, so it's better to provide a value\n     * for these ambiguous codewords instead of treating it as an erasure. The problem is that we don't know which of\n     * the ambiguous values to choose. We try decode using the first value, and if that fails, we use another of the\n     * ambiguous values and try to decode again. This usually only happens on very hard to read and decode barcodes,\n     * so decoding the normal barcodes is not affected by this.\n     *\n     * @param erasureArray contains the indexes of erasures\n     * @param ambiguousIndexes array with the indexes that have more than one most likely value\n     * @param ambiguousIndexValues two dimensional array that contains the ambiguous values. The first dimension must\n     * be the same length as the ambiguousIndexes array\n     *\n     * @throws FormatException\n     * @throws ChecksumException\n     */\n    PDF417ScanningDecoder.createDecoderResultFromAmbiguousValues = function (ecLevel, codewords, erasureArray, ambiguousIndexes, ambiguousIndexValues) {\n        var ambiguousIndexCount = new Int32Array(ambiguousIndexes.length);\n        var tries = 100;\n        while (tries-- > 0) {\n            for (var i /*int*/ = 0; i < ambiguousIndexCount.length; i++) {\n                codewords[ambiguousIndexes[i]] = ambiguousIndexValues[i][ambiguousIndexCount[i]];\n            }\n            try {\n                return PDF417ScanningDecoder.decodeCodewords(codewords, ecLevel, erasureArray);\n            }\n            catch (err) {\n                var ignored = err instanceof ChecksumException;\n                if (!ignored) {\n                    throw err;\n                }\n            }\n            if (ambiguousIndexCount.length === 0) {\n                throw ChecksumException.getChecksumInstance();\n            }\n            for (var i /*int*/ = 0; i < ambiguousIndexCount.length; i++) {\n                if (ambiguousIndexCount[i] < ambiguousIndexValues[i].length - 1) {\n                    ambiguousIndexCount[i]++;\n                    break;\n                }\n                else {\n                    ambiguousIndexCount[i] = 0;\n                    if (i === ambiguousIndexCount.length - 1) {\n                        throw ChecksumException.getChecksumInstance();\n                    }\n                }\n            }\n        }\n        throw ChecksumException.getChecksumInstance();\n    };\n    PDF417ScanningDecoder.createBarcodeMatrix = function (detectionResult) {\n        var e_3, _a, e_4, _b;\n        // let barcodeMatrix: BarcodeValue[][] =\n        // new BarcodeValue[detectionResult.getBarcodeRowCount()][detectionResult.getBarcodeColumnCount() + 2];\n        var barcodeMatrix = Array.from({ length: detectionResult.getBarcodeRowCount() }, function () { return new Array(detectionResult.getBarcodeColumnCount() + 2); });\n        for (var row /*int*/ = 0; row < barcodeMatrix.length; row++) {\n            for (var column_1 /*int*/ = 0; column_1 < barcodeMatrix[row].length; column_1++) {\n                barcodeMatrix[row][column_1] = new BarcodeValue();\n            }\n        }\n        var column = 0;\n        try {\n            for (var _c = __values(detectionResult.getDetectionResultColumns()), _d = _c.next(); !_d.done; _d = _c.next()) {\n                var detectionResultColumn = _d.value /*DetectionResultColumn*/;\n                if (detectionResultColumn != null) {\n                    try {\n                        for (var _e = (e_4 = void 0, __values(detectionResultColumn.getCodewords())), _f = _e.next(); !_f.done; _f = _e.next()) {\n                            var codeword = _f.value /*Codeword*/;\n                            if (codeword != null) {\n                                var rowNumber = codeword.getRowNumber();\n                                if (rowNumber >= 0) {\n                                    if (rowNumber >= barcodeMatrix.length) {\n                                        // We have more rows than the barcode metadata allows for, ignore them.\n                                        continue;\n                                    }\n                                    barcodeMatrix[rowNumber][column].setValue(codeword.getValue());\n                                }\n                            }\n                        }\n                    }\n                    catch (e_4_1) { e_4 = { error: e_4_1 }; }\n                    finally {\n                        try {\n                            if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n                        }\n                        finally { if (e_4) throw e_4.error; }\n                    }\n                }\n                column++;\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n        return barcodeMatrix;\n    };\n    PDF417ScanningDecoder.isValidBarcodeColumn = function (detectionResult, barcodeColumn) {\n        return barcodeColumn >= 0 && barcodeColumn <= detectionResult.getBarcodeColumnCount() + 1;\n    };\n    PDF417ScanningDecoder.getStartColumn = function (detectionResult, barcodeColumn, imageRow, leftToRight) {\n        var e_5, _a;\n        var offset = leftToRight ? 1 : -1;\n        var codeword = null;\n        if (PDF417ScanningDecoder.isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {\n            codeword = detectionResult.getDetectionResultColumn(barcodeColumn - offset).getCodeword(imageRow);\n        }\n        if (codeword != null) {\n            return leftToRight ? codeword.getEndX() : codeword.getStartX();\n        }\n        codeword = detectionResult.getDetectionResultColumn(barcodeColumn).getCodewordNearby(imageRow);\n        if (codeword != null) {\n            return leftToRight ? codeword.getStartX() : codeword.getEndX();\n        }\n        if (PDF417ScanningDecoder.isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {\n            codeword = detectionResult.getDetectionResultColumn(barcodeColumn - offset).getCodewordNearby(imageRow);\n        }\n        if (codeword != null) {\n            return leftToRight ? codeword.getEndX() : codeword.getStartX();\n        }\n        var skippedColumns = 0;\n        while (PDF417ScanningDecoder.isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {\n            barcodeColumn -= offset;\n            try {\n                for (var _b = (e_5 = void 0, __values(detectionResult.getDetectionResultColumn(barcodeColumn).getCodewords())), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var previousRowCodeword = _c.value /*Codeword*/;\n                    if (previousRowCodeword != null) {\n                        return (leftToRight ? previousRowCodeword.getEndX() : previousRowCodeword.getStartX()) +\n                            offset *\n                                skippedColumns *\n                                (previousRowCodeword.getEndX() - previousRowCodeword.getStartX());\n                    }\n                }\n            }\n            catch (e_5_1) { e_5 = { error: e_5_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_5) throw e_5.error; }\n            }\n            skippedColumns++;\n        }\n        return leftToRight ? detectionResult.getBoundingBox().getMinX() : detectionResult.getBoundingBox().getMaxX();\n    };\n    PDF417ScanningDecoder.detectCodeword = function (image, minColumn, maxColumn, leftToRight, startColumn, imageRow, minCodewordWidth, maxCodewordWidth) {\n        startColumn = PDF417ScanningDecoder.adjustCodewordStartColumn(image, minColumn, maxColumn, leftToRight, startColumn, imageRow);\n        // we usually know fairly exact now how long a codeword is. We should provide minimum and maximum expected length\n        // and try to adjust the read pixels, e.g. remove single pixel errors or try to cut off exceeding pixels.\n        // min and maxCodewordWidth should not be used as they are calculated for the whole barcode an can be inaccurate\n        // for the current position\n        var moduleBitCount = PDF417ScanningDecoder.getModuleBitCount(image, minColumn, maxColumn, leftToRight, startColumn, imageRow);\n        if (moduleBitCount == null) {\n            return null;\n        }\n        var endColumn;\n        var codewordBitCount = MathUtils.sum(moduleBitCount);\n        if (leftToRight) {\n            endColumn = startColumn + codewordBitCount;\n        }\n        else {\n            for (var i /*int*/ = 0; i < moduleBitCount.length / 2; i++) {\n                var tmpCount = moduleBitCount[i];\n                moduleBitCount[i] = moduleBitCount[moduleBitCount.length - 1 - i];\n                moduleBitCount[moduleBitCount.length - 1 - i] = tmpCount;\n            }\n            endColumn = startColumn;\n            startColumn = endColumn - codewordBitCount;\n        }\n        // TODO implement check for width and correction of black and white bars\n        // use start (and maybe stop pattern) to determine if black bars are wider than white bars. If so, adjust.\n        // should probably done only for codewords with a lot more than 17 bits.\n        // The following fixes 10-1.png, which has wide black bars and small white bars\n        //    for (let i /*int*/ = 0; i < moduleBitCount.length; i++) {\n        //      if (i % 2 === 0) {\n        //        moduleBitCount[i]--;\n        //      } else {\n        //        moduleBitCount[i]++;\n        //      }\n        //    }\n        // We could also use the width of surrounding codewords for more accurate results, but this seems\n        // sufficient for now\n        if (!PDF417ScanningDecoder.checkCodewordSkew(codewordBitCount, minCodewordWidth, maxCodewordWidth)) {\n            // We could try to use the startX and endX position of the codeword in the same column in the previous row,\n            // create the bit count from it and normalize it to 8. This would help with single pixel errors.\n            return null;\n        }\n        var decodedValue = PDF417CodewordDecoder.getDecodedValue(moduleBitCount);\n        var codeword = PDF417Common.getCodeword(decodedValue);\n        if (codeword === -1) {\n            return null;\n        }\n        return new Codeword(startColumn, endColumn, PDF417ScanningDecoder.getCodewordBucketNumber(decodedValue), codeword);\n    };\n    PDF417ScanningDecoder.getModuleBitCount = function (image, minColumn, maxColumn, leftToRight, startColumn, imageRow) {\n        var imageColumn = startColumn;\n        var moduleBitCount = new Int32Array(8);\n        var moduleNumber = 0;\n        var increment = leftToRight ? 1 : -1;\n        var previousPixelValue = leftToRight;\n        while ((leftToRight ? imageColumn < maxColumn : imageColumn >= minColumn) &&\n            moduleNumber < moduleBitCount.length) {\n            if (image.get(imageColumn, imageRow) === previousPixelValue) {\n                moduleBitCount[moduleNumber]++;\n                imageColumn += increment;\n            }\n            else {\n                moduleNumber++;\n                previousPixelValue = !previousPixelValue;\n            }\n        }\n        if (moduleNumber === moduleBitCount.length ||\n            ((imageColumn === (leftToRight ? maxColumn : minColumn)) &&\n                moduleNumber === moduleBitCount.length - 1)) {\n            return moduleBitCount;\n        }\n        return null;\n    };\n    PDF417ScanningDecoder.getNumberOfECCodeWords = function (barcodeECLevel) {\n        return 2 << barcodeECLevel;\n    };\n    PDF417ScanningDecoder.adjustCodewordStartColumn = function (image, minColumn, maxColumn, leftToRight, codewordStartColumn, imageRow) {\n        var correctedStartColumn = codewordStartColumn;\n        var increment = leftToRight ? -1 : 1;\n        // there should be no black pixels before the start column. If there are, then we need to start earlier.\n        for (var i /*int*/ = 0; i < 2; i++) {\n            while ((leftToRight ? correctedStartColumn >= minColumn : correctedStartColumn < maxColumn) &&\n                leftToRight === image.get(correctedStartColumn, imageRow)) {\n                if (Math.abs(codewordStartColumn - correctedStartColumn) > PDF417ScanningDecoder.CODEWORD_SKEW_SIZE) {\n                    return codewordStartColumn;\n                }\n                correctedStartColumn += increment;\n            }\n            increment = -increment;\n            leftToRight = !leftToRight;\n        }\n        return correctedStartColumn;\n    };\n    PDF417ScanningDecoder.checkCodewordSkew = function (codewordSize, minCodewordWidth, maxCodewordWidth) {\n        return minCodewordWidth - PDF417ScanningDecoder.CODEWORD_SKEW_SIZE <= codewordSize &&\n            codewordSize <= maxCodewordWidth + PDF417ScanningDecoder.CODEWORD_SKEW_SIZE;\n    };\n    /**\n     * @throws FormatException,\n     * @throws ChecksumException\n     */\n    PDF417ScanningDecoder.decodeCodewords = function (codewords, ecLevel, erasures) {\n        if (codewords.length === 0) {\n            throw FormatException.getFormatInstance();\n        }\n        var numECCodewords = 1 << (ecLevel + 1);\n        var correctedErrorsCount = PDF417ScanningDecoder.correctErrors(codewords, erasures, numECCodewords);\n        PDF417ScanningDecoder.verifyCodewordCount(codewords, numECCodewords);\n        // Decode the codewords\n        var decoderResult = DecodedBitStreamParser.decode(codewords, '' + ecLevel);\n        decoderResult.setErrorsCorrected(correctedErrorsCount);\n        decoderResult.setErasures(erasures.length);\n        return decoderResult;\n    };\n    /**\n     * <p>Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n     * correct the errors in-place.</p>\n     *\n     * @param codewords   data and error correction codewords\n     * @param erasures positions of any known erasures\n     * @param numECCodewords number of error correction codewords that are available in codewords\n     * @throws ChecksumException if error correction fails\n     */\n    PDF417ScanningDecoder.correctErrors = function (codewords, erasures, numECCodewords) {\n        if (erasures != null &&\n            erasures.length > numECCodewords / 2 + PDF417ScanningDecoder.MAX_ERRORS ||\n            numECCodewords < 0 ||\n            numECCodewords > PDF417ScanningDecoder.MAX_EC_CODEWORDS) {\n            // Too many errors or EC Codewords is corrupted\n            throw ChecksumException.getChecksumInstance();\n        }\n        return PDF417ScanningDecoder.errorCorrection.decode(codewords, numECCodewords, erasures);\n    };\n    /**\n     * Verify that all is OK with the codeword array.\n     * @throws FormatException\n     */\n    PDF417ScanningDecoder.verifyCodewordCount = function (codewords, numECCodewords) {\n        if (codewords.length < 4) {\n            // Codeword array size should be at least 4 allowing for\n            // Count CW, At least one Data CW, Error Correction CW, Error Correction CW\n            throw FormatException.getFormatInstance();\n        }\n        // The first codeword, the Symbol Length Descriptor, shall always encode the total number of data\n        // codewords in the symbol, including the Symbol Length Descriptor itself, data codewords and pad\n        // codewords, but excluding the number of error correction codewords.\n        var numberOfCodewords = codewords[0];\n        if (numberOfCodewords > codewords.length) {\n            throw FormatException.getFormatInstance();\n        }\n        if (numberOfCodewords === 0) {\n            // Reset to the length of the array - 8 (Allow for at least level 3 Error Correction (8 Error Codewords)\n            if (numECCodewords < codewords.length) {\n                codewords[0] = codewords.length - numECCodewords;\n            }\n            else {\n                throw FormatException.getFormatInstance();\n            }\n        }\n    };\n    PDF417ScanningDecoder.getBitCountForCodeword = function (codeword) {\n        var result = new Int32Array(8);\n        var previousValue = 0;\n        var i = result.length - 1;\n        while (true) {\n            if ((codeword & 0x1) !== previousValue) {\n                previousValue = codeword & 0x1;\n                i--;\n                if (i < 0) {\n                    break;\n                }\n            }\n            result[i]++;\n            codeword >>= 1;\n        }\n        return result;\n    };\n    PDF417ScanningDecoder.getCodewordBucketNumber = function (codeword) {\n        if (codeword instanceof Int32Array) {\n            return this.getCodewordBucketNumber_Int32Array(codeword);\n        }\n        return this.getCodewordBucketNumber_number(codeword);\n    };\n    PDF417ScanningDecoder.getCodewordBucketNumber_number = function (codeword) {\n        return PDF417ScanningDecoder.getCodewordBucketNumber(PDF417ScanningDecoder.getBitCountForCodeword(codeword));\n    };\n    PDF417ScanningDecoder.getCodewordBucketNumber_Int32Array = function (moduleBitCount) {\n        return (moduleBitCount[0] - moduleBitCount[2] + moduleBitCount[4] - moduleBitCount[6] + 9) % 9;\n    };\n    PDF417ScanningDecoder.toString = function (barcodeMatrix) {\n        var formatter = new Formatter();\n        // try (let formatter = new Formatter()) {\n        for (var row /*int*/ = 0; row < barcodeMatrix.length; row++) {\n            formatter.format('Row %2d: ', row);\n            for (var column /*int*/ = 0; column < barcodeMatrix[row].length; column++) {\n                var barcodeValue = barcodeMatrix[row][column];\n                if (barcodeValue.getValue().length === 0) {\n                    formatter.format('        ', null);\n                }\n                else {\n                    formatter.format('%4d(%2d)', barcodeValue.getValue()[0], barcodeValue.getConfidence(barcodeValue.getValue()[0]));\n                }\n            }\n            formatter.format('%n');\n        }\n        return formatter.toString();\n        // }\n    };\n    /*final*/ PDF417ScanningDecoder.CODEWORD_SKEW_SIZE = 2;\n    /*final*/ PDF417ScanningDecoder.MAX_ERRORS = 3;\n    /*final*/ PDF417ScanningDecoder.MAX_EC_CODEWORDS = 512;\n    /*final*/ PDF417ScanningDecoder.errorCorrection = new ErrorCorrection();\n    return PDF417ScanningDecoder;\n}());\nexport default PDF417ScanningDecoder;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.pdf417;\n// import com.google.zxing.BarcodeFormat;\nimport BarcodeFormat from '../BarcodeFormat';\n// import com.google.zxing.ChecksumException;\nimport ChecksumException from '../ChecksumException';\n// import com.google.zxing.FormatException;\nimport FormatException from '../FormatException';\n// import com.google.zxing.NotFoundException;\nimport NotFoundException from '../NotFoundException';\n// import com.google.zxing.Result;\nimport Result from '../Result';\n// import com.google.zxing.common.DecoderResult;\n// import com.google.zxing.multi.MultipleBarcodeReader;\n// import com.google.zxing.pdf417.decoder.PDF417ScanningDecoder;\n// import com.google.zxing.pdf417.detector.Detector;\n// import com.google.zxing.pdf417.detector.PDF417DetectorResult;\nimport PDF417Common from './PDF417Common';\nimport Integer from '../util/Integer';\nimport ResultMetadataType from '../ResultMetadataType';\nimport Detector from './detector/Detector';\nimport PDF417ScanningDecoder from './decoder/PDF417ScanningDecoder';\n// import java.util.ArrayList;\n// import java.util.List;\n// import java.util.Map;\n/**\n * This implementation can detect and decode PDF417 codes in an image.\n *\n * @author Guenther Grau\n */\nvar PDF417Reader = /** @class */ (function () {\n    function PDF417Reader() {\n    }\n    // private static /*final Result[]*/ EMPTY_RESULT_ARRAY: Result[] = new Result([0]);\n    /**\n     * Locates and decodes a PDF417 code in an image.\n     *\n     * @return a String representing the content encoded by the PDF417 code\n     * @throws NotFoundException if a PDF417 code cannot be found,\n     * @throws FormatException if a PDF417 cannot be decoded\n     * @throws ChecksumException\n     */\n    // @Override\n    PDF417Reader.prototype.decode = function (image, hints) {\n        if (hints === void 0) { hints = null; }\n        var result = PDF417Reader.decode(image, hints, false);\n        if (result == null || result.length === 0 || result[0] == null) {\n            throw NotFoundException.getNotFoundInstance();\n        }\n        return result[0];\n    };\n    /**\n     *\n     * @param BinaryBitmap\n     * @param image\n     * @throws NotFoundException\n     */\n    //   @Override\n    PDF417Reader.prototype.decodeMultiple = function (image, hints) {\n        if (hints === void 0) { hints = null; }\n        try {\n            return PDF417Reader.decode(image, hints, true);\n        }\n        catch (ignored) {\n            if (ignored instanceof FormatException || ignored instanceof ChecksumException) {\n                throw NotFoundException.getNotFoundInstance();\n            }\n            throw ignored;\n        }\n    };\n    /**\n     *\n     * @param image\n     * @param hints\n     * @param multiple\n     *\n     * @throws NotFoundException\n     * @throws FormatExceptionß\n     * @throws ChecksumException\n     */\n    PDF417Reader.decode = function (image, hints, multiple) {\n        var e_1, _a;\n        var results = new Array();\n        var detectorResult = Detector.detectMultiple(image, hints, multiple);\n        try {\n            for (var _b = __values(detectorResult.getPoints()), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var points = _c.value;\n                var decoderResult = PDF417ScanningDecoder.decode(detectorResult.getBits(), points[4], points[5], points[6], points[7], PDF417Reader.getMinCodewordWidth(points), PDF417Reader.getMaxCodewordWidth(points));\n                var result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat.PDF_417);\n                result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, decoderResult.getECLevel());\n                var pdf417ResultMetadata = decoderResult.getOther();\n                if (pdf417ResultMetadata != null) {\n                    result.putMetadata(ResultMetadataType.PDF417_EXTRA_METADATA, pdf417ResultMetadata);\n                }\n                results.push(result);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return results.map(function (x) { return x; });\n    };\n    PDF417Reader.getMaxWidth = function (p1, p2) {\n        if (p1 == null || p2 == null) {\n            return 0;\n        }\n        return Math.trunc(Math.abs(p1.getX() - p2.getX()));\n    };\n    PDF417Reader.getMinWidth = function (p1, p2) {\n        if (p1 == null || p2 == null) {\n            return Integer.MAX_VALUE;\n        }\n        return Math.trunc(Math.abs(p1.getX() - p2.getX()));\n    };\n    PDF417Reader.getMaxCodewordWidth = function (p) {\n        return Math.floor(Math.max(Math.max(PDF417Reader.getMaxWidth(p[0], p[4]), PDF417Reader.getMaxWidth(p[6], p[2]) * PDF417Common.MODULES_IN_CODEWORD /\n            PDF417Common.MODULES_IN_STOP_PATTERN), Math.max(PDF417Reader.getMaxWidth(p[1], p[5]), PDF417Reader.getMaxWidth(p[7], p[3]) * PDF417Common.MODULES_IN_CODEWORD /\n            PDF417Common.MODULES_IN_STOP_PATTERN)));\n    };\n    PDF417Reader.getMinCodewordWidth = function (p) {\n        return Math.floor(Math.min(Math.min(PDF417Reader.getMinWidth(p[0], p[4]), PDF417Reader.getMinWidth(p[6], p[2]) * PDF417Common.MODULES_IN_CODEWORD /\n            PDF417Common.MODULES_IN_STOP_PATTERN), Math.min(PDF417Reader.getMinWidth(p[1], p[5]), PDF417Reader.getMinWidth(p[7], p[3]) * PDF417Common.MODULES_IN_CODEWORD /\n            PDF417Common.MODULES_IN_STOP_PATTERN)));\n    };\n    // @Override\n    PDF417Reader.prototype.reset = function () {\n        // nothing needs to be reset\n    };\n    return PDF417Reader;\n}());\nexport default PDF417Reader;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar ReaderException = /** @class */ (function (_super) {\n    __extends(ReaderException, _super);\n    function ReaderException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ReaderException.kind = 'ReaderException';\n    return ReaderException;\n}(Exception));\nexport default ReaderException;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport DecodeHintType from './DecodeHintType';\nimport BarcodeFormat from './BarcodeFormat';\nimport QRCodeReader from './qrcode/QRCodeReader';\nimport AztecReader from './aztec/AztecReader';\nimport MultiFormatOneDReader from './oned/MultiFormatOneDReader';\nimport DataMatrixReader from './datamatrix/DataMatrixReader';\nimport NotFoundException from './NotFoundException';\nimport PDF417Reader from './pdf417/PDF417Reader';\nimport ReaderException from './ReaderException';\n/*namespace com.google.zxing {*/\n/**\n * MultiFormatReader is a convenience class and the main entry point into the library for most uses.\n * By default it attempts to decode all barcode formats that the library supports. Optionally, you\n * can provide a hints object to request different behavior, for example only decoding QR codes.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatReader = /** @class */ (function () {\n    function MultiFormatReader() {\n    }\n    /**\n     * This version of decode honors the intent of Reader.decode(BinaryBitmap) in that it\n     * passes null as a hint to the decoders. However, that makes it inefficient to call repeatedly.\n     * Use setHints() followed by decodeWithState() for continuous scan applications.\n     *\n     * @param image The pixel data to decode\n     * @return The contents of the image\n     *\n     * @throws NotFoundException Any errors which occurred\n     */\n    /*@Override*/\n    // public decode(image: BinaryBitmap): Result {\n    //   setHints(null)\n    //   return decodeInternal(image)\n    // }\n    /**\n     * Decode an image using the hints provided. Does not honor existing state.\n     *\n     * @param image The pixel data to decode\n     * @param hints The hints to use, clearing the previous state.\n     * @return The contents of the image\n     *\n     * @throws NotFoundException Any errors which occurred\n     */\n    /*@Override*/\n    MultiFormatReader.prototype.decode = function (image, hints) {\n        this.setHints(hints);\n        return this.decodeInternal(image);\n    };\n    /**\n     * Decode an image using the state set up by calling setHints() previously. Continuous scan\n     * clients will get a <b>large</b> speed increase by using this instead of decode().\n     *\n     * @param image The pixel data to decode\n     * @return The contents of the image\n     *\n     * @throws NotFoundException Any errors which occurred\n     */\n    MultiFormatReader.prototype.decodeWithState = function (image) {\n        // Make sure to set up the default state so we don't crash\n        if (this.readers === null || this.readers === undefined) {\n            this.setHints(null);\n        }\n        return this.decodeInternal(image);\n    };\n    /**\n     * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls\n     * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This\n     * is important for performance in continuous scan clients.\n     *\n     * @param hints The set of hints to use for subsequent calls to decode(image)\n     */\n    MultiFormatReader.prototype.setHints = function (hints) {\n        this.hints = hints;\n        var tryHarder = hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType.TRY_HARDER);\n        /*@SuppressWarnings(\"unchecked\")*/\n        var formats = hints === null || hints === undefined ? null : hints.get(DecodeHintType.POSSIBLE_FORMATS);\n        var readers = new Array();\n        if (formats !== null && formats !== undefined) {\n            var addOneDReader = formats.some(function (f) {\n                return f === BarcodeFormat.UPC_A ||\n                    f === BarcodeFormat.UPC_E ||\n                    f === BarcodeFormat.EAN_13 ||\n                    f === BarcodeFormat.EAN_8 ||\n                    f === BarcodeFormat.CODABAR ||\n                    f === BarcodeFormat.CODE_39 ||\n                    f === BarcodeFormat.CODE_93 ||\n                    f === BarcodeFormat.CODE_128 ||\n                    f === BarcodeFormat.ITF ||\n                    f === BarcodeFormat.RSS_14 ||\n                    f === BarcodeFormat.RSS_EXPANDED;\n            });\n            // Put 1D readers upfront in \"normal\" mode\n            // TYPESCRIPTPORT: TODO: uncomment below as they are ported\n            if (addOneDReader && !tryHarder) {\n                readers.push(new MultiFormatOneDReader(hints));\n            }\n            if (formats.includes(BarcodeFormat.QR_CODE)) {\n                readers.push(new QRCodeReader());\n            }\n            if (formats.includes(BarcodeFormat.DATA_MATRIX)) {\n                readers.push(new DataMatrixReader());\n            }\n            if (formats.includes(BarcodeFormat.AZTEC)) {\n                readers.push(new AztecReader());\n            }\n            if (formats.includes(BarcodeFormat.PDF_417)) {\n                readers.push(new PDF417Reader());\n            }\n            // if (formats.includes(BarcodeFormat.MAXICODE)) {\n            //    readers.push(new MaxiCodeReader())\n            // }\n            // At end in \"try harder\" mode\n            if (addOneDReader && tryHarder) {\n                readers.push(new MultiFormatOneDReader(hints));\n            }\n        }\n        if (readers.length === 0) {\n            if (!tryHarder) {\n                readers.push(new MultiFormatOneDReader(hints));\n            }\n            readers.push(new QRCodeReader());\n            readers.push(new DataMatrixReader());\n            readers.push(new AztecReader());\n            readers.push(new PDF417Reader());\n            // readers.push(new MaxiCodeReader())\n            if (tryHarder) {\n                readers.push(new MultiFormatOneDReader(hints));\n            }\n        }\n        this.readers = readers; // .toArray(new Reader[readers.size()])\n    };\n    /*@Override*/\n    MultiFormatReader.prototype.reset = function () {\n        var e_1, _a;\n        if (this.readers !== null) {\n            try {\n                for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var reader = _c.value;\n                    reader.reset();\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n    };\n    /**\n     * @throws NotFoundException\n     */\n    MultiFormatReader.prototype.decodeInternal = function (image) {\n        var e_2, _a;\n        if (this.readers === null) {\n            throw new ReaderException('No readers where selected, nothing can be read.');\n        }\n        try {\n            for (var _b = __values(this.readers), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var reader = _c.value;\n                // Trying to decode with ${reader} reader.\n                try {\n                    return reader.decode(image, this.hints);\n                }\n                catch (ex) {\n                    if (ex instanceof ReaderException) {\n                        continue;\n                    }\n                    // Bad Exception.\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        throw new NotFoundException('No MultiFormat Readers were able to detect the code.');\n    };\n    return MultiFormatReader;\n}());\nexport default MultiFormatReader;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport MultiFormatReader from '../core/MultiFormatReader';\nvar BrowserMultiFormatReader = /** @class */ (function (_super) {\n    __extends(BrowserMultiFormatReader, _super);\n    function BrowserMultiFormatReader(hints, timeBetweenScansMillis) {\n        if (hints === void 0) { hints = null; }\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        var _this = this;\n        var reader = new MultiFormatReader();\n        reader.setHints(hints);\n        _this = _super.call(this, reader, timeBetweenScansMillis) || this;\n        return _this;\n    }\n    /**\n     * Overwrite decodeBitmap to call decodeWithState, which will pay\n     * attention to the hints set in the constructor function\n     */\n    BrowserMultiFormatReader.prototype.decodeBitmap = function (binaryBitmap) {\n        return this.reader.decodeWithState(binaryBitmap);\n    };\n    return BrowserMultiFormatReader;\n}(BrowserCodeReader));\nexport { BrowserMultiFormatReader };\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport PDF417Reader from '../core/pdf417/PDF417Reader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserPDF417Reader = /** @class */ (function (_super) {\n    __extends(BrowserPDF417Reader, _super);\n    /**\n     * Creates an instance of BrowserPDF417Reader.\n     * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n     */\n    function BrowserPDF417Reader(timeBetweenScansMillis) {\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        return _super.call(this, new PDF417Reader(), timeBetweenScansMillis) || this;\n    }\n    return BrowserPDF417Reader;\n}(BrowserCodeReader));\nexport { BrowserPDF417Reader };\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport { BrowserCodeReader } from './BrowserCodeReader';\nimport QRCodeReader from '../core/qrcode/QRCodeReader';\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserQRCodeReader = /** @class */ (function (_super) {\n    __extends(BrowserQRCodeReader, _super);\n    /**\n     * Creates an instance of BrowserQRCodeReader.\n     * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n     */\n    function BrowserQRCodeReader(timeBetweenScansMillis) {\n        if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n        return _super.call(this, new QRCodeReader(), timeBetweenScansMillis) || this;\n    }\n    return BrowserQRCodeReader;\n}(BrowserCodeReader));\nexport { BrowserQRCodeReader };\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport GenericGFPoly from './GenericGFPoly';\nimport System from '../../util/System';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * <p>Implements Reed-Solomon encoding, as the name implies.</p>\n *\n * @author Sean Owen\n * @author William Rucklidge\n */\nvar ReedSolomonEncoder = /** @class */ (function () {\n    /**\n     * A reed solomon error-correcting encoding constructor is created by\n     * passing as Galois Field with of size equal to the number of code\n     * words (symbols) in the alphabet (the number of values in each\n     * element of arrays that are encoded/decoded).\n     * @param field A galois field with a number of elements equal to the size\n     * of the alphabet of symbols to encode.\n     */\n    function ReedSolomonEncoder(field) {\n        this.field = field;\n        this.cachedGenerators = [];\n        this.cachedGenerators.push(new GenericGFPoly(field, Int32Array.from([1])));\n    }\n    ReedSolomonEncoder.prototype.buildGenerator = function (degree /*int*/) {\n        var cachedGenerators = this.cachedGenerators;\n        if (degree >= cachedGenerators.length) {\n            var lastGenerator = cachedGenerators[cachedGenerators.length - 1];\n            var field = this.field;\n            for (var d = cachedGenerators.length; d <= degree; d++) {\n                var nextGenerator = lastGenerator.multiply(new GenericGFPoly(field, Int32Array.from([1, field.exp(d - 1 + field.getGeneratorBase())])));\n                cachedGenerators.push(nextGenerator);\n                lastGenerator = nextGenerator;\n            }\n        }\n        return cachedGenerators[degree];\n    };\n    /**\n     * <p>Encode a sequence of code words (symbols) using Reed-Solomon to allow decoders\n     * to detect and correct errors that may have been introduced when the resulting\n     * data is stored or transmitted.</p>\n     *\n     * @param toEncode array used for both and output. Caller initializes the array with\n     * the code words (symbols) to be encoded followed by empty elements allocated to make\n     * space for error-correction code words in the encoded output. The array contains\n     * the encdoded output when encode returns. Code words are encoded as numbers from\n     * 0 to n-1, where n is the number of possible code words (symbols), as determined\n     * by the size of the Galois Field passed in the constructor of this object.\n     * @param ecBytes the number of elements reserved in the array (first parameter)\n     * to store error-correction code words. Thus, the number of code words (symbols)\n     * to encode in the first parameter is thus toEncode.length - ecBytes.\n     * Note, the use of \"bytes\" in the name of this parameter is misleading, as there may\n     * be more or fewer than 256 symbols being encoded, as determined by the number of\n     * elements in the Galois Field passed as a constructor to this object.\n     * @throws IllegalArgumentException thrown in response to validation errros.\n     */\n    ReedSolomonEncoder.prototype.encode = function (toEncode, ecBytes /*int*/) {\n        if (ecBytes === 0) {\n            throw new IllegalArgumentException('No error correction bytes');\n        }\n        var dataBytes = toEncode.length - ecBytes;\n        if (dataBytes <= 0) {\n            throw new IllegalArgumentException('No data bytes provided');\n        }\n        var generator = this.buildGenerator(ecBytes);\n        var infoCoefficients = new Int32Array(dataBytes);\n        System.arraycopy(toEncode, 0, infoCoefficients, 0, dataBytes);\n        var info = new GenericGFPoly(this.field, infoCoefficients);\n        info = info.multiplyByMonomial(ecBytes, 1);\n        var remainder = info.divide(generator)[1];\n        var coefficients = remainder.getCoefficients();\n        var numZeroCoefficients = ecBytes - coefficients.length;\n        for (var i = 0; i < numZeroCoefficients; i++) {\n            toEncode[dataBytes + i] = 0;\n        }\n        System.arraycopy(coefficients, 0, toEncode, dataBytes + numZeroCoefficients, coefficients.length);\n    };\n    return ReedSolomonEncoder;\n}());\nexport default ReedSolomonEncoder;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * @author Satoru Takabayashi\n * @author Daniel Switkin\n * @author Sean Owen\n */\nvar MaskUtil = /** @class */ (function () {\n    function MaskUtil() {\n        // do nothing\n    }\n    /**\n     * Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and\n     * give penalty to them. Example: 00000 or 11111.\n     */\n    MaskUtil.applyMaskPenaltyRule1 = function (matrix) {\n        return MaskUtil.applyMaskPenaltyRule1Internal(matrix, true) + MaskUtil.applyMaskPenaltyRule1Internal(matrix, false);\n    };\n    /**\n     * Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give\n     * penalty to them. This is actually equivalent to the spec's rule, which is to find MxN blocks and give a\n     * penalty proportional to (M-1)x(N-1), because this is the number of 2x2 blocks inside such a block.\n     */\n    MaskUtil.applyMaskPenaltyRule2 = function (matrix) {\n        var penalty = 0;\n        var array = matrix.getArray();\n        var width = matrix.getWidth();\n        var height = matrix.getHeight();\n        for (var y = 0; y < height - 1; y++) {\n            var arrayY = array[y];\n            for (var x = 0; x < width - 1; x++) {\n                var value = arrayY[x];\n                if (value === arrayY[x + 1] && value === array[y + 1][x] && value === array[y + 1][x + 1]) {\n                    penalty++;\n                }\n            }\n        }\n        return MaskUtil.N2 * penalty;\n    };\n    /**\n     * Apply mask penalty rule 3 and return the penalty. Find consecutive runs of 1:1:3:1:1:4\n     * starting with black, or 4:1:1:3:1:1 starting with white, and give penalty to them.  If we\n     * find patterns like 000010111010000, we give penalty once.\n     */\n    MaskUtil.applyMaskPenaltyRule3 = function (matrix) {\n        var numPenalties = 0;\n        var array = matrix.getArray();\n        var width = matrix.getWidth();\n        var height = matrix.getHeight();\n        for (var y = 0; y < height; y++) {\n            for (var x = 0; x < width; x++) {\n                var arrayY = array[y]; // We can at least optimize this access\n                if (x + 6 < width &&\n                    arrayY[x] === 1 &&\n                    arrayY[x + 1] === 0 &&\n                    arrayY[x + 2] === 1 &&\n                    arrayY[x + 3] === 1 &&\n                    arrayY[x + 4] === 1 &&\n                    arrayY[x + 5] === 0 &&\n                    arrayY[x + 6] === 1 &&\n                    (MaskUtil.isWhiteHorizontal(arrayY, x - 4, x) || MaskUtil.isWhiteHorizontal(arrayY, x + 7, x + 11))) {\n                    numPenalties++;\n                }\n                if (y + 6 < height &&\n                    array[y][x] === 1 &&\n                    array[y + 1][x] === 0 &&\n                    array[y + 2][x] === 1 &&\n                    array[y + 3][x] === 1 &&\n                    array[y + 4][x] === 1 &&\n                    array[y + 5][x] === 0 &&\n                    array[y + 6][x] === 1 &&\n                    (MaskUtil.isWhiteVertical(array, x, y - 4, y) || MaskUtil.isWhiteVertical(array, x, y + 7, y + 11))) {\n                    numPenalties++;\n                }\n            }\n        }\n        return numPenalties * MaskUtil.N3;\n    };\n    MaskUtil.isWhiteHorizontal = function (rowArray, from /*int*/, to /*int*/) {\n        from = Math.max(from, 0);\n        to = Math.min(to, rowArray.length);\n        for (var i = from; i < to; i++) {\n            if (rowArray[i] === 1) {\n                return false;\n            }\n        }\n        return true;\n    };\n    MaskUtil.isWhiteVertical = function (array, col /*int*/, from /*int*/, to /*int*/) {\n        from = Math.max(from, 0);\n        to = Math.min(to, array.length);\n        for (var i = from; i < to; i++) {\n            if (array[i][col] === 1) {\n                return false;\n            }\n        }\n        return true;\n    };\n    /**\n     * Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give\n     * penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance.\n     */\n    MaskUtil.applyMaskPenaltyRule4 = function (matrix) {\n        var numDarkCells = 0;\n        var array = matrix.getArray();\n        var width = matrix.getWidth();\n        var height = matrix.getHeight();\n        for (var y = 0; y < height; y++) {\n            var arrayY = array[y];\n            for (var x = 0; x < width; x++) {\n                if (arrayY[x] === 1) {\n                    numDarkCells++;\n                }\n            }\n        }\n        var numTotalCells = matrix.getHeight() * matrix.getWidth();\n        var fivePercentVariances = Math.floor(Math.abs(numDarkCells * 2 - numTotalCells) * 10 / numTotalCells);\n        return fivePercentVariances * MaskUtil.N4;\n    };\n    /**\n     * Return the mask bit for \"getMaskPattern\" at \"x\" and \"y\". See 8.8 of JISX0510:2004 for mask\n     * pattern conditions.\n     */\n    MaskUtil.getDataMaskBit = function (maskPattern /*int*/, x /*int*/, y /*int*/) {\n        var intermediate; /*int*/\n        var temp; /*int*/\n        switch (maskPattern) {\n            case 0:\n                intermediate = (y + x) & 0x1;\n                break;\n            case 1:\n                intermediate = y & 0x1;\n                break;\n            case 2:\n                intermediate = x % 3;\n                break;\n            case 3:\n                intermediate = (y + x) % 3;\n                break;\n            case 4:\n                intermediate = (Math.floor(y / 2) + Math.floor(x / 3)) & 0x1;\n                break;\n            case 5:\n                temp = y * x;\n                intermediate = (temp & 0x1) + (temp % 3);\n                break;\n            case 6:\n                temp = y * x;\n                intermediate = ((temp & 0x1) + (temp % 3)) & 0x1;\n                break;\n            case 7:\n                temp = y * x;\n                intermediate = ((temp % 3) + ((y + x) & 0x1)) & 0x1;\n                break;\n            default:\n                throw new IllegalArgumentException('Invalid mask pattern: ' + maskPattern);\n        }\n        return intermediate === 0;\n    };\n    /**\n     * Helper function for applyMaskPenaltyRule1. We need this for doing this calculation in both\n     * vertical and horizontal orders respectively.\n     */\n    MaskUtil.applyMaskPenaltyRule1Internal = function (matrix, isHorizontal) {\n        var penalty = 0;\n        var iLimit = isHorizontal ? matrix.getHeight() : matrix.getWidth();\n        var jLimit = isHorizontal ? matrix.getWidth() : matrix.getHeight();\n        var array = matrix.getArray();\n        for (var i = 0; i < iLimit; i++) {\n            var numSameBitCells = 0;\n            var prevBit = -1;\n            for (var j = 0; j < jLimit; j++) {\n                var bit = isHorizontal ? array[i][j] : array[j][i];\n                if (bit === prevBit) {\n                    numSameBitCells++;\n                }\n                else {\n                    if (numSameBitCells >= 5) {\n                        penalty += MaskUtil.N1 + (numSameBitCells - 5);\n                    }\n                    numSameBitCells = 1; // Include the cell itself.\n                    prevBit = bit;\n                }\n            }\n            if (numSameBitCells >= 5) {\n                penalty += MaskUtil.N1 + (numSameBitCells - 5);\n            }\n        }\n        return penalty;\n    };\n    // Penalty weights from section 6.8.2.1\n    MaskUtil.N1 = 3;\n    MaskUtil.N2 = 3;\n    MaskUtil.N3 = 40;\n    MaskUtil.N4 = 10;\n    return MaskUtil;\n}());\nexport default MaskUtil;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.encoder {*/\n/*import java.util.Arrays;*/\nimport Arrays from '../../util/Arrays';\nimport StringBuilder from '../../util/StringBuilder';\n/**\n * JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned\n * -1, 0, and 1, I'm going to use less memory and go with bytes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar ByteMatrix = /** @class */ (function () {\n    function ByteMatrix(width /*int*/, height /*int*/) {\n        this.width = width;\n        this.height = height;\n        var bytes = new Array(height); // [height][width]\n        for (var i = 0; i !== height; i++) {\n            bytes[i] = new Uint8Array(width);\n        }\n        this.bytes = bytes;\n    }\n    ByteMatrix.prototype.getHeight = function () {\n        return this.height;\n    };\n    ByteMatrix.prototype.getWidth = function () {\n        return this.width;\n    };\n    ByteMatrix.prototype.get = function (x /*int*/, y /*int*/) {\n        return this.bytes[y][x];\n    };\n    /**\n     * @return an internal representation as bytes, in row-major order. array[y][x] represents point (x,y)\n     */\n    ByteMatrix.prototype.getArray = function () {\n        return this.bytes;\n    };\n    // TYPESCRIPTPORT: preffer to let two methods instead of override to avoid type comparison inside\n    ByteMatrix.prototype.setNumber = function (x /*int*/, y /*int*/, value /*byte|int*/) {\n        this.bytes[y][x] = value;\n    };\n    // public set(x: number /*int*/, y: number /*int*/, value: number /*int*/): void {\n    //   bytes[y][x] = (byte) value\n    // }\n    ByteMatrix.prototype.setBoolean = function (x /*int*/, y /*int*/, value) {\n        this.bytes[y][x] = /*(byte) */ (value ? 1 : 0);\n    };\n    ByteMatrix.prototype.clear = function (value /*byte*/) {\n        var e_1, _a;\n        try {\n            for (var _b = __values(this.bytes), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var aByte = _c.value;\n                Arrays.fill(aByte, value);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    ByteMatrix.prototype.equals = function (o) {\n        if (!(o instanceof ByteMatrix)) {\n            return false;\n        }\n        var other = o;\n        if (this.width !== other.width) {\n            return false;\n        }\n        if (this.height !== other.height) {\n            return false;\n        }\n        for (var y = 0, height = this.height; y < height; ++y) {\n            var bytesY = this.bytes[y];\n            var otherBytesY = other.bytes[y];\n            for (var x = 0, width = this.width; x < width; ++x) {\n                if (bytesY[x] !== otherBytesY[x]) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    };\n    /*@Override*/\n    ByteMatrix.prototype.toString = function () {\n        var result = new StringBuilder(); // (2 * width * height + 2)\n        for (var y = 0, height = this.height; y < height; ++y) {\n            var bytesY = this.bytes[y];\n            for (var x = 0, width = this.width; x < width; ++x) {\n                switch (bytesY[x]) {\n                    case 0:\n                        result.append(' 0');\n                        break;\n                    case 1:\n                        result.append(' 1');\n                        break;\n                    default:\n                        result.append('  ');\n                        break;\n                }\n            }\n            result.append('\\n');\n        }\n        return result.toString();\n    };\n    return ByteMatrix;\n}());\nexport default ByteMatrix;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport StringBuilder from '../../util/StringBuilder';\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar QRCode = /** @class */ (function () {\n    function QRCode() {\n        this.maskPattern = -1;\n    }\n    QRCode.prototype.getMode = function () {\n        return this.mode;\n    };\n    QRCode.prototype.getECLevel = function () {\n        return this.ecLevel;\n    };\n    QRCode.prototype.getVersion = function () {\n        return this.version;\n    };\n    QRCode.prototype.getMaskPattern = function () {\n        return this.maskPattern;\n    };\n    QRCode.prototype.getMatrix = function () {\n        return this.matrix;\n    };\n    /*@Override*/\n    QRCode.prototype.toString = function () {\n        var result = new StringBuilder(); // (200)\n        result.append('<<\\n');\n        result.append(' mode: ');\n        result.append(this.mode ? this.mode.toString() : 'null');\n        result.append('\\n ecLevel: ');\n        result.append(this.ecLevel ? this.ecLevel.toString() : 'null');\n        result.append('\\n version: ');\n        result.append(this.version ? this.version.toString() : 'null');\n        result.append('\\n maskPattern: ');\n        result.append(this.maskPattern.toString());\n        if (this.matrix) {\n            result.append('\\n matrix:\\n');\n            result.append(this.matrix.toString());\n        }\n        else {\n            result.append('\\n matrix: null\\n');\n        }\n        result.append('>>\\n');\n        return result.toString();\n    };\n    QRCode.prototype.setMode = function (value) {\n        this.mode = value;\n    };\n    QRCode.prototype.setECLevel = function (value) {\n        this.ecLevel = value;\n    };\n    QRCode.prototype.setVersion = function (version) {\n        this.version = version;\n    };\n    QRCode.prototype.setMaskPattern = function (value /*int*/) {\n        this.maskPattern = value;\n    };\n    QRCode.prototype.setMatrix = function (value) {\n        this.matrix = value;\n    };\n    // Check if \"mask_pattern\" is valid.\n    QRCode.isValidMaskPattern = function (maskPattern /*int*/) {\n        return maskPattern >= 0 && maskPattern < QRCode.NUM_MASK_PATTERNS;\n    };\n    QRCode.NUM_MASK_PATTERNS = 8;\n    return QRCode;\n}());\nexport default QRCode;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Exception from './Exception';\n/**\n * Custom Error class of type Exception.\n */\nvar WriterException = /** @class */ (function (_super) {\n    __extends(WriterException, _super);\n    function WriterException() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    WriterException.kind = 'WriterException';\n    return WriterException;\n}(Exception));\nexport default WriterException;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.encoder {*/\nimport BitArray from '../../common/BitArray';\nimport Integer from '../../util/Integer';\nimport QRCode from './QRCode';\nimport MaskUtil from './MaskUtil';\nimport WriterException from '../../WriterException';\nimport IllegalArgumentException from '../../IllegalArgumentException';\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar MatrixUtil = /** @class */ (function () {\n    function MatrixUtil() {\n        // do nothing\n    }\n    // Set all cells to -1 (TYPESCRIPTPORT: 255).  -1 (TYPESCRIPTPORT: 255) means that the cell is empty (not set yet).\n    //\n    // JAVAPORT: We shouldn't need to do this at all. The code should be rewritten to begin encoding\n    // with the ByteMatrix initialized all to zero.\n    MatrixUtil.clearMatrix = function (matrix) {\n        // TYPESCRIPTPORT: we use UintArray se changed here from -1 to 255\n        matrix.clear(/*(byte) */ /*-1*/ 255);\n    };\n    // Build 2D matrix of QR Code from \"dataBits\" with \"ecLevel\", \"version\" and \"getMaskPattern\". On\n    // success, store the result in \"matrix\" and return true.\n    MatrixUtil.buildMatrix = function (dataBits, ecLevel, version, maskPattern /*int*/, matrix) {\n        MatrixUtil.clearMatrix(matrix);\n        MatrixUtil.embedBasicPatterns(version, matrix);\n        // Type information appear with any version.\n        MatrixUtil.embedTypeInfo(ecLevel, maskPattern, matrix);\n        // Version info appear if version >= 7.\n        MatrixUtil.maybeEmbedVersionInfo(version, matrix);\n        // Data should be embedded at end.\n        MatrixUtil.embedDataBits(dataBits, maskPattern, matrix);\n    };\n    // Embed basic patterns. On success, modify the matrix and return true.\n    // The basic patterns are:\n    // - Position detection patterns\n    // - Timing patterns\n    // - Dark dot at the left bottom corner\n    // - Position adjustment patterns, if need be\n    MatrixUtil.embedBasicPatterns = function (version, matrix) {\n        // Let's get started with embedding big squares at corners.\n        MatrixUtil.embedPositionDetectionPatternsAndSeparators(matrix);\n        // Then, embed the dark dot at the left bottom corner.\n        MatrixUtil.embedDarkDotAtLeftBottomCorner(matrix);\n        // Position adjustment patterns appear if version >= 2.\n        MatrixUtil.maybeEmbedPositionAdjustmentPatterns(version, matrix);\n        // Timing patterns should be embedded after position adj. patterns.\n        MatrixUtil.embedTimingPatterns(matrix);\n    };\n    // Embed type information. On success, modify the matrix.\n    MatrixUtil.embedTypeInfo = function (ecLevel, maskPattern /*int*/, matrix) {\n        var typeInfoBits = new BitArray();\n        MatrixUtil.makeTypeInfoBits(ecLevel, maskPattern, typeInfoBits);\n        for (var i = 0, size = typeInfoBits.getSize(); i < size; ++i) {\n            // Place bits in LSB to MSB order.  LSB (least significant bit) is the last value in\n            // \"typeInfoBits\".\n            var bit = typeInfoBits.get(typeInfoBits.getSize() - 1 - i);\n            // Type info bits at the left top corner. See 8.9 of JISX0510:2004 (p.46).\n            var coordinates = MatrixUtil.TYPE_INFO_COORDINATES[i];\n            var x1 = coordinates[0];\n            var y1 = coordinates[1];\n            matrix.setBoolean(x1, y1, bit);\n            if (i < 8) {\n                // Right top corner.\n                var x2 = matrix.getWidth() - i - 1;\n                var y2 = 8;\n                matrix.setBoolean(x2, y2, bit);\n            }\n            else {\n                // Left bottom corner.\n                var x2 = 8;\n                var y2 = matrix.getHeight() - 7 + (i - 8);\n                matrix.setBoolean(x2, y2, bit);\n            }\n        }\n    };\n    // Embed version information if need be. On success, modify the matrix and return true.\n    // See 8.10 of JISX0510:2004 (p.47) for how to embed version information.\n    MatrixUtil.maybeEmbedVersionInfo = function (version, matrix) {\n        if (version.getVersionNumber() < 7) { // Version info is necessary if version >= 7.\n            return; // Don't need version info.\n        }\n        var versionInfoBits = new BitArray();\n        MatrixUtil.makeVersionInfoBits(version, versionInfoBits);\n        var bitIndex = 6 * 3 - 1; // It will decrease from 17 to 0.\n        for (var i = 0; i < 6; ++i) {\n            for (var j = 0; j < 3; ++j) {\n                // Place bits in LSB (least significant bit) to MSB order.\n                var bit = versionInfoBits.get(bitIndex);\n                bitIndex--;\n                // Left bottom corner.\n                matrix.setBoolean(i, matrix.getHeight() - 11 + j, bit);\n                // Right bottom corner.\n                matrix.setBoolean(matrix.getHeight() - 11 + j, i, bit);\n            }\n        }\n    };\n    // Embed \"dataBits\" using \"getMaskPattern\". On success, modify the matrix and return true.\n    // For debugging purposes, it skips masking process if \"getMaskPattern\" is -1(TYPESCRIPTPORT: 255).\n    // See 8.7 of JISX0510:2004 (p.38) for how to embed data bits.\n    MatrixUtil.embedDataBits = function (dataBits, maskPattern /*int*/, matrix) {\n        var bitIndex = 0;\n        var direction = -1;\n        // Start from the right bottom cell.\n        var x = matrix.getWidth() - 1;\n        var y = matrix.getHeight() - 1;\n        while (x > 0) {\n            // Skip the vertical timing pattern.\n            if (x === 6) {\n                x -= 1;\n            }\n            while (y >= 0 && y < matrix.getHeight()) {\n                for (var i = 0; i < 2; ++i) {\n                    var xx = x - i;\n                    // Skip the cell if it's not empty.\n                    if (!MatrixUtil.isEmpty(matrix.get(xx, y))) {\n                        continue;\n                    }\n                    var bit = void 0;\n                    if (bitIndex < dataBits.getSize()) {\n                        bit = dataBits.get(bitIndex);\n                        ++bitIndex;\n                    }\n                    else {\n                        // Padding bit. If there is no bit left, we'll fill the left cells with 0, as described\n                        // in 8.4.9 of JISX0510:2004 (p. 24).\n                        bit = false;\n                    }\n                    // Skip masking if mask_pattern is -1 (TYPESCRIPTPORT: 255).\n                    if (maskPattern !== 255 && MaskUtil.getDataMaskBit(maskPattern, xx, y)) {\n                        bit = !bit;\n                    }\n                    matrix.setBoolean(xx, y, bit);\n                }\n                y += direction;\n            }\n            direction = -direction; // Reverse the direction.\n            y += direction;\n            x -= 2; // Move to the left.\n        }\n        // All bits should be consumed.\n        if (bitIndex !== dataBits.getSize()) {\n            throw new WriterException('Not all bits consumed: ' + bitIndex + '/' + dataBits.getSize());\n        }\n    };\n    // Return the position of the most significant bit set (one: to) in the \"value\". The most\n    // significant bit is position 32. If there is no bit set, return 0. Examples:\n    // - findMSBSet(0) => 0\n    // - findMSBSet(1) => 1\n    // - findMSBSet(255) => 8\n    MatrixUtil.findMSBSet = function (value /*int*/) {\n        return 32 - Integer.numberOfLeadingZeros(value);\n    };\n    // Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for \"value\" using polynomial \"poly\". The BCH\n    // code is used for encoding type information and version information.\n    // Example: Calculation of version information of 7.\n    // f(x) is created from 7.\n    //   - 7 = 000111 in 6 bits\n    //   - f(x) = x^2 + x^1 + x^0\n    // g(x) is given by the standard (p. 67)\n    //   - g(x) = x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1\n    // Multiply f(x) by x^(18 - 6)\n    //   - f'(x) = f(x) * x^(18 - 6)\n    //   - f'(x) = x^14 + x^13 + x^12\n    // Calculate the remainder of f'(x) / g(x)\n    //         x^2\n    //         __________________________________________________\n    //   g(x) )x^14 + x^13 + x^12\n    //         x^14 + x^13 + x^12 + x^11 + x^10 + x^7 + x^4 + x^2\n    //         --------------------------------------------------\n    //                              x^11 + x^10 + x^7 + x^4 + x^2\n    //\n    // The remainder is x^11 + x^10 + x^7 + x^4 + x^2\n    // Encode it in binary: 110010010100\n    // The return value is 0xc94 (1100 1001 0100)\n    //\n    // Since all coefficients in the polynomials are 1 or 0, we can do the calculation by bit\n    // operations. We don't care if coefficients are positive or negative.\n    MatrixUtil.calculateBCHCode = function (value /*int*/, poly /*int*/) {\n        if (poly === 0) {\n            throw new IllegalArgumentException('0 polynomial');\n        }\n        // If poly is \"1 1111 0010 0101\" (version info poly), msbSetInPoly is 13. We'll subtract 1\n        // from 13 to make it 12.\n        var msbSetInPoly = MatrixUtil.findMSBSet(poly);\n        value <<= msbSetInPoly - 1;\n        // Do the division business using exclusive-or operations.\n        while (MatrixUtil.findMSBSet(value) >= msbSetInPoly) {\n            value ^= poly << (MatrixUtil.findMSBSet(value) - msbSetInPoly);\n        }\n        // Now the \"value\" is the remainder (i.e. the BCH code)\n        return value;\n    };\n    // Make bit vector of type information. On success, store the result in \"bits\" and return true.\n    // Encode error correction level and mask pattern. See 8.9 of\n    // JISX0510:2004 (p.45) for details.\n    MatrixUtil.makeTypeInfoBits = function (ecLevel, maskPattern /*int*/, bits) {\n        if (!QRCode.isValidMaskPattern(maskPattern)) {\n            throw new WriterException('Invalid mask pattern');\n        }\n        var typeInfo = (ecLevel.getBits() << 3) | maskPattern;\n        bits.appendBits(typeInfo, 5);\n        var bchCode = MatrixUtil.calculateBCHCode(typeInfo, MatrixUtil.TYPE_INFO_POLY);\n        bits.appendBits(bchCode, 10);\n        var maskBits = new BitArray();\n        maskBits.appendBits(MatrixUtil.TYPE_INFO_MASK_PATTERN, 15);\n        bits.xor(maskBits);\n        if (bits.getSize() !== 15) { // Just in case.\n            throw new WriterException('should not happen but we got: ' + bits.getSize());\n        }\n    };\n    // Make bit vector of version information. On success, store the result in \"bits\" and return true.\n    // See 8.10 of JISX0510:2004 (p.45) for details.\n    MatrixUtil.makeVersionInfoBits = function (version, bits) {\n        bits.appendBits(version.getVersionNumber(), 6);\n        var bchCode = MatrixUtil.calculateBCHCode(version.getVersionNumber(), MatrixUtil.VERSION_INFO_POLY);\n        bits.appendBits(bchCode, 12);\n        if (bits.getSize() !== 18) { // Just in case.\n            throw new WriterException('should not happen but we got: ' + bits.getSize());\n        }\n    };\n    // Check if \"value\" is empty.\n    MatrixUtil.isEmpty = function (value /*int*/) {\n        return value === 255; // -1\n    };\n    MatrixUtil.embedTimingPatterns = function (matrix) {\n        // -8 is for skipping position detection patterns (7: size), and two horizontal/vertical\n        // separation patterns (1: size). Thus, 8 = 7 + 1.\n        for (var i = 8; i < matrix.getWidth() - 8; ++i) {\n            var bit = (i + 1) % 2;\n            // Horizontal line.\n            if (MatrixUtil.isEmpty(matrix.get(i, 6))) {\n                matrix.setNumber(i, 6, bit);\n            }\n            // Vertical line.\n            if (MatrixUtil.isEmpty(matrix.get(6, i))) {\n                matrix.setNumber(6, i, bit);\n            }\n        }\n    };\n    // Embed the lonely dark dot at left bottom corner. JISX0510:2004 (p.46)\n    MatrixUtil.embedDarkDotAtLeftBottomCorner = function (matrix) {\n        if (matrix.get(8, matrix.getHeight() - 8) === 0) {\n            throw new WriterException();\n        }\n        matrix.setNumber(8, matrix.getHeight() - 8, 1);\n    };\n    MatrixUtil.embedHorizontalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n        for (var x = 0; x < 8; ++x) {\n            if (!MatrixUtil.isEmpty(matrix.get(xStart + x, yStart))) {\n                throw new WriterException();\n            }\n            matrix.setNumber(xStart + x, yStart, 0);\n        }\n    };\n    MatrixUtil.embedVerticalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n        for (var y = 0; y < 7; ++y) {\n            if (!MatrixUtil.isEmpty(matrix.get(xStart, yStart + y))) {\n                throw new WriterException();\n            }\n            matrix.setNumber(xStart, yStart + y, 0);\n        }\n    };\n    MatrixUtil.embedPositionAdjustmentPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n        for (var y = 0; y < 5; ++y) {\n            var patternY = MatrixUtil.POSITION_ADJUSTMENT_PATTERN[y];\n            for (var x = 0; x < 5; ++x) {\n                matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n            }\n        }\n    };\n    MatrixUtil.embedPositionDetectionPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n        for (var y = 0; y < 7; ++y) {\n            var patternY = MatrixUtil.POSITION_DETECTION_PATTERN[y];\n            for (var x = 0; x < 7; ++x) {\n                matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n            }\n        }\n    };\n    // Embed position detection patterns and surrounding vertical/horizontal separators.\n    MatrixUtil.embedPositionDetectionPatternsAndSeparators = function (matrix) {\n        // Embed three big squares at corners.\n        var pdpWidth = MatrixUtil.POSITION_DETECTION_PATTERN[0].length;\n        // Left top corner.\n        MatrixUtil.embedPositionDetectionPattern(0, 0, matrix);\n        // Right top corner.\n        MatrixUtil.embedPositionDetectionPattern(matrix.getWidth() - pdpWidth, 0, matrix);\n        // Left bottom corner.\n        MatrixUtil.embedPositionDetectionPattern(0, matrix.getWidth() - pdpWidth, matrix);\n        // Embed horizontal separation patterns around the squares.\n        var hspWidth = 8;\n        // Left top corner.\n        MatrixUtil.embedHorizontalSeparationPattern(0, hspWidth - 1, matrix);\n        // Right top corner.\n        MatrixUtil.embedHorizontalSeparationPattern(matrix.getWidth() - hspWidth, hspWidth - 1, matrix);\n        // Left bottom corner.\n        MatrixUtil.embedHorizontalSeparationPattern(0, matrix.getWidth() - hspWidth, matrix);\n        // Embed vertical separation patterns around the squares.\n        var vspSize = 7;\n        // Left top corner.\n        MatrixUtil.embedVerticalSeparationPattern(vspSize, 0, matrix);\n        // Right top corner.\n        MatrixUtil.embedVerticalSeparationPattern(matrix.getHeight() - vspSize - 1, 0, matrix);\n        // Left bottom corner.\n        MatrixUtil.embedVerticalSeparationPattern(vspSize, matrix.getHeight() - vspSize, matrix);\n    };\n    // Embed position adjustment patterns if need be.\n    MatrixUtil.maybeEmbedPositionAdjustmentPatterns = function (version, matrix) {\n        if (version.getVersionNumber() < 2) { // The patterns appear if version >= 2\n            return;\n        }\n        var index = version.getVersionNumber() - 1;\n        var coordinates = MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index];\n        for (var i = 0, length_1 = coordinates.length; i !== length_1; i++) {\n            var y = coordinates[i];\n            if (y >= 0) {\n                for (var j = 0; j !== length_1; j++) {\n                    var x = coordinates[j];\n                    if (x >= 0 && MatrixUtil.isEmpty(matrix.get(x, y))) {\n                        // If the cell is unset, we embed the position adjustment pattern here.\n                        // -2 is necessary since the x/y coordinates point to the center of the pattern, not the\n                        // left top corner.\n                        MatrixUtil.embedPositionAdjustmentPattern(x - 2, y - 2, matrix);\n                    }\n                }\n            }\n        }\n    };\n    MatrixUtil.POSITION_DETECTION_PATTERN = Array.from([\n        Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n        Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n        Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n        Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n        Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n        Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n        Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n    ]);\n    MatrixUtil.POSITION_ADJUSTMENT_PATTERN = Array.from([\n        Int32Array.from([1, 1, 1, 1, 1]),\n        Int32Array.from([1, 0, 0, 0, 1]),\n        Int32Array.from([1, 0, 1, 0, 1]),\n        Int32Array.from([1, 0, 0, 0, 1]),\n        Int32Array.from([1, 1, 1, 1, 1]),\n    ]);\n    // From Appendix E. Table 1, JIS0510X:2004 (71: p). The table was double-checked by komatsu.\n    MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE = Array.from([\n        Int32Array.from([-1, -1, -1, -1, -1, -1, -1]),\n        Int32Array.from([6, 18, -1, -1, -1, -1, -1]),\n        Int32Array.from([6, 22, -1, -1, -1, -1, -1]),\n        Int32Array.from([6, 26, -1, -1, -1, -1, -1]),\n        Int32Array.from([6, 30, -1, -1, -1, -1, -1]),\n        Int32Array.from([6, 34, -1, -1, -1, -1, -1]),\n        Int32Array.from([6, 22, 38, -1, -1, -1, -1]),\n        Int32Array.from([6, 24, 42, -1, -1, -1, -1]),\n        Int32Array.from([6, 26, 46, -1, -1, -1, -1]),\n        Int32Array.from([6, 28, 50, -1, -1, -1, -1]),\n        Int32Array.from([6, 30, 54, -1, -1, -1, -1]),\n        Int32Array.from([6, 32, 58, -1, -1, -1, -1]),\n        Int32Array.from([6, 34, 62, -1, -1, -1, -1]),\n        Int32Array.from([6, 26, 46, 66, -1, -1, -1]),\n        Int32Array.from([6, 26, 48, 70, -1, -1, -1]),\n        Int32Array.from([6, 26, 50, 74, -1, -1, -1]),\n        Int32Array.from([6, 30, 54, 78, -1, -1, -1]),\n        Int32Array.from([6, 30, 56, 82, -1, -1, -1]),\n        Int32Array.from([6, 30, 58, 86, -1, -1, -1]),\n        Int32Array.from([6, 34, 62, 90, -1, -1, -1]),\n        Int32Array.from([6, 28, 50, 72, 94, -1, -1]),\n        Int32Array.from([6, 26, 50, 74, 98, -1, -1]),\n        Int32Array.from([6, 30, 54, 78, 102, -1, -1]),\n        Int32Array.from([6, 28, 54, 80, 106, -1, -1]),\n        Int32Array.from([6, 32, 58, 84, 110, -1, -1]),\n        Int32Array.from([6, 30, 58, 86, 114, -1, -1]),\n        Int32Array.from([6, 34, 62, 90, 118, -1, -1]),\n        Int32Array.from([6, 26, 50, 74, 98, 122, -1]),\n        Int32Array.from([6, 30, 54, 78, 102, 126, -1]),\n        Int32Array.from([6, 26, 52, 78, 104, 130, -1]),\n        Int32Array.from([6, 30, 56, 82, 108, 134, -1]),\n        Int32Array.from([6, 34, 60, 86, 112, 138, -1]),\n        Int32Array.from([6, 30, 58, 86, 114, 142, -1]),\n        Int32Array.from([6, 34, 62, 90, 118, 146, -1]),\n        Int32Array.from([6, 30, 54, 78, 102, 126, 150]),\n        Int32Array.from([6, 24, 50, 76, 102, 128, 154]),\n        Int32Array.from([6, 28, 54, 80, 106, 132, 158]),\n        Int32Array.from([6, 32, 58, 84, 110, 136, 162]),\n        Int32Array.from([6, 26, 54, 82, 110, 138, 166]),\n        Int32Array.from([6, 30, 58, 86, 114, 142, 170]),\n    ]);\n    // Type info cells at the left top corner.\n    MatrixUtil.TYPE_INFO_COORDINATES = Array.from([\n        Int32Array.from([8, 0]),\n        Int32Array.from([8, 1]),\n        Int32Array.from([8, 2]),\n        Int32Array.from([8, 3]),\n        Int32Array.from([8, 4]),\n        Int32Array.from([8, 5]),\n        Int32Array.from([8, 7]),\n        Int32Array.from([8, 8]),\n        Int32Array.from([7, 8]),\n        Int32Array.from([5, 8]),\n        Int32Array.from([4, 8]),\n        Int32Array.from([3, 8]),\n        Int32Array.from([2, 8]),\n        Int32Array.from([1, 8]),\n        Int32Array.from([0, 8]),\n    ]);\n    // From Appendix D in JISX0510:2004 (p. 67)\n    MatrixUtil.VERSION_INFO_POLY = 0x1f25; // 1 1111 0010 0101\n    // From Appendix C in JISX0510:2004 (p.65).\n    MatrixUtil.TYPE_INFO_POLY = 0x537;\n    MatrixUtil.TYPE_INFO_MASK_PATTERN = 0x5412;\n    return MatrixUtil;\n}());\nexport default MatrixUtil;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar BlockPair = /** @class */ (function () {\n    function BlockPair(dataBytes, errorCorrectionBytes) {\n        this.dataBytes = dataBytes;\n        this.errorCorrectionBytes = errorCorrectionBytes;\n    }\n    BlockPair.prototype.getDataBytes = function () {\n        return this.dataBytes;\n    };\n    BlockPair.prototype.getErrorCorrectionBytes = function () {\n        return this.errorCorrectionBytes;\n    };\n    return BlockPair;\n}());\nexport default BlockPair;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*namespace com.google.zxing.qrcode.encoder {*/\nimport EncodeHintType from '../../EncodeHintType';\nimport BitArray from '../../common/BitArray';\nimport CharacterSetECI from '../../common/CharacterSetECI';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport ReedSolomonEncoder from '../../common/reedsolomon/ReedSolomonEncoder';\nimport Mode from '../decoder/Mode';\nimport Version from '../decoder/Version';\nimport MaskUtil from './MaskUtil';\nimport ByteMatrix from './ByteMatrix';\nimport QRCode from './QRCode';\nimport MatrixUtil from './MatrixUtil';\nimport StringEncoding from '../../util/StringEncoding';\nimport BlockPair from './BlockPair';\nimport WriterException from '../../WriterException';\n/*import java.io.UnsupportedEncodingException;*/\n/*import java.util.ArrayList;*/\n/*import java.util.Collection;*/\n/*import java.util.Map;*/\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar Encoder = /** @class */ (function () {\n    // TYPESCRIPTPORT: changed to UTF8, the default for js\n    function Encoder() {\n    }\n    // The mask penalty calculation is complicated.  See Table 21 of JISX0510:2004 (p.45) for details.\n    // Basically it applies four rules and summate all penalties.\n    Encoder.calculateMaskPenalty = function (matrix) {\n        return MaskUtil.applyMaskPenaltyRule1(matrix)\n            + MaskUtil.applyMaskPenaltyRule2(matrix)\n            + MaskUtil.applyMaskPenaltyRule3(matrix)\n            + MaskUtil.applyMaskPenaltyRule4(matrix);\n    };\n    /**\n     * @param content text to encode\n     * @param ecLevel error correction level to use\n     * @return {@link QRCode} representing the encoded QR code\n     * @throws WriterException if encoding can't succeed, because of for example invalid content\n     *   or configuration\n     */\n    // public static encode(content: string, ecLevel: ErrorCorrectionLevel): QRCode /*throws WriterException*/ {\n    //   return encode(content, ecLevel, null)\n    // }\n    Encoder.encode = function (content, ecLevel, hints) {\n        if (hints === void 0) { hints = null; }\n        // Determine what character encoding has been specified by the caller, if any\n        var encoding = Encoder.DEFAULT_BYTE_MODE_ENCODING;\n        var hasEncodingHint = hints !== null && undefined !== hints.get(EncodeHintType.CHARACTER_SET);\n        if (hasEncodingHint) {\n            encoding = hints.get(EncodeHintType.CHARACTER_SET).toString();\n        }\n        // Pick an encoding mode appropriate for the content. Note that this will not attempt to use\n        // multiple modes / segments even if that were more efficient. Twould be nice.\n        var mode = this.chooseMode(content, encoding);\n        // This will store the header information, like mode and\n        // length, as well as \"header\" segments like an ECI segment.\n        var headerBits = new BitArray();\n        // Append ECI segment if applicable\n        if (mode === Mode.BYTE && (hasEncodingHint || Encoder.DEFAULT_BYTE_MODE_ENCODING !== encoding)) {\n            var eci = CharacterSetECI.getCharacterSetECIByName(encoding);\n            if (eci !== undefined) {\n                this.appendECI(eci, headerBits);\n            }\n        }\n        // (With ECI in place,) Write the mode marker\n        this.appendModeInfo(mode, headerBits);\n        // Collect data within the main segment, separately, to count its size if needed. Don't add it to\n        // main payload yet.\n        var dataBits = new BitArray();\n        this.appendBytes(content, mode, dataBits, encoding);\n        var version;\n        if (hints !== null && undefined !== hints.get(EncodeHintType.QR_VERSION)) {\n            var versionNumber = Number.parseInt(hints.get(EncodeHintType.QR_VERSION).toString(), 10);\n            version = Version.getVersionForNumber(versionNumber);\n            var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, version);\n            if (!this.willFit(bitsNeeded, version, ecLevel)) {\n                throw new WriterException('Data too big for requested version');\n            }\n        }\n        else {\n            version = this.recommendVersion(ecLevel, mode, headerBits, dataBits);\n        }\n        var headerAndDataBits = new BitArray();\n        headerAndDataBits.appendBitArray(headerBits);\n        // Find \"length\" of main segment and write it\n        var numLetters = mode === Mode.BYTE ? dataBits.getSizeInBytes() : content.length;\n        this.appendLengthInfo(numLetters, version, mode, headerAndDataBits);\n        // Put data together into the overall payload\n        headerAndDataBits.appendBitArray(dataBits);\n        var ecBlocks = version.getECBlocksForLevel(ecLevel);\n        var numDataBytes = version.getTotalCodewords() - ecBlocks.getTotalECCodewords();\n        // Terminate the bits properly.\n        this.terminateBits(numDataBytes, headerAndDataBits);\n        // Interleave data bits with error correction code.\n        var finalBits = this.interleaveWithECBytes(headerAndDataBits, version.getTotalCodewords(), numDataBytes, ecBlocks.getNumBlocks());\n        var qrCode = new QRCode();\n        qrCode.setECLevel(ecLevel);\n        qrCode.setMode(mode);\n        qrCode.setVersion(version);\n        //  Choose the mask pattern and set to \"qrCode\".\n        var dimension = version.getDimensionForVersion();\n        var matrix = new ByteMatrix(dimension, dimension);\n        var maskPattern = this.chooseMaskPattern(finalBits, ecLevel, version, matrix);\n        qrCode.setMaskPattern(maskPattern);\n        // Build the matrix and set it to \"qrCode\".\n        MatrixUtil.buildMatrix(finalBits, ecLevel, version, maskPattern, matrix);\n        qrCode.setMatrix(matrix);\n        return qrCode;\n    };\n    /**\n     * Decides the smallest version of QR code that will contain all of the provided data.\n     *\n     * @throws WriterException if the data cannot fit in any version\n     */\n    Encoder.recommendVersion = function (ecLevel, mode, headerBits, dataBits) {\n        // Hard part: need to know version to know how many bits length takes. But need to know how many\n        // bits it takes to know version. First we take a guess at version by assuming version will be\n        // the minimum, 1:\n        var provisionalBitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, Version.getVersionForNumber(1));\n        var provisionalVersion = this.chooseVersion(provisionalBitsNeeded, ecLevel);\n        // Use that guess to calculate the right version. I am still not sure this works in 100% of cases.\n        var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, provisionalVersion);\n        return this.chooseVersion(bitsNeeded, ecLevel);\n    };\n    Encoder.calculateBitsNeeded = function (mode, headerBits, dataBits, version) {\n        return headerBits.getSize() + mode.getCharacterCountBits(version) + dataBits.getSize();\n    };\n    /**\n     * @return the code point of the table used in alphanumeric mode or\n     *  -1 if there is no corresponding code in the table.\n     */\n    Encoder.getAlphanumericCode = function (code /*int*/) {\n        if (code < Encoder.ALPHANUMERIC_TABLE.length) {\n            return Encoder.ALPHANUMERIC_TABLE[code];\n        }\n        return -1;\n    };\n    // public static chooseMode(content: string): Mode {\n    //   return chooseMode(content, null);\n    // }\n    /**\n     * Choose the best mode by examining the content. Note that 'encoding' is used as a hint;\n     * if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}.\n     */\n    Encoder.chooseMode = function (content, encoding) {\n        if (encoding === void 0) { encoding = null; }\n        if (CharacterSetECI.SJIS.getName() === encoding && this.isOnlyDoubleByteKanji(content)) {\n            // Choose Kanji mode if all input are double-byte characters\n            return Mode.KANJI;\n        }\n        var hasNumeric = false;\n        var hasAlphanumeric = false;\n        for (var i = 0, length_1 = content.length; i < length_1; ++i) {\n            var c = content.charAt(i);\n            if (Encoder.isDigit(c)) {\n                hasNumeric = true;\n            }\n            else if (this.getAlphanumericCode(c.charCodeAt(0)) !== -1) {\n                hasAlphanumeric = true;\n            }\n            else {\n                return Mode.BYTE;\n            }\n        }\n        if (hasAlphanumeric) {\n            return Mode.ALPHANUMERIC;\n        }\n        if (hasNumeric) {\n            return Mode.NUMERIC;\n        }\n        return Mode.BYTE;\n    };\n    Encoder.isOnlyDoubleByteKanji = function (content) {\n        var bytes;\n        try {\n            bytes = StringEncoding.encode(content, CharacterSetECI.SJIS); // content.getBytes(\"Shift_JIS\"))\n        }\n        catch (ignored /*: UnsupportedEncodingException*/) {\n            return false;\n        }\n        var length = bytes.length;\n        if (length % 2 !== 0) {\n            return false;\n        }\n        for (var i = 0; i < length; i += 2) {\n            var byte1 = bytes[i] & 0xFF;\n            if ((byte1 < 0x81 || byte1 > 0x9F) && (byte1 < 0xE0 || byte1 > 0xEB)) {\n                return false;\n            }\n        }\n        return true;\n    };\n    Encoder.chooseMaskPattern = function (bits, ecLevel, version, matrix) {\n        var minPenalty = Number.MAX_SAFE_INTEGER; // Lower penalty is better.\n        var bestMaskPattern = -1;\n        // We try all mask patterns to choose the best one.\n        for (var maskPattern = 0; maskPattern < QRCode.NUM_MASK_PATTERNS; maskPattern++) {\n            MatrixUtil.buildMatrix(bits, ecLevel, version, maskPattern, matrix);\n            var penalty = this.calculateMaskPenalty(matrix);\n            if (penalty < minPenalty) {\n                minPenalty = penalty;\n                bestMaskPattern = maskPattern;\n            }\n        }\n        return bestMaskPattern;\n    };\n    Encoder.chooseVersion = function (numInputBits /*int*/, ecLevel) {\n        for (var versionNum = 1; versionNum <= 40; versionNum++) {\n            var version = Version.getVersionForNumber(versionNum);\n            if (Encoder.willFit(numInputBits, version, ecLevel)) {\n                return version;\n            }\n        }\n        throw new WriterException('Data too big');\n    };\n    /**\n     * @return true if the number of input bits will fit in a code with the specified version and\n     * error correction level.\n     */\n    Encoder.willFit = function (numInputBits /*int*/, version, ecLevel) {\n        // In the following comments, we use numbers of Version 7-H.\n        // numBytes = 196\n        var numBytes = version.getTotalCodewords();\n        // getNumECBytes = 130\n        var ecBlocks = version.getECBlocksForLevel(ecLevel);\n        var numEcBytes = ecBlocks.getTotalECCodewords();\n        // getNumDataBytes = 196 - 130 = 66\n        var numDataBytes = numBytes - numEcBytes;\n        var totalInputBytes = (numInputBits + 7) / 8;\n        return numDataBytes >= totalInputBytes;\n    };\n    /**\n     * Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24).\n     */\n    Encoder.terminateBits = function (numDataBytes /*int*/, bits) {\n        var capacity = numDataBytes * 8;\n        if (bits.getSize() > capacity) {\n            throw new WriterException('data bits cannot fit in the QR Code' + bits.getSize() + ' > ' +\n                capacity);\n        }\n        for (var i = 0; i < 4 && bits.getSize() < capacity; ++i) {\n            bits.appendBit(false);\n        }\n        // Append termination bits. See 8.4.8 of JISX0510:2004 (p.24) for details.\n        // If the last byte isn't 8-bit aligned, we'll add padding bits.\n        var numBitsInLastByte = bits.getSize() & 0x07;\n        if (numBitsInLastByte > 0) {\n            for (var i = numBitsInLastByte; i < 8; i++) {\n                bits.appendBit(false);\n            }\n        }\n        // If we have more space, we'll fill the space with padding patterns defined in 8.4.9 (p.24).\n        var numPaddingBytes = numDataBytes - bits.getSizeInBytes();\n        for (var i = 0; i < numPaddingBytes; ++i) {\n            bits.appendBits((i & 0x01) === 0 ? 0xEC : 0x11, 8);\n        }\n        if (bits.getSize() !== capacity) {\n            throw new WriterException('Bits size does not equal capacity');\n        }\n    };\n    /**\n     * Get number of data bytes and number of error correction bytes for block id \"blockID\". Store\n     * the result in \"numDataBytesInBlock\", and \"numECBytesInBlock\". See table 12 in 8.5.1 of\n     * JISX0510:2004 (p.30)\n     */\n    Encoder.getNumDataBytesAndNumECBytesForBlockID = function (numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/, blockID /*int*/, numDataBytesInBlock, numECBytesInBlock) {\n        if (blockID >= numRSBlocks) {\n            throw new WriterException('Block ID too large');\n        }\n        // numRsBlocksInGroup2 = 196 % 5 = 1\n        var numRsBlocksInGroup2 = numTotalBytes % numRSBlocks;\n        // numRsBlocksInGroup1 = 5 - 1 = 4\n        var numRsBlocksInGroup1 = numRSBlocks - numRsBlocksInGroup2;\n        // numTotalBytesInGroup1 = 196 / 5 = 39\n        var numTotalBytesInGroup1 = Math.floor(numTotalBytes / numRSBlocks);\n        // numTotalBytesInGroup2 = 39 + 1 = 40\n        var numTotalBytesInGroup2 = numTotalBytesInGroup1 + 1;\n        // numDataBytesInGroup1 = 66 / 5 = 13\n        var numDataBytesInGroup1 = Math.floor(numDataBytes / numRSBlocks);\n        // numDataBytesInGroup2 = 13 + 1 = 14\n        var numDataBytesInGroup2 = numDataBytesInGroup1 + 1;\n        // numEcBytesInGroup1 = 39 - 13 = 26\n        var numEcBytesInGroup1 = numTotalBytesInGroup1 - numDataBytesInGroup1;\n        // numEcBytesInGroup2 = 40 - 14 = 26\n        var numEcBytesInGroup2 = numTotalBytesInGroup2 - numDataBytesInGroup2;\n        // Sanity checks.\n        // 26 = 26\n        if (numEcBytesInGroup1 !== numEcBytesInGroup2) {\n            throw new WriterException('EC bytes mismatch');\n        }\n        // 5 = 4 + 1.\n        if (numRSBlocks !== numRsBlocksInGroup1 + numRsBlocksInGroup2) {\n            throw new WriterException('RS blocks mismatch');\n        }\n        // 196 = (13 + 26) * 4 + (14 + 26) * 1\n        if (numTotalBytes !==\n            ((numDataBytesInGroup1 + numEcBytesInGroup1) *\n                numRsBlocksInGroup1) +\n                ((numDataBytesInGroup2 + numEcBytesInGroup2) *\n                    numRsBlocksInGroup2)) {\n            throw new WriterException('Total bytes mismatch');\n        }\n        if (blockID < numRsBlocksInGroup1) {\n            numDataBytesInBlock[0] = numDataBytesInGroup1;\n            numECBytesInBlock[0] = numEcBytesInGroup1;\n        }\n        else {\n            numDataBytesInBlock[0] = numDataBytesInGroup2;\n            numECBytesInBlock[0] = numEcBytesInGroup2;\n        }\n    };\n    /**\n     * Interleave \"bits\" with corresponding error correction bytes. On success, store the result in\n     * \"result\". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details.\n     */\n    Encoder.interleaveWithECBytes = function (bits, numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/) {\n        var e_1, _a, e_2, _b;\n        // \"bits\" must have \"getNumDataBytes\" bytes of data.\n        if (bits.getSizeInBytes() !== numDataBytes) {\n            throw new WriterException('Number of bits and data bytes does not match');\n        }\n        // Step 1.  Divide data bytes into blocks and generate error correction bytes for them. We'll\n        // store the divided data bytes blocks and error correction bytes blocks into \"blocks\".\n        var dataBytesOffset = 0;\n        var maxNumDataBytes = 0;\n        var maxNumEcBytes = 0;\n        // Since, we know the number of reedsolmon blocks, we can initialize the vector with the number.\n        var blocks = new Array(); // new Array<BlockPair>(numRSBlocks)\n        for (var i = 0; i < numRSBlocks; ++i) {\n            var numDataBytesInBlock = new Int32Array(1);\n            var numEcBytesInBlock = new Int32Array(1);\n            Encoder.getNumDataBytesAndNumECBytesForBlockID(numTotalBytes, numDataBytes, numRSBlocks, i, numDataBytesInBlock, numEcBytesInBlock);\n            var size = numDataBytesInBlock[0];\n            var dataBytes = new Uint8Array(size);\n            bits.toBytes(8 * dataBytesOffset, dataBytes, 0, size);\n            var ecBytes = Encoder.generateECBytes(dataBytes, numEcBytesInBlock[0]);\n            blocks.push(new BlockPair(dataBytes, ecBytes));\n            maxNumDataBytes = Math.max(maxNumDataBytes, size);\n            maxNumEcBytes = Math.max(maxNumEcBytes, ecBytes.length);\n            dataBytesOffset += numDataBytesInBlock[0];\n        }\n        if (numDataBytes !== dataBytesOffset) {\n            throw new WriterException('Data bytes does not match offset');\n        }\n        var result = new BitArray();\n        // First, place data blocks.\n        for (var i = 0; i < maxNumDataBytes; ++i) {\n            try {\n                for (var blocks_1 = (e_1 = void 0, __values(blocks)), blocks_1_1 = blocks_1.next(); !blocks_1_1.done; blocks_1_1 = blocks_1.next()) {\n                    var block = blocks_1_1.value;\n                    var dataBytes = block.getDataBytes();\n                    if (i < dataBytes.length) {\n                        result.appendBits(dataBytes[i], 8);\n                    }\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (blocks_1_1 && !blocks_1_1.done && (_a = blocks_1.return)) _a.call(blocks_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n        // Then, place error correction blocks.\n        for (var i = 0; i < maxNumEcBytes; ++i) {\n            try {\n                for (var blocks_2 = (e_2 = void 0, __values(blocks)), blocks_2_1 = blocks_2.next(); !blocks_2_1.done; blocks_2_1 = blocks_2.next()) {\n                    var block = blocks_2_1.value;\n                    var ecBytes = block.getErrorCorrectionBytes();\n                    if (i < ecBytes.length) {\n                        result.appendBits(ecBytes[i], 8);\n                    }\n                }\n            }\n            catch (e_2_1) { e_2 = { error: e_2_1 }; }\n            finally {\n                try {\n                    if (blocks_2_1 && !blocks_2_1.done && (_b = blocks_2.return)) _b.call(blocks_2);\n                }\n                finally { if (e_2) throw e_2.error; }\n            }\n        }\n        if (numTotalBytes !== result.getSizeInBytes()) { // Should be same.\n            throw new WriterException('Interleaving error: ' + numTotalBytes + ' and ' +\n                result.getSizeInBytes() + ' differ.');\n        }\n        return result;\n    };\n    Encoder.generateECBytes = function (dataBytes, numEcBytesInBlock /*int*/) {\n        var numDataBytes = dataBytes.length;\n        var toEncode = new Int32Array(numDataBytes + numEcBytesInBlock); // int[numDataBytes + numEcBytesInBlock]\n        for (var i = 0; i < numDataBytes; i++) {\n            toEncode[i] = dataBytes[i] & 0xFF;\n        }\n        new ReedSolomonEncoder(GenericGF.QR_CODE_FIELD_256).encode(toEncode, numEcBytesInBlock);\n        var ecBytes = new Uint8Array(numEcBytesInBlock);\n        for (var i = 0; i < numEcBytesInBlock; i++) {\n            ecBytes[i] = /*(byte) */ toEncode[numDataBytes + i];\n        }\n        return ecBytes;\n    };\n    /**\n     * Append mode info. On success, store the result in \"bits\".\n     */\n    Encoder.appendModeInfo = function (mode, bits) {\n        bits.appendBits(mode.getBits(), 4);\n    };\n    /**\n     * Append length info. On success, store the result in \"bits\".\n     */\n    Encoder.appendLengthInfo = function (numLetters /*int*/, version, mode, bits) {\n        var numBits = mode.getCharacterCountBits(version);\n        if (numLetters >= (1 << numBits)) {\n            throw new WriterException(numLetters + ' is bigger than ' + ((1 << numBits) - 1));\n        }\n        bits.appendBits(numLetters, numBits);\n    };\n    /**\n     * Append \"bytes\" in \"mode\" mode (encoding) into \"bits\". On success, store the result in \"bits\".\n     */\n    Encoder.appendBytes = function (content, mode, bits, encoding) {\n        switch (mode) {\n            case Mode.NUMERIC:\n                Encoder.appendNumericBytes(content, bits);\n                break;\n            case Mode.ALPHANUMERIC:\n                Encoder.appendAlphanumericBytes(content, bits);\n                break;\n            case Mode.BYTE:\n                Encoder.append8BitBytes(content, bits, encoding);\n                break;\n            case Mode.KANJI:\n                Encoder.appendKanjiBytes(content, bits);\n                break;\n            default:\n                throw new WriterException('Invalid mode: ' + mode);\n        }\n    };\n    Encoder.getDigit = function (singleCharacter) {\n        return singleCharacter.charCodeAt(0) - 48;\n    };\n    Encoder.isDigit = function (singleCharacter) {\n        var cn = Encoder.getDigit(singleCharacter);\n        return cn >= 0 && cn <= 9;\n    };\n    Encoder.appendNumericBytes = function (content, bits) {\n        var length = content.length;\n        var i = 0;\n        while (i < length) {\n            var num1 = Encoder.getDigit(content.charAt(i));\n            if (i + 2 < length) {\n                // Encode three numeric letters in ten bits.\n                var num2 = Encoder.getDigit(content.charAt(i + 1));\n                var num3 = Encoder.getDigit(content.charAt(i + 2));\n                bits.appendBits(num1 * 100 + num2 * 10 + num3, 10);\n                i += 3;\n            }\n            else if (i + 1 < length) {\n                // Encode two numeric letters in seven bits.\n                var num2 = Encoder.getDigit(content.charAt(i + 1));\n                bits.appendBits(num1 * 10 + num2, 7);\n                i += 2;\n            }\n            else {\n                // Encode one numeric letter in four bits.\n                bits.appendBits(num1, 4);\n                i++;\n            }\n        }\n    };\n    Encoder.appendAlphanumericBytes = function (content, bits) {\n        var length = content.length;\n        var i = 0;\n        while (i < length) {\n            var code1 = Encoder.getAlphanumericCode(content.charCodeAt(i));\n            if (code1 === -1) {\n                throw new WriterException();\n            }\n            if (i + 1 < length) {\n                var code2 = Encoder.getAlphanumericCode(content.charCodeAt(i + 1));\n                if (code2 === -1) {\n                    throw new WriterException();\n                }\n                // Encode two alphanumeric letters in 11 bits.\n                bits.appendBits(code1 * 45 + code2, 11);\n                i += 2;\n            }\n            else {\n                // Encode one alphanumeric letter in six bits.\n                bits.appendBits(code1, 6);\n                i++;\n            }\n        }\n    };\n    Encoder.append8BitBytes = function (content, bits, encoding) {\n        var bytes;\n        try {\n            bytes = StringEncoding.encode(content, encoding);\n        }\n        catch (uee /*: UnsupportedEncodingException*/) {\n            throw new WriterException(uee);\n        }\n        for (var i = 0, length_2 = bytes.length; i !== length_2; i++) {\n            var b = bytes[i];\n            bits.appendBits(b, 8);\n        }\n    };\n    /**\n     * @throws WriterException\n     */\n    Encoder.appendKanjiBytes = function (content, bits) {\n        var bytes;\n        try {\n            bytes = StringEncoding.encode(content, CharacterSetECI.SJIS);\n        }\n        catch (uee /*: UnsupportedEncodingException*/) {\n            throw new WriterException(uee);\n        }\n        var length = bytes.length;\n        for (var i = 0; i < length; i += 2) {\n            var byte1 = bytes[i] & 0xFF;\n            var byte2 = bytes[i + 1] & 0xFF;\n            var code = ((byte1 << 8) & 0xFFFFFFFF) | byte2;\n            var subtracted = -1;\n            if (code >= 0x8140 && code <= 0x9ffc) {\n                subtracted = code - 0x8140;\n            }\n            else if (code >= 0xe040 && code <= 0xebbf) {\n                subtracted = code - 0xc140;\n            }\n            if (subtracted === -1) {\n                throw new WriterException('Invalid byte sequence');\n            }\n            var encoded = ((subtracted >> 8) * 0xc0) + (subtracted & 0xff);\n            bits.appendBits(encoded, 13);\n        }\n    };\n    Encoder.appendECI = function (eci, bits) {\n        bits.appendBits(Mode.ECI.getBits(), 4);\n        // This is correct for values up to 127, which is all we need now.\n        bits.appendBits(eci.getValue(), 8);\n    };\n    // The original table is defined in the table 5 of JISX0510:2004 (p.19).\n    Encoder.ALPHANUMERIC_TABLE = Int32Array.from([\n        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n        36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,\n        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,\n        -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n        25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,\n    ]);\n    Encoder.DEFAULT_BYTE_MODE_ENCODING = CharacterSetECI.UTF8.getName(); // \"ISO-8859-1\"\n    return Encoder;\n}());\nexport default Encoder;\n","import EncodeHintType from '../core/EncodeHintType';\nimport Encoder from '../core/qrcode/encoder/Encoder';\nimport ErrorCorrectionLevel from '../core/qrcode/decoder/ErrorCorrectionLevel';\nimport IllegalArgumentException from '../core/IllegalArgumentException';\nimport IllegalStateException from '../core/IllegalStateException';\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar BrowserQRCodeSvgWriter = /** @class */ (function () {\n    function BrowserQRCodeSvgWriter() {\n    }\n    /**\n     * Writes and renders a QRCode SVG element.\n     *\n     * @param contents\n     * @param width\n     * @param height\n     * @param hints\n     */\n    BrowserQRCodeSvgWriter.prototype.write = function (contents, width, height, hints) {\n        if (hints === void 0) { hints = null; }\n        if (contents.length === 0) {\n            throw new IllegalArgumentException('Found empty contents');\n        }\n        // if (format != BarcodeFormat.QR_CODE) {\n        //   throw new IllegalArgumentException(\"Can only encode QR_CODE, but got \" + format)\n        // }\n        if (width < 0 || height < 0) {\n            throw new IllegalArgumentException('Requested dimensions are too small: ' + width + 'x' + height);\n        }\n        var errorCorrectionLevel = ErrorCorrectionLevel.L;\n        var quietZone = BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE;\n        if (hints !== null) {\n            if (undefined !== hints.get(EncodeHintType.ERROR_CORRECTION)) {\n                errorCorrectionLevel = ErrorCorrectionLevel.fromString(hints.get(EncodeHintType.ERROR_CORRECTION).toString());\n            }\n            if (undefined !== hints.get(EncodeHintType.MARGIN)) {\n                quietZone = Number.parseInt(hints.get(EncodeHintType.MARGIN).toString(), 10);\n            }\n        }\n        var code = Encoder.encode(contents, errorCorrectionLevel, hints);\n        return this.renderResult(code, width, height, quietZone);\n    };\n    /**\n     * Renders the result and then appends it to the DOM.\n     */\n    BrowserQRCodeSvgWriter.prototype.writeToDom = function (containerElement, contents, width, height, hints) {\n        if (hints === void 0) { hints = null; }\n        if (typeof containerElement === 'string') {\n            containerElement = document.querySelector(containerElement);\n        }\n        var svgElement = this.write(contents, width, height, hints);\n        if (containerElement)\n            containerElement.appendChild(svgElement);\n    };\n    /**\n     * Note that the input matrix uses 0 == white, 1 == black.\n     * The output matrix uses 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n     */\n    BrowserQRCodeSvgWriter.prototype.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n        var input = code.getMatrix();\n        if (input === null) {\n            throw new IllegalStateException();\n        }\n        var inputWidth = input.getWidth();\n        var inputHeight = input.getHeight();\n        var qrWidth = inputWidth + (quietZone * 2);\n        var qrHeight = inputHeight + (quietZone * 2);\n        var outputWidth = Math.max(width, qrWidth);\n        var outputHeight = Math.max(height, qrHeight);\n        var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n        // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n        // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n        // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n        // handle all the padding from 100x100 (the actual QR) up to 200x160.\n        var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n        var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n        var svgElement = this.createSVGElement(outputWidth, outputHeight);\n        for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n            // Write the contents of this row of the barcode\n            for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n                if (input.get(inputX, inputY) === 1) {\n                    var svgRectElement = this.createSvgRectElement(outputX, outputY, multiple, multiple);\n                    svgElement.appendChild(svgRectElement);\n                }\n            }\n        }\n        return svgElement;\n    };\n    /**\n     * Creates a SVG element.\n     *\n     * @param w SVG's width attribute\n     * @param h SVG's height attribute\n     */\n    BrowserQRCodeSvgWriter.prototype.createSVGElement = function (w, h) {\n        var svgElement = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'svg');\n        svgElement.setAttributeNS(null, 'height', w.toString());\n        svgElement.setAttributeNS(null, 'width', h.toString());\n        return svgElement;\n    };\n    /**\n     * Creates a SVG rect element.\n     *\n     * @param x Element's x coordinate\n     * @param y Element's y coordinate\n     * @param w Element's width attribute\n     * @param h Element's height attribute\n     */\n    BrowserQRCodeSvgWriter.prototype.createSvgRectElement = function (x, y, w, h) {\n        var rect = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'rect');\n        rect.setAttributeNS(null, 'x', x.toString());\n        rect.setAttributeNS(null, 'y', y.toString());\n        rect.setAttributeNS(null, 'height', w.toString());\n        rect.setAttributeNS(null, 'width', h.toString());\n        rect.setAttributeNS(null, 'fill', '#000000');\n        return rect;\n    };\n    BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE = 4;\n    /**\n     * SVG markup NameSpace\n     */\n    BrowserQRCodeSvgWriter.SVG_NS = 'http://www.w3.org/2000/svg';\n    return BrowserQRCodeSvgWriter;\n}());\nexport { BrowserQRCodeSvgWriter };\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*namespace com.google.zxing.qrcode {*/\nimport BarcodeFormat from '../BarcodeFormat';\nimport EncodeHintType from '../EncodeHintType';\nimport BitMatrix from '../common/BitMatrix';\nimport ErrorCorrectionLevel from './decoder/ErrorCorrectionLevel';\nimport Encoder from './encoder/Encoder';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport IllegalStateException from '../IllegalStateException';\n/*import java.util.Map;*/\n/**\n * This object renders a QR Code as a BitMatrix 2D array of greyscale values.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar QRCodeWriter = /** @class */ (function () {\n    function QRCodeWriter() {\n    }\n    /*@Override*/\n    // public encode(contents: string, format: BarcodeFormat, width: number /*int*/, height: number /*int*/): BitMatrix\n    //     /*throws WriterException */ {\n    //   return encode(contents, format, width, height, null)\n    // }\n    /*@Override*/\n    QRCodeWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n        if (contents.length === 0) {\n            throw new IllegalArgumentException('Found empty contents');\n        }\n        if (format !== BarcodeFormat.QR_CODE) {\n            throw new IllegalArgumentException('Can only encode QR_CODE, but got ' + format);\n        }\n        if (width < 0 || height < 0) {\n            throw new IllegalArgumentException(\"Requested dimensions are too small: \" + width + \"x\" + height);\n        }\n        var errorCorrectionLevel = ErrorCorrectionLevel.L;\n        var quietZone = QRCodeWriter.QUIET_ZONE_SIZE;\n        if (hints !== null) {\n            if (undefined !== hints.get(EncodeHintType.ERROR_CORRECTION)) {\n                errorCorrectionLevel = ErrorCorrectionLevel.fromString(hints.get(EncodeHintType.ERROR_CORRECTION).toString());\n            }\n            if (undefined !== hints.get(EncodeHintType.MARGIN)) {\n                quietZone = Number.parseInt(hints.get(EncodeHintType.MARGIN).toString(), 10);\n            }\n        }\n        var code = Encoder.encode(contents, errorCorrectionLevel, hints);\n        return QRCodeWriter.renderResult(code, width, height, quietZone);\n    };\n    // Note that the input matrix uses 0 == white, 1 == black, while the output matrix uses\n    // 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n    QRCodeWriter.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n        var input = code.getMatrix();\n        if (input === null) {\n            throw new IllegalStateException();\n        }\n        var inputWidth = input.getWidth();\n        var inputHeight = input.getHeight();\n        var qrWidth = inputWidth + (quietZone * 2);\n        var qrHeight = inputHeight + (quietZone * 2);\n        var outputWidth = Math.max(width, qrWidth);\n        var outputHeight = Math.max(height, qrHeight);\n        var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n        // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n        // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n        // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n        // handle all the padding from 100x100 (the actual QR) up to 200x160.\n        var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n        var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n        var output = new BitMatrix(outputWidth, outputHeight);\n        for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n            // Write the contents of this row of the barcode\n            for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n                if (input.get(inputX, inputY) === 1) {\n                    output.setRegion(outputX, outputY, multiple, multiple);\n                }\n            }\n        }\n        return output;\n    };\n    QRCodeWriter.QUIET_ZONE_SIZE = 4;\n    return QRCodeWriter;\n}());\nexport default QRCodeWriter;\n","/*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// import DataMatrixWriter from './datamatrix/DataMatrixWriter'\n// import CodaBarWriter from './oned/CodaBarWriter'\n// import Code128Writer from './oned/Code128Writer'\n// import Code39Writer from './oned/Code39Writer'\n// import Code93Writer from './oned/Code93Writer'\n// import EAN13Writer from './oned/EAN13Writer'\n// import EAN8Writer from './oned/EAN8Writer'\n// import ITFWriter from './oned/ITFWriter'\n// import UPCAWriter from './oned/UPCAWriter'\n// import UPCEWriter from './oned/UPCEWriter'\n// import PDF417Writer from './pdf417/PDF417Writer'\nimport QRCodeWriter from './qrcode/QRCodeWriter';\nimport BarcodeFormat from './BarcodeFormat';\nimport IllegalArgumentException from './IllegalArgumentException';\n/*import java.util.Map;*/\n/**\n * This is a factory class which finds the appropriate Writer subclass for the BarcodeFormat\n * requested and encodes the barcode with the supplied contents.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatWriter = /** @class */ (function () {\n    function MultiFormatWriter() {\n    }\n    /*@Override*/\n    // public encode(contents: string,\n    //                         format: BarcodeFormat,\n    //                         width: number /*int*/,\n    //                         height: number /*int*/): BitMatrix /*throws WriterException */ {\n    //   return encode(contents, format, width, height, null)\n    // }\n    /*@Override*/\n    MultiFormatWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n        var writer;\n        switch (format) {\n            // case BarcodeFormat.EAN_8:\n            //   writer = new EAN8Writer()\n            //   break\n            // case BarcodeFormat.UPC_E:\n            //   writer = new UPCEWriter()\n            //   break\n            // case BarcodeFormat.EAN_13:\n            //   writer = new EAN13Writer()\n            //   break\n            // case BarcodeFormat.UPC_A:\n            //   writer = new UPCAWriter()\n            //   break\n            case BarcodeFormat.QR_CODE:\n                writer = new QRCodeWriter();\n                break;\n            // case BarcodeFormat.CODE_39:\n            //   writer = new Code39Writer()\n            //   break\n            // case BarcodeFormat.CODE_93:\n            //   writer = new Code93Writer()\n            //   break\n            // case BarcodeFormat.CODE_128:\n            //   writer = new Code128Writer()\n            //   break\n            // case BarcodeFormat.ITF:\n            //   writer = new ITFWriter()\n            //   break\n            // case BarcodeFormat.PDF_417:\n            //   writer = new PDF417Writer()\n            //   break\n            // case BarcodeFormat.CODABAR:\n            //   writer = new CodaBarWriter()\n            //   break\n            // case BarcodeFormat.DATA_MATRIX:\n            //   writer = new DataMatrixWriter()\n            //   break\n            // case BarcodeFormat.AZTEC:\n            //   writer = new AztecWriter()\n            //   break\n            default:\n                throw new IllegalArgumentException('No encoder available for format ' + format);\n        }\n        return writer.encode(contents, format, width, height, hints);\n    };\n    return MultiFormatWriter;\n}());\nexport default MultiFormatWriter;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing {*/\nimport System from './util/System';\nimport LuminanceSource from './LuminanceSource';\nimport InvertedLuminanceSource from './InvertedLuminanceSource';\nimport IllegalArgumentException from './IllegalArgumentException';\n/**\n * This object extends LuminanceSource around an array of YUV data returned from the camera driver,\n * with the option to crop to a rectangle within the full data. This can be used to exclude\n * superfluous pixels around the perimeter and speed up decoding.\n *\n * It works for any pixel format where the Y channel is planar and appears first, including\n * YCbCr_420_SP and YCbCr_422_SP.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar PlanarYUVLuminanceSource = /** @class */ (function (_super) {\n    __extends(PlanarYUVLuminanceSource, _super);\n    function PlanarYUVLuminanceSource(yuvData, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/, width /*int*/, height /*int*/, reverseHorizontal) {\n        var _this = _super.call(this, width, height) || this;\n        _this.yuvData = yuvData;\n        _this.dataWidth = dataWidth;\n        _this.dataHeight = dataHeight;\n        _this.left = left;\n        _this.top = top;\n        if (left + width > dataWidth || top + height > dataHeight) {\n            throw new IllegalArgumentException('Crop rectangle does not fit within image data.');\n        }\n        if (reverseHorizontal) {\n            _this.reverseHorizontal(width, height);\n        }\n        return _this;\n    }\n    /*@Override*/\n    PlanarYUVLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n        if (y < 0 || y >= this.getHeight()) {\n            throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n        }\n        var width = this.getWidth();\n        if (row === null || row === undefined || row.length < width) {\n            row = new Uint8ClampedArray(width);\n        }\n        var offset = (y + this.top) * this.dataWidth + this.left;\n        System.arraycopy(this.yuvData, offset, row, 0, width);\n        return row;\n    };\n    /*@Override*/\n    PlanarYUVLuminanceSource.prototype.getMatrix = function () {\n        var width = this.getWidth();\n        var height = this.getHeight();\n        // If the caller asks for the entire underlying image, save the copy and give them the\n        // original data. The docs specifically warn that result.length must be ignored.\n        if (width === this.dataWidth && height === this.dataHeight) {\n            return this.yuvData;\n        }\n        var area = width * height;\n        var matrix = new Uint8ClampedArray(area);\n        var inputOffset = this.top * this.dataWidth + this.left;\n        // If the width matches the full width of the underlying data, perform a single copy.\n        if (width === this.dataWidth) {\n            System.arraycopy(this.yuvData, inputOffset, matrix, 0, area);\n            return matrix;\n        }\n        // Otherwise copy one cropped row at a time.\n        for (var y = 0; y < height; y++) {\n            var outputOffset = y * width;\n            System.arraycopy(this.yuvData, inputOffset, matrix, outputOffset, width);\n            inputOffset += this.dataWidth;\n        }\n        return matrix;\n    };\n    /*@Override*/\n    PlanarYUVLuminanceSource.prototype.isCropSupported = function () {\n        return true;\n    };\n    /*@Override*/\n    PlanarYUVLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        return new PlanarYUVLuminanceSource(this.yuvData, this.dataWidth, this.dataHeight, this.left + left, this.top + top, width, height, false);\n    };\n    PlanarYUVLuminanceSource.prototype.renderThumbnail = function () {\n        var width = this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n        var height = this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n        var pixels = new Int32Array(width * height);\n        var yuv = this.yuvData;\n        var inputOffset = this.top * this.dataWidth + this.left;\n        for (var y = 0; y < height; y++) {\n            var outputOffset = y * width;\n            for (var x = 0; x < width; x++) {\n                var grey = yuv[inputOffset + x * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR] & 0xff;\n                pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101);\n            }\n            inputOffset += this.dataWidth * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n        }\n        return pixels;\n    };\n    /**\n     * @return width of image from {@link #renderThumbnail()}\n     */\n    PlanarYUVLuminanceSource.prototype.getThumbnailWidth = function () {\n        return this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n    };\n    /**\n     * @return height of image from {@link #renderThumbnail()}\n     */\n    PlanarYUVLuminanceSource.prototype.getThumbnailHeight = function () {\n        return this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n    };\n    PlanarYUVLuminanceSource.prototype.reverseHorizontal = function (width /*int*/, height /*int*/) {\n        var yuvData = this.yuvData;\n        for (var y = 0, rowStart = this.top * this.dataWidth + this.left; y < height; y++, rowStart += this.dataWidth) {\n            var middle = rowStart + width / 2;\n            for (var x1 = rowStart, x2 = rowStart + width - 1; x1 < middle; x1++, x2--) {\n                var temp = yuvData[x1];\n                yuvData[x1] = yuvData[x2];\n                yuvData[x2] = temp;\n            }\n        }\n    };\n    PlanarYUVLuminanceSource.prototype.invert = function () {\n        return new InvertedLuminanceSource(this);\n    };\n    PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR = 2;\n    return PlanarYUVLuminanceSource;\n}(LuminanceSource));\nexport default PlanarYUVLuminanceSource;\n","/*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n/*namespace com.google.zxing {*/\nimport './InvertedLuminanceSource'; // required because of circular dependencies between LuminanceSource and InvertedLuminanceSource\nimport InvertedLuminanceSource from './InvertedLuminanceSource';\nimport LuminanceSource from './LuminanceSource';\nimport System from './util/System';\nimport IllegalArgumentException from './IllegalArgumentException';\n/**\n * This class is used to help decode images from files which arrive as RGB data from\n * an ARGB pixel array. It does not support rotation.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Betaminos\n */\nvar RGBLuminanceSource = /** @class */ (function (_super) {\n    __extends(RGBLuminanceSource, _super);\n    function RGBLuminanceSource(luminances, width /*int*/, height /*int*/, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/) {\n        var _this = _super.call(this, width, height) || this;\n        _this.dataWidth = dataWidth;\n        _this.dataHeight = dataHeight;\n        _this.left = left;\n        _this.top = top;\n        if (luminances.BYTES_PER_ELEMENT === 4) { // Int32Array\n            var size = width * height;\n            var luminancesUint8Array = new Uint8ClampedArray(size);\n            for (var offset = 0; offset < size; offset++) {\n                var pixel = luminances[offset];\n                var r = (pixel >> 16) & 0xff; // red\n                var g2 = (pixel >> 7) & 0x1fe; // 2 * green\n                var b = pixel & 0xff; // blue\n                // Calculate green-favouring average cheaply\n                luminancesUint8Array[offset] = /*(byte) */ ((r + g2 + b) / 4) & 0xFF;\n            }\n            _this.luminances = luminancesUint8Array;\n        }\n        else {\n            _this.luminances = luminances;\n        }\n        if (undefined === dataWidth) {\n            _this.dataWidth = width;\n        }\n        if (undefined === dataHeight) {\n            _this.dataHeight = height;\n        }\n        if (undefined === left) {\n            _this.left = 0;\n        }\n        if (undefined === top) {\n            _this.top = 0;\n        }\n        if (_this.left + width > _this.dataWidth || _this.top + height > _this.dataHeight) {\n            throw new IllegalArgumentException('Crop rectangle does not fit within image data.');\n        }\n        return _this;\n    }\n    /*@Override*/\n    RGBLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n        if (y < 0 || y >= this.getHeight()) {\n            throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n        }\n        var width = this.getWidth();\n        if (row === null || row === undefined || row.length < width) {\n            row = new Uint8ClampedArray(width);\n        }\n        var offset = (y + this.top) * this.dataWidth + this.left;\n        System.arraycopy(this.luminances, offset, row, 0, width);\n        return row;\n    };\n    /*@Override*/\n    RGBLuminanceSource.prototype.getMatrix = function () {\n        var width = this.getWidth();\n        var height = this.getHeight();\n        // If the caller asks for the entire underlying image, save the copy and give them the\n        // original data. The docs specifically warn that result.length must be ignored.\n        if (width === this.dataWidth && height === this.dataHeight) {\n            return this.luminances;\n        }\n        var area = width * height;\n        var matrix = new Uint8ClampedArray(area);\n        var inputOffset = this.top * this.dataWidth + this.left;\n        // If the width matches the full width of the underlying data, perform a single copy.\n        if (width === this.dataWidth) {\n            System.arraycopy(this.luminances, inputOffset, matrix, 0, area);\n            return matrix;\n        }\n        // Otherwise copy one cropped row at a time.\n        for (var y = 0; y < height; y++) {\n            var outputOffset = y * width;\n            System.arraycopy(this.luminances, inputOffset, matrix, outputOffset, width);\n            inputOffset += this.dataWidth;\n        }\n        return matrix;\n    };\n    /*@Override*/\n    RGBLuminanceSource.prototype.isCropSupported = function () {\n        return true;\n    };\n    /*@Override*/\n    RGBLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n        return new RGBLuminanceSource(this.luminances, width, height, this.dataWidth, this.dataHeight, this.left + left, this.top + top);\n    };\n    RGBLuminanceSource.prototype.invert = function () {\n        return new InvertedLuminanceSource(this);\n    };\n    return RGBLuminanceSource;\n}(LuminanceSource));\nexport default RGBLuminanceSource;\n","var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport CharacterSetECI from '../common/CharacterSetECI';\n/**\n * Just to make a shortcut between Java code and TS code.\n */\nvar Charset = /** @class */ (function (_super) {\n    __extends(Charset, _super);\n    function Charset() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    Charset.forName = function (name) {\n        return this.getCharacterSetECIByName(name);\n    };\n    return Charset;\n}(CharacterSetECI));\nexport default Charset;\n","import CharacterSetECI from '../common/CharacterSetECI';\n/**\n * Just to make a shortcut between Java code and TS code.\n */\nvar StandardCharsets = /** @class */ (function () {\n    function StandardCharsets() {\n    }\n    StandardCharsets.ISO_8859_1 = CharacterSetECI.ISO8859_1;\n    return StandardCharsets;\n}());\nexport default StandardCharsets;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n/**\n * Aztec 2D code representation\n *\n * @author Rustam Abdullaev\n */\nvar AztecCode = /** @class */ (function () {\n    function AztecCode() {\n    }\n    /**\n     * @return {@code true} if compact instead of full mode\n     */\n    AztecCode.prototype.isCompact = function () {\n        return this.compact;\n    };\n    AztecCode.prototype.setCompact = function (compact) {\n        this.compact = compact;\n    };\n    /**\n     * @return size in pixels (width and height)\n     */\n    AztecCode.prototype.getSize = function () {\n        return this.size;\n    };\n    AztecCode.prototype.setSize = function (size) {\n        this.size = size;\n    };\n    /**\n     * @return number of levels\n     */\n    AztecCode.prototype.getLayers = function () {\n        return this.layers;\n    };\n    AztecCode.prototype.setLayers = function (layers) {\n        this.layers = layers;\n    };\n    /**\n     * @return number of data codewords\n     */\n    AztecCode.prototype.getCodeWords = function () {\n        return this.codeWords;\n    };\n    AztecCode.prototype.setCodeWords = function (codeWords) {\n        this.codeWords = codeWords;\n    };\n    /**\n     * @return the symbol image\n     */\n    AztecCode.prototype.getMatrix = function () {\n        return this.matrix;\n    };\n    AztecCode.prototype.setMatrix = function (matrix) {\n        this.matrix = matrix;\n    };\n    return AztecCode;\n}());\nexport default AztecCode;\n","var Collections = /** @class */ (function () {\n    function Collections() {\n    }\n    /**\n     * The singletonList(T) method is used to return an immutable list containing only the specified object.\n     */\n    Collections.singletonList = function (item) {\n        return [item];\n    };\n    /**\n     * The min(Collection<? extends T>, Comparator<? super T>) method is used to return the minimum element of the given collection, according to the order induced by the specified comparator.\n     */\n    Collections.min = function (collection, comparator) {\n        return collection.sort(comparator)[0];\n    };\n    return Collections;\n}());\nexport default Collections;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar Token = /** @class */ (function () {\n    function Token(previous) {\n        this.previous = previous;\n    }\n    Token.prototype.getPrevious = function () {\n        return this.previous;\n    };\n    return Token;\n}());\nexport default Token;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport Token from './Token';\nimport Integer from '../../util/Integer';\nvar SimpleToken = /** @class */ (function (_super) {\n    __extends(SimpleToken, _super);\n    function SimpleToken(previous, value, bitCount) {\n        var _this = _super.call(this, previous) || this;\n        _this.value = value;\n        _this.bitCount = bitCount;\n        return _this;\n    }\n    /**\n     * @Override\n     */\n    SimpleToken.prototype.appendTo = function (bitArray, text) {\n        bitArray.appendBits(this.value, this.bitCount);\n    };\n    SimpleToken.prototype.add = function (value, bitCount) {\n        return new SimpleToken(this, value, bitCount);\n    };\n    SimpleToken.prototype.addBinaryShift = function (start, byteCount) {\n        // no-op can't binary shift a simple token\n        console.warn('addBinaryShift on SimpleToken, this simply returns a copy of this token');\n        return new SimpleToken(this, start, byteCount);\n    };\n    /**\n     * @Override\n     */\n    SimpleToken.prototype.toString = function () {\n        var value = this.value & ((1 << this.bitCount) - 1);\n        value |= 1 << this.bitCount;\n        return '<' + Integer.toBinaryString(value | (1 << this.bitCount)).substring(1) + '>';\n    };\n    return SimpleToken;\n}(Token));\nexport default SimpleToken;\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nimport SimpleToken from './SimpleToken';\nvar BinaryShiftToken = /** @class */ (function (_super) {\n    __extends(BinaryShiftToken, _super);\n    function BinaryShiftToken(previous, binaryShiftStart, binaryShiftByteCount) {\n        var _this = _super.call(this, previous, 0, 0) || this;\n        _this.binaryShiftStart = binaryShiftStart;\n        _this.binaryShiftByteCount = binaryShiftByteCount;\n        return _this;\n    }\n    /**\n     * @Override\n     */\n    BinaryShiftToken.prototype.appendTo = function (bitArray, text) {\n        for (var i = 0; i < this.binaryShiftByteCount; i++) {\n            if (i === 0 || (i === 31 && this.binaryShiftByteCount <= 62)) {\n                // We need a header before the first character, and before\n                // character 31 when the total byte code is <= 62\n                bitArray.appendBits(31, 5); // BINARY_SHIFT\n                if (this.binaryShiftByteCount > 62) {\n                    bitArray.appendBits(this.binaryShiftByteCount - 31, 16);\n                }\n                else if (i === 0) {\n                    // 1 <= binaryShiftByteCode <= 62\n                    bitArray.appendBits(Math.min(this.binaryShiftByteCount, 31), 5);\n                }\n                else {\n                    // 32 <= binaryShiftCount <= 62 and i == 31\n                    bitArray.appendBits(this.binaryShiftByteCount - 31, 5);\n                }\n            }\n            bitArray.appendBits(text[this.binaryShiftStart + i], 8);\n        }\n    };\n    BinaryShiftToken.prototype.addBinaryShift = function (start, byteCount) {\n        // int bitCount = (byteCount * 8) + (byteCount <= 31 ? 10 : byteCount <= 62 ? 20 : 21);\n        return new BinaryShiftToken(this, start, byteCount);\n    };\n    /**\n     * @Override\n     */\n    BinaryShiftToken.prototype.toString = function () {\n        return '<' + this.binaryShiftStart + '::' + (this.binaryShiftStart + this.binaryShiftByteCount - 1) + '>';\n    };\n    return BinaryShiftToken;\n}(SimpleToken));\nexport default BinaryShiftToken;\n","import SimpleToken from './SimpleToken';\nimport BinaryShiftToken from './BinaryShiftToken';\nexport function addBinaryShift(token, start, byteCount) {\n    // int bitCount = (byteCount * 8) + (byteCount <= 31 ? 10 : byteCount <= 62 ? 20 : 21);\n    return new BinaryShiftToken(token, start, byteCount);\n}\nexport function add(token, value, bitCount) {\n    return new SimpleToken(token, value, bitCount);\n}\n","import SimpleToken from './SimpleToken';\nexport var /*final*/ MODE_NAMES = [\n    'UPPER',\n    'LOWER',\n    'DIGIT',\n    'MIXED',\n    'PUNCT'\n];\nexport var /*final*/ MODE_UPPER = 0; // 5 bits\nexport var /*final*/ MODE_LOWER = 1; // 5 bits\nexport var /*final*/ MODE_DIGIT = 2; // 4 bits\nexport var /*final*/ MODE_MIXED = 3; // 5 bits\nexport var /*final*/ MODE_PUNCT = 4; // 5 bits\nexport var EMPTY_TOKEN = new SimpleToken(null, 0, 0);\n","// The Latch Table shows, for each pair of Modes, the optimal method for\n// getting from one mode to another.  In the worst possible case, this can\n// be up to 14 bits.  In the best possible case, we are already there!\n// The high half-word of each entry gives the number of bits.\n// The low half-word of each entry are the actual bits necessary to change\nexport var LATCH_TABLE = [\n    Int32Array.from([\n        0,\n        (5 << 16) + 28,\n        (5 << 16) + 30,\n        (5 << 16) + 29,\n        (10 << 16) + (29 << 5) + 30 // UPPER -> MIXED -> PUNCT\n    ]),\n    Int32Array.from([\n        (9 << 16) + (30 << 4) + 14,\n        0,\n        (5 << 16) + 30,\n        (5 << 16) + 29,\n        (10 << 16) + (29 << 5) + 30 // LOWER -> MIXED -> PUNCT\n    ]),\n    Int32Array.from([\n        (4 << 16) + 14,\n        (9 << 16) + (14 << 5) + 28,\n        0,\n        (9 << 16) + (14 << 5) + 29,\n        (14 << 16) + (14 << 10) + (29 << 5) + 30\n        // DIGIT -> UPPER -> MIXED -> PUNCT\n    ]),\n    Int32Array.from([\n        (5 << 16) + 29,\n        (5 << 16) + 28,\n        (10 << 16) + (29 << 5) + 30,\n        0,\n        (5 << 16) + 30 // MIXED -> PUNCT\n    ]),\n    Int32Array.from([\n        (5 << 16) + 31,\n        (10 << 16) + (31 << 5) + 28,\n        (10 << 16) + (31 << 5) + 30,\n        (10 << 16) + (31 << 5) + 29,\n        0\n    ])\n];\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport Arrays from '../../util/Arrays';\nimport * as C from './EncoderConstants';\nexport function static_SHIFT_TABLE(SHIFT_TABLE) {\n    var e_1, _a;\n    try {\n        for (var SHIFT_TABLE_1 = __values(SHIFT_TABLE), SHIFT_TABLE_1_1 = SHIFT_TABLE_1.next(); !SHIFT_TABLE_1_1.done; SHIFT_TABLE_1_1 = SHIFT_TABLE_1.next()) {\n            var table = SHIFT_TABLE_1_1.value /*Int32Array*/;\n            Arrays.fill(table, -1);\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (SHIFT_TABLE_1_1 && !SHIFT_TABLE_1_1.done && (_a = SHIFT_TABLE_1.return)) _a.call(SHIFT_TABLE_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n    SHIFT_TABLE[C.MODE_UPPER][C.MODE_PUNCT] = 0;\n    SHIFT_TABLE[C.MODE_LOWER][C.MODE_PUNCT] = 0;\n    SHIFT_TABLE[C.MODE_LOWER][C.MODE_UPPER] = 28;\n    SHIFT_TABLE[C.MODE_MIXED][C.MODE_PUNCT] = 0;\n    SHIFT_TABLE[C.MODE_DIGIT][C.MODE_PUNCT] = 0;\n    SHIFT_TABLE[C.MODE_DIGIT][C.MODE_UPPER] = 15;\n    return SHIFT_TABLE;\n}\nexport var /*final*/ SHIFT_TABLE = static_SHIFT_TABLE(Arrays.createInt32Array(6, 6)); // mode shift codes, per table\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// package com.google.zxing.aztec.encoder;\n// import java.util.Deque;\n// import java.util.LinkedList;\n// import com.google.zxing.common.BitArray;\nimport BitArray from '../../common/BitArray';\nimport * as TokenHelpers from './TokenHelpers';\nimport * as C from './EncoderConstants';\nimport * as LatchTable from './LatchTable';\nimport * as ShiftTable from './ShiftTable';\nimport StringUtils from '../../common/StringUtils';\n/**\n * State represents all information about a sequence necessary to generate the current output.\n * Note that a state is immutable.\n */\nvar State = /** @class */ (function () {\n    function State(token, mode, binaryBytes, bitCount) {\n        this.token = token;\n        this.mode = mode;\n        this.binaryShiftByteCount = binaryBytes;\n        this.bitCount = bitCount;\n        // Make sure we match the token\n        // int binaryShiftBitCount = (binaryShiftByteCount * 8) +\n        //    (binaryShiftByteCount === 0 ? 0 :\n        //     binaryShiftByteCount <= 31 ? 10 :\n        //     binaryShiftByteCount <= 62 ? 20 : 21);\n        // assert this.bitCount === token.getTotalBitCount() + binaryShiftBitCount;\n    }\n    State.prototype.getMode = function () {\n        return this.mode;\n    };\n    State.prototype.getToken = function () {\n        return this.token;\n    };\n    State.prototype.getBinaryShiftByteCount = function () {\n        return this.binaryShiftByteCount;\n    };\n    State.prototype.getBitCount = function () {\n        return this.bitCount;\n    };\n    // Create a new state representing this state with a latch to a (not\n    // necessary different) mode, and then a code.\n    State.prototype.latchAndAppend = function (mode, value) {\n        // assert binaryShiftByteCount === 0;\n        var bitCount = this.bitCount;\n        var token = this.token;\n        if (mode !== this.mode) {\n            var latch = LatchTable.LATCH_TABLE[this.mode][mode];\n            token = TokenHelpers.add(token, latch & 0xffff, latch >> 16);\n            bitCount += latch >> 16;\n        }\n        var latchModeBitCount = mode === C.MODE_DIGIT ? 4 : 5;\n        token = TokenHelpers.add(token, value, latchModeBitCount);\n        return new State(token, mode, 0, bitCount + latchModeBitCount);\n    };\n    // Create a new state representing this state, with a temporary shift\n    // to a different mode to output a single value.\n    State.prototype.shiftAndAppend = function (mode, value) {\n        // assert binaryShiftByteCount === 0 && this.mode !== mode;\n        var token = this.token;\n        var thisModeBitCount = this.mode === C.MODE_DIGIT ? 4 : 5;\n        // Shifts exist only to UPPER and PUNCT, both with tokens size 5.\n        token = TokenHelpers.add(token, ShiftTable.SHIFT_TABLE[this.mode][mode], thisModeBitCount);\n        token = TokenHelpers.add(token, value, 5);\n        return new State(token, this.mode, 0, this.bitCount + thisModeBitCount + 5);\n    };\n    // Create a new state representing this state, but an additional character\n    // output in Binary Shift mode.\n    State.prototype.addBinaryShiftChar = function (index) {\n        var token = this.token;\n        var mode = this.mode;\n        var bitCount = this.bitCount;\n        if (this.mode === C.MODE_PUNCT || this.mode === C.MODE_DIGIT) {\n            // assert binaryShiftByteCount === 0;\n            var latch = LatchTable.LATCH_TABLE[mode][C.MODE_UPPER];\n            token = TokenHelpers.add(token, latch & 0xffff, latch >> 16);\n            bitCount += latch >> 16;\n            mode = C.MODE_UPPER;\n        }\n        var deltaBitCount = this.binaryShiftByteCount === 0 || this.binaryShiftByteCount === 31\n            ? 18\n            : this.binaryShiftByteCount === 62\n                ? 9\n                : 8;\n        var result = new State(token, mode, this.binaryShiftByteCount + 1, bitCount + deltaBitCount);\n        if (result.binaryShiftByteCount === 2047 + 31) {\n            // The string is as long as it's allowed to be.  We should end it.\n            result = result.endBinaryShift(index + 1);\n        }\n        return result;\n    };\n    // Create the state identical to this one, but we are no longer in\n    // Binary Shift mode.\n    State.prototype.endBinaryShift = function (index) {\n        if (this.binaryShiftByteCount === 0) {\n            return this;\n        }\n        var token = this.token;\n        token = TokenHelpers.addBinaryShift(token, index - this.binaryShiftByteCount, this.binaryShiftByteCount);\n        // assert token.getTotalBitCount() === this.bitCount;\n        return new State(token, this.mode, 0, this.bitCount);\n    };\n    // Returns true if \"this\" state is better (equal: or) to be in than \"that\"\n    // state under all possible circumstances.\n    State.prototype.isBetterThanOrEqualTo = function (other) {\n        var newModeBitCount = this.bitCount + (LatchTable.LATCH_TABLE[this.mode][other.mode] >> 16);\n        if (this.binaryShiftByteCount < other.binaryShiftByteCount) {\n            // add additional B/S encoding cost of other, if any\n            newModeBitCount +=\n                State.calculateBinaryShiftCost(other) -\n                    State.calculateBinaryShiftCost(this);\n        }\n        else if (this.binaryShiftByteCount > other.binaryShiftByteCount &&\n            other.binaryShiftByteCount > 0) {\n            // maximum possible additional cost (it: h)\n            newModeBitCount += 10;\n        }\n        return newModeBitCount <= other.bitCount;\n    };\n    State.prototype.toBitArray = function (text) {\n        var e_1, _a;\n        // Reverse the tokens, so that they are in the order that they should\n        // be output\n        var symbols = [];\n        for (var token = this.endBinaryShift(text.length).token; token !== null; token = token.getPrevious()) {\n            symbols.unshift(token);\n        }\n        var bitArray = new BitArray();\n        try {\n            // Add each token to the result.\n            for (var symbols_1 = __values(symbols), symbols_1_1 = symbols_1.next(); !symbols_1_1.done; symbols_1_1 = symbols_1.next()) {\n                var symbol = symbols_1_1.value;\n                symbol.appendTo(bitArray, text);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (symbols_1_1 && !symbols_1_1.done && (_a = symbols_1.return)) _a.call(symbols_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        // assert bitArray.getSize() === this.bitCount;\n        return bitArray;\n    };\n    /**\n     * @Override\n     */\n    State.prototype.toString = function () {\n        return StringUtils.format('%s bits=%d bytes=%d', C.MODE_NAMES[this.mode], this.bitCount, this.binaryShiftByteCount);\n    };\n    State.calculateBinaryShiftCost = function (state) {\n        if (state.binaryShiftByteCount > 62) {\n            return 21; // B/S with extended length\n        }\n        if (state.binaryShiftByteCount > 31) {\n            return 20; // two B/S\n        }\n        if (state.binaryShiftByteCount > 0) {\n            return 10; // one B/S\n        }\n        return 0;\n    };\n    State.INITIAL_STATE = new State(C.EMPTY_TOKEN, C.MODE_UPPER, 0, 0);\n    return State;\n}());\nexport default State;\n","import * as C from './EncoderConstants';\nimport Arrays from '../../util/Arrays';\nimport StringUtils from '../../common/StringUtils';\nexport function static_CHAR_MAP(CHAR_MAP) {\n    var spaceCharCode = StringUtils.getCharCode(' ');\n    var pointCharCode = StringUtils.getCharCode('.');\n    var commaCharCode = StringUtils.getCharCode(',');\n    CHAR_MAP[C.MODE_UPPER][spaceCharCode] = 1;\n    var zUpperCharCode = StringUtils.getCharCode('Z');\n    var aUpperCharCode = StringUtils.getCharCode('A');\n    for (var c = aUpperCharCode; c <= zUpperCharCode; c++) {\n        CHAR_MAP[C.MODE_UPPER][c] = c - aUpperCharCode + 2;\n    }\n    CHAR_MAP[C.MODE_LOWER][spaceCharCode] = 1;\n    var zLowerCharCode = StringUtils.getCharCode('z');\n    var aLowerCharCode = StringUtils.getCharCode('a');\n    for (var c = aLowerCharCode; c <= zLowerCharCode; c++) {\n        CHAR_MAP[C.MODE_LOWER][c] = c - aLowerCharCode + 2;\n    }\n    CHAR_MAP[C.MODE_DIGIT][spaceCharCode] = 1;\n    var nineCharCode = StringUtils.getCharCode('9');\n    var zeroCharCode = StringUtils.getCharCode('0');\n    for (var c = zeroCharCode; c <= nineCharCode; c++) {\n        CHAR_MAP[C.MODE_DIGIT][c] = c - zeroCharCode + 2;\n    }\n    CHAR_MAP[C.MODE_DIGIT][commaCharCode] = 12;\n    CHAR_MAP[C.MODE_DIGIT][pointCharCode] = 13;\n    var mixedTable = [\n        '\\x00',\n        ' ',\n        '\\x01',\n        '\\x02',\n        '\\x03',\n        '\\x04',\n        '\\x05',\n        '\\x06',\n        '\\x07',\n        '\\b',\n        '\\t',\n        '\\n',\n        '\\x0b',\n        '\\f',\n        '\\r',\n        '\\x1b',\n        '\\x1c',\n        '\\x1d',\n        '\\x1e',\n        '\\x1f',\n        '@',\n        '\\\\',\n        '^',\n        '_',\n        '`',\n        '|',\n        '~',\n        '\\x7f'\n    ];\n    for (var i = 0; i < mixedTable.length; i++) {\n        CHAR_MAP[C.MODE_MIXED][StringUtils.getCharCode(mixedTable[i])] = i;\n    }\n    var punctTable = [\n        '\\x00',\n        '\\r',\n        '\\x00',\n        '\\x00',\n        '\\x00',\n        '\\x00',\n        '!',\n        '\\'',\n        '#',\n        '$',\n        '%',\n        '&',\n        '\\'',\n        '(',\n        ')',\n        '*',\n        '+',\n        ',',\n        '-',\n        '.',\n        '/',\n        ':',\n        ';',\n        '<',\n        '=',\n        '>',\n        '?',\n        '[',\n        ']',\n        '{',\n        '}'\n    ];\n    for (var i = 0; i < punctTable.length; i++) {\n        if (StringUtils.getCharCode(punctTable[i]) > 0) {\n            CHAR_MAP[C.MODE_PUNCT][StringUtils.getCharCode(punctTable[i])] = i;\n        }\n    }\n    return CHAR_MAP;\n}\nexport var CHAR_MAP = static_CHAR_MAP(Arrays.createInt32Array(5, 256));\n","/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// import java.util.Collection;\n// import java.util.Collections;\nimport Collections from '../../util/Collections';\n// import java.util.Comparator;\n// import java.util.Iterator;\n// import java.util.LinkedList;\nimport State from './State';\nimport * as C from './EncoderConstants';\nimport * as CharMap from './CharMap';\nimport * as ShiftTable from './ShiftTable';\nimport StringUtils from '../../common/StringUtils';\n/**\n * This produces nearly optimal encodings of text into the first-level of\n * encoding used by Aztec code.\n *\n * It uses a dynamic algorithm.  For each prefix of the string, it determines\n * a set of encodings that could lead to this prefix.  We repeatedly add a\n * character and generate a new set of optimal encodings until we have read\n * through the entire input.\n *\n * @author Frank Yellin\n * @author Rustam Abdullaev\n */\nvar HighLevelEncoder = /** @class */ (function () {\n    function HighLevelEncoder(text) {\n        this.text = text;\n    }\n    /**\n     * @return text represented by this encoder encoded as a {@link BitArray}\n     */\n    HighLevelEncoder.prototype.encode = function () {\n        var spaceCharCode = StringUtils.getCharCode(' ');\n        var lineBreakCharCode = StringUtils.getCharCode('\\n');\n        var states = Collections.singletonList(State.INITIAL_STATE);\n        for (var index = 0; index < this.text.length; index++) {\n            var pairCode = void 0;\n            var nextChar = index + 1 < this.text.length ? this.text[index + 1] : 0;\n            switch (this.text[index]) {\n                case StringUtils.getCharCode('\\r'):\n                    pairCode = nextChar === lineBreakCharCode ? 2 : 0;\n                    break;\n                case StringUtils.getCharCode('.'):\n                    pairCode = nextChar === spaceCharCode ? 3 : 0;\n                    break;\n                case StringUtils.getCharCode(','):\n                    pairCode = nextChar === spaceCharCode ? 4 : 0;\n                    break;\n                case StringUtils.getCharCode(':'):\n                    pairCode = nextChar === spaceCharCode ? 5 : 0;\n                    break;\n                default:\n                    pairCode = 0;\n            }\n            if (pairCode > 0) {\n                // We have one of the four special PUNCT pairs.  Treat them specially.\n                // Get a new set of states for the two new characters.\n                states = HighLevelEncoder.updateStateListForPair(states, index, pairCode);\n                index++;\n            }\n            else {\n                // Get a new set of states for the new character.\n                states = this.updateStateListForChar(states, index);\n            }\n        }\n        // We are left with a set of states.  Find the shortest one.\n        var minState = Collections.min(states, function (a, b) {\n            return a.getBitCount() - b.getBitCount();\n        });\n        // Convert it to a bit array, and return.\n        return minState.toBitArray(this.text);\n    };\n    // We update a set of states for a new character by updating each state\n    // for the new character, merging the results, and then removing the\n    // non-optimal states.\n    HighLevelEncoder.prototype.updateStateListForChar = function (states, index) {\n        var e_1, _a;\n        var result = [];\n        try {\n            for (var states_1 = __values(states), states_1_1 = states_1.next(); !states_1_1.done; states_1_1 = states_1.next()) {\n                var state = states_1_1.value /*State*/;\n                this.updateStateForChar(state, index, result);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (states_1_1 && !states_1_1.done && (_a = states_1.return)) _a.call(states_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return HighLevelEncoder.simplifyStates(result);\n    };\n    // Return a set of states that represent the possible ways of updating this\n    // state for the next character.  The resulting set of states are added to\n    // the \"result\" list.\n    HighLevelEncoder.prototype.updateStateForChar = function (state, index, result) {\n        var ch = (this.text[index] & 0xff);\n        var charInCurrentTable = CharMap.CHAR_MAP[state.getMode()][ch] > 0;\n        var stateNoBinary = null;\n        for (var mode /*int*/ = 0; mode <= C.MODE_PUNCT; mode++) {\n            var charInMode = CharMap.CHAR_MAP[mode][ch];\n            if (charInMode > 0) {\n                if (stateNoBinary == null) {\n                    // Only create stateNoBinary the first time it's required.\n                    stateNoBinary = state.endBinaryShift(index);\n                }\n                // Try generating the character by latching to its mode\n                if (!charInCurrentTable ||\n                    mode === state.getMode() ||\n                    mode === C.MODE_DIGIT) {\n                    // If the character is in the current table, we don't want to latch to\n                    // any other mode except possibly digit (which uses only 4 bits).  Any\n                    // other latch would be equally successful *after* this character, and\n                    // so wouldn't save any bits.\n                    var latchState = stateNoBinary.latchAndAppend(mode, charInMode);\n                    result.push(latchState);\n                }\n                // Try generating the character by switching to its mode.\n                if (!charInCurrentTable &&\n                    ShiftTable.SHIFT_TABLE[state.getMode()][mode] >= 0) {\n                    // It never makes sense to temporarily shift to another mode if the\n                    // character exists in the current mode.  That can never save bits.\n                    var shiftState = stateNoBinary.shiftAndAppend(mode, charInMode);\n                    result.push(shiftState);\n                }\n            }\n        }\n        if (state.getBinaryShiftByteCount() > 0 ||\n            CharMap.CHAR_MAP[state.getMode()][ch] === 0) {\n            // It's never worthwhile to go into binary shift mode if you're not already\n            // in binary shift mode, and the character exists in your current mode.\n            // That can never save bits over just outputting the char in the current mode.\n            var binaryState = state.addBinaryShiftChar(index);\n            result.push(binaryState);\n        }\n    };\n    HighLevelEncoder.updateStateListForPair = function (states, index, pairCode) {\n        var e_2, _a;\n        var result = [];\n        try {\n            for (var states_2 = __values(states), states_2_1 = states_2.next(); !states_2_1.done; states_2_1 = states_2.next()) {\n                var state = states_2_1.value /*State*/;\n                this.updateStateForPair(state, index, pairCode, result);\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (states_2_1 && !states_2_1.done && (_a = states_2.return)) _a.call(states_2);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n        return this.simplifyStates(result);\n    };\n    HighLevelEncoder.updateStateForPair = function (state, index, pairCode, result) {\n        var stateNoBinary = state.endBinaryShift(index);\n        // Possibility 1.  Latch to C.MODE_PUNCT, and then append this code\n        result.push(stateNoBinary.latchAndAppend(C.MODE_PUNCT, pairCode));\n        if (state.getMode() !== C.MODE_PUNCT) {\n            // Possibility 2.  Shift to C.MODE_PUNCT, and then append this code.\n            // Every state except C.MODE_PUNCT (handled above) can shift\n            result.push(stateNoBinary.shiftAndAppend(C.MODE_PUNCT, pairCode));\n        }\n        if (pairCode === 3 || pairCode === 4) {\n            // both characters are in DIGITS.  Sometimes better to just add two digits\n            var digitState = stateNoBinary\n                .latchAndAppend(C.MODE_DIGIT, 16 - pairCode) // period or comma in DIGIT\n                .latchAndAppend(C.MODE_DIGIT, 1); // space in DIGIT\n            result.push(digitState);\n        }\n        if (state.getBinaryShiftByteCount() > 0) {\n            // It only makes sense to do the characters as binary if we're already\n            // in binary mode.\n            var binaryState = state\n                .addBinaryShiftChar(index)\n                .addBinaryShiftChar(index + 1);\n            result.push(binaryState);\n        }\n    };\n    HighLevelEncoder.simplifyStates = function (states) {\n        var e_3, _a, e_4, _b;\n        var result = [];\n        try {\n            for (var states_3 = __values(states), states_3_1 = states_3.next(); !states_3_1.done; states_3_1 = states_3.next()) {\n                var newState = states_3_1.value;\n                var add = true;\n                var _loop_1 = function (oldState) {\n                    if (oldState.isBetterThanOrEqualTo(newState)) {\n                        add = false;\n                        return \"break\";\n                    }\n                    if (newState.isBetterThanOrEqualTo(oldState)) {\n                        // iterator.remove();\n                        result = result.filter(function (x) { return x !== oldState; }); // remove old state\n                    }\n                };\n                try {\n                    for (var result_1 = (e_4 = void 0, __values(result)), result_1_1 = result_1.next(); !result_1_1.done; result_1_1 = result_1.next()) {\n                        var oldState = result_1_1.value;\n                        var state_1 = _loop_1(oldState);\n                        if (state_1 === \"break\")\n                            break;\n                    }\n                }\n                catch (e_4_1) { e_4 = { error: e_4_1 }; }\n                finally {\n                    try {\n                        if (result_1_1 && !result_1_1.done && (_b = result_1.return)) _b.call(result_1);\n                    }\n                    finally { if (e_4) throw e_4.error; }\n                }\n                if (add) {\n                    result.push(newState);\n                }\n            }\n        }\n        catch (e_3_1) { e_3 = { error: e_3_1 }; }\n        finally {\n            try {\n                if (states_3_1 && !states_3_1.done && (_a = states_3.return)) _a.call(states_3);\n            }\n            finally { if (e_3) throw e_3.error; }\n        }\n        return result;\n    };\n    return HighLevelEncoder;\n}());\nexport default HighLevelEncoder;\n","var __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport BitArray from '../../common/BitArray';\nimport IllegalArgumentException from '../../IllegalArgumentException';\nimport StringUtils from '../../common/StringUtils';\nimport BitMatrix from '../../common/BitMatrix';\nimport AztecCode from './AztecCode';\nimport ReedSolomonEncoder from '../../common/reedsolomon/ReedSolomonEncoder';\nimport GenericGF from '../../common/reedsolomon/GenericGF';\nimport HighLevelEncoder from './HighLevelEncoder';\nimport Integer from '../../util/Integer';\n/*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// package com.google.zxing.aztec.encoder;\n// import com.google.zxing.common.BitArray;\n// import com.google.zxing.common.BitMatrix;\n// import com.google.zxing.common.reedsolomon.GenericGF;\n// import com.google.zxing.common.reedsolomon.ReedSolomonEncoder;\n/**\n * Generates Aztec 2D barcodes.\n *\n * @author Rustam Abdullaev\n */\nvar Encoder = /** @class */ (function () {\n    function Encoder() {\n    }\n    /**\n     * Encodes the given binary content as an Aztec symbol\n     *\n     * @param data input data string\n     * @return Aztec symbol matrix with metadata\n     */\n    Encoder.encodeBytes = function (data) {\n        return Encoder.encode(data, Encoder.DEFAULT_EC_PERCENT, Encoder.DEFAULT_AZTEC_LAYERS);\n    };\n    /**\n     * Encodes the given binary content as an Aztec symbol\n     *\n     * @param data input data string\n     * @param minECCPercent minimal percentage of error check words (According to ISO/IEC 24778:2008,\n     *                      a minimum of 23% + 3 words is recommended)\n     * @param userSpecifiedLayers if non-zero, a user-specified value for the number of layers\n     * @return Aztec symbol matrix with metadata\n     */\n    Encoder.encode = function (data, minECCPercent, userSpecifiedLayers) {\n        // High-level encode\n        var bits = new HighLevelEncoder(data).encode();\n        // stuff bits and choose symbol size\n        var eccBits = Integer.truncDivision((bits.getSize() * minECCPercent), 100) + 11;\n        var totalSizeBits = bits.getSize() + eccBits;\n        var compact;\n        var layers;\n        var totalBitsInLayer;\n        var wordSize;\n        var stuffedBits;\n        if (userSpecifiedLayers !== Encoder.DEFAULT_AZTEC_LAYERS) {\n            compact = userSpecifiedLayers < 0;\n            layers = Math.abs(userSpecifiedLayers);\n            if (layers > (compact ? Encoder.MAX_NB_BITS_COMPACT : Encoder.MAX_NB_BITS)) {\n                throw new IllegalArgumentException(StringUtils.format('Illegal value %s for layers', userSpecifiedLayers));\n            }\n            totalBitsInLayer = Encoder.totalBitsInLayer(layers, compact);\n            wordSize = Encoder.WORD_SIZE[layers];\n            var usableBitsInLayers = totalBitsInLayer - (totalBitsInLayer % wordSize);\n            stuffedBits = Encoder.stuffBits(bits, wordSize);\n            if (stuffedBits.getSize() + eccBits > usableBitsInLayers) {\n                throw new IllegalArgumentException('Data to large for user specified layer');\n            }\n            if (compact && stuffedBits.getSize() > wordSize * 64) {\n                // Compact format only allows 64 data words, though C4 can hold more words than that\n                throw new IllegalArgumentException('Data to large for user specified layer');\n            }\n        }\n        else {\n            wordSize = 0;\n            stuffedBits = null;\n            // We look at the possible table sizes in the order Compact1, Compact2, Compact3,\n            // Compact4, Normal4,...  Normal(i) for i < 4 isn't typically used since Compact(i+1)\n            // is the same size, but has more data.\n            for (var i /*int*/ = 0;; i++) {\n                if (i > Encoder.MAX_NB_BITS) {\n                    throw new IllegalArgumentException('Data too large for an Aztec code');\n                }\n                compact = i <= 3;\n                layers = compact ? i + 1 : i;\n                totalBitsInLayer = Encoder.totalBitsInLayer(layers, compact);\n                if (totalSizeBits > totalBitsInLayer) {\n                    continue;\n                }\n                // [Re]stuff the bits if this is the first opportunity, or if the\n                // wordSize has changed\n                if (stuffedBits == null || wordSize !== Encoder.WORD_SIZE[layers]) {\n                    wordSize = Encoder.WORD_SIZE[layers];\n                    stuffedBits = Encoder.stuffBits(bits, wordSize);\n                }\n                var usableBitsInLayers = totalBitsInLayer - (totalBitsInLayer % wordSize);\n                if (compact && stuffedBits.getSize() > wordSize * 64) {\n                    // Compact format only allows 64 data words, though C4 can hold more words than that\n                    continue;\n                }\n                if (stuffedBits.getSize() + eccBits <= usableBitsInLayers) {\n                    break;\n                }\n            }\n        }\n        var messageBits = Encoder.generateCheckWords(stuffedBits, totalBitsInLayer, wordSize);\n        // generate mode message\n        var messageSizeInWords = stuffedBits.getSize() / wordSize;\n        var modeMessage = Encoder.generateModeMessage(compact, layers, messageSizeInWords);\n        // allocate symbol\n        var baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines\n        var alignmentMap = new Int32Array(baseMatrixSize);\n        var matrixSize;\n        if (compact) {\n            // no alignment marks in compact mode, alignmentMap is a no-op\n            matrixSize = baseMatrixSize;\n            for (var i /*int*/ = 0; i < alignmentMap.length; i++) {\n                alignmentMap[i] = i;\n            }\n        }\n        else {\n            matrixSize = baseMatrixSize + 1 + 2 * Integer.truncDivision((Integer.truncDivision(baseMatrixSize, 2) - 1), 15);\n            var origCenter = Integer.truncDivision(baseMatrixSize, 2);\n            var center = Integer.truncDivision(matrixSize, 2);\n            for (var i /*int*/ = 0; i < origCenter; i++) {\n                var newOffset = i + Integer.truncDivision(i, 15);\n                alignmentMap[origCenter - i - 1] = center - newOffset - 1;\n                alignmentMap[origCenter + i] = center + newOffset + 1;\n            }\n        }\n        var matrix = new BitMatrix(matrixSize);\n        // draw data bits\n        for (var i /*int*/ = 0, rowOffset = 0; i < layers; i++) {\n            var rowSize = (layers - i) * 4 + (compact ? 9 : 12);\n            for (var j /*int*/ = 0; j < rowSize; j++) {\n                var columnOffset = j * 2;\n                for (var k /*int*/ = 0; k < 2; k++) {\n                    if (messageBits.get(rowOffset + columnOffset + k)) {\n                        matrix.set(alignmentMap[i * 2 + k], alignmentMap[i * 2 + j]);\n                    }\n                    if (messageBits.get(rowOffset + rowSize * 2 + columnOffset + k)) {\n                        matrix.set(alignmentMap[i * 2 + j], alignmentMap[baseMatrixSize - 1 - i * 2 - k]);\n                    }\n                    if (messageBits.get(rowOffset + rowSize * 4 + columnOffset + k)) {\n                        matrix.set(alignmentMap[baseMatrixSize - 1 - i * 2 - k], alignmentMap[baseMatrixSize - 1 - i * 2 - j]);\n                    }\n                    if (messageBits.get(rowOffset + rowSize * 6 + columnOffset + k)) {\n                        matrix.set(alignmentMap[baseMatrixSize - 1 - i * 2 - j], alignmentMap[i * 2 + k]);\n                    }\n                }\n            }\n            rowOffset += rowSize * 8;\n        }\n        // draw mode message\n        Encoder.drawModeMessage(matrix, compact, matrixSize, modeMessage);\n        // draw alignment marks\n        if (compact) {\n            Encoder.drawBullsEye(matrix, Integer.truncDivision(matrixSize, 2), 5);\n        }\n        else {\n            Encoder.drawBullsEye(matrix, Integer.truncDivision(matrixSize, 2), 7);\n            for (var i /*int*/ = 0, j = 0; i < Integer.truncDivision(baseMatrixSize, 2) - 1; i += 15, j += 16) {\n                for (var k /*int*/ = Integer.truncDivision(matrixSize, 2) & 1; k < matrixSize; k += 2) {\n                    matrix.set(Integer.truncDivision(matrixSize, 2) - j, k);\n                    matrix.set(Integer.truncDivision(matrixSize, 2) + j, k);\n                    matrix.set(k, Integer.truncDivision(matrixSize, 2) - j);\n                    matrix.set(k, Integer.truncDivision(matrixSize, 2) + j);\n                }\n            }\n        }\n        var aztec = new AztecCode();\n        aztec.setCompact(compact);\n        aztec.setSize(matrixSize);\n        aztec.setLayers(layers);\n        aztec.setCodeWords(messageSizeInWords);\n        aztec.setMatrix(matrix);\n        return aztec;\n    };\n    Encoder.drawBullsEye = function (matrix, center, size) {\n        for (var i /*int*/ = 0; i < size; i += 2) {\n            for (var j /*int*/ = center - i; j <= center + i; j++) {\n                matrix.set(j, center - i);\n                matrix.set(j, center + i);\n                matrix.set(center - i, j);\n                matrix.set(center + i, j);\n            }\n        }\n        matrix.set(center - size, center - size);\n        matrix.set(center - size + 1, center - size);\n        matrix.set(center - size, center - size + 1);\n        matrix.set(center + size, center - size);\n        matrix.set(center + size, center - size + 1);\n        matrix.set(center + size, center + size - 1);\n    };\n    Encoder.generateModeMessage = function (compact, layers, messageSizeInWords) {\n        var modeMessage = new BitArray();\n        if (compact) {\n            modeMessage.appendBits(layers - 1, 2);\n            modeMessage.appendBits(messageSizeInWords - 1, 6);\n            modeMessage = Encoder.generateCheckWords(modeMessage, 28, 4);\n        }\n        else {\n            modeMessage.appendBits(layers - 1, 5);\n            modeMessage.appendBits(messageSizeInWords - 1, 11);\n            modeMessage = Encoder.generateCheckWords(modeMessage, 40, 4);\n        }\n        return modeMessage;\n    };\n    Encoder.drawModeMessage = function (matrix, compact, matrixSize, modeMessage) {\n        var center = Integer.truncDivision(matrixSize, 2);\n        if (compact) {\n            for (var i /*int*/ = 0; i < 7; i++) {\n                var offset = center - 3 + i;\n                if (modeMessage.get(i)) {\n                    matrix.set(offset, center - 5);\n                }\n                if (modeMessage.get(i + 7)) {\n                    matrix.set(center + 5, offset);\n                }\n                if (modeMessage.get(20 - i)) {\n                    matrix.set(offset, center + 5);\n                }\n                if (modeMessage.get(27 - i)) {\n                    matrix.set(center - 5, offset);\n                }\n            }\n        }\n        else {\n            for (var i /*int*/ = 0; i < 10; i++) {\n                var offset = center - 5 + i + Integer.truncDivision(i, 5);\n                if (modeMessage.get(i)) {\n                    matrix.set(offset, center - 7);\n                }\n                if (modeMessage.get(i + 10)) {\n                    matrix.set(center + 7, offset);\n                }\n                if (modeMessage.get(29 - i)) {\n                    matrix.set(offset, center + 7);\n                }\n                if (modeMessage.get(39 - i)) {\n                    matrix.set(center - 7, offset);\n                }\n            }\n        }\n    };\n    Encoder.generateCheckWords = function (bitArray, totalBits, wordSize) {\n        var e_1, _a;\n        // bitArray is guaranteed to be a multiple of the wordSize, so no padding needed\n        var messageSizeInWords = bitArray.getSize() / wordSize;\n        var rs = new ReedSolomonEncoder(Encoder.getGF(wordSize));\n        var totalWords = Integer.truncDivision(totalBits, wordSize);\n        var messageWords = Encoder.bitsToWords(bitArray, wordSize, totalWords);\n        rs.encode(messageWords, totalWords - messageSizeInWords);\n        var startPad = totalBits % wordSize;\n        var messageBits = new BitArray();\n        messageBits.appendBits(0, startPad);\n        try {\n            for (var _b = __values(Array.from(messageWords)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var messageWord = _c.value /*: int*/;\n                messageBits.appendBits(messageWord, wordSize);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return messageBits;\n    };\n    Encoder.bitsToWords = function (stuffedBits, wordSize, totalWords) {\n        var message = new Int32Array(totalWords);\n        var i;\n        var n;\n        for (i = 0, n = stuffedBits.getSize() / wordSize; i < n; i++) {\n            var value = 0;\n            for (var j /*int*/ = 0; j < wordSize; j++) {\n                value |= stuffedBits.get(i * wordSize + j) ? (1 << wordSize - j - 1) : 0;\n            }\n            message[i] = value;\n        }\n        return message;\n    };\n    Encoder.getGF = function (wordSize) {\n        switch (wordSize) {\n            case 4:\n                return GenericGF.AZTEC_PARAM;\n            case 6:\n                return GenericGF.AZTEC_DATA_6;\n            case 8:\n                return GenericGF.AZTEC_DATA_8;\n            case 10:\n                return GenericGF.AZTEC_DATA_10;\n            case 12:\n                return GenericGF.AZTEC_DATA_12;\n            default:\n                throw new IllegalArgumentException('Unsupported word size ' + wordSize);\n        }\n    };\n    Encoder.stuffBits = function (bits, wordSize) {\n        var out = new BitArray();\n        var n = bits.getSize();\n        var mask = (1 << wordSize) - 2;\n        for (var i /*int*/ = 0; i < n; i += wordSize) {\n            var word = 0;\n            for (var j /*int*/ = 0; j < wordSize; j++) {\n                if (i + j >= n || bits.get(i + j)) {\n                    word |= 1 << (wordSize - 1 - j);\n                }\n            }\n            if ((word & mask) === mask) {\n                out.appendBits(word & mask, wordSize);\n                i--;\n            }\n            else if ((word & mask) === 0) {\n                out.appendBits(word | 1, wordSize);\n                i--;\n            }\n            else {\n                out.appendBits(word, wordSize);\n            }\n        }\n        return out;\n    };\n    Encoder.totalBitsInLayer = function (layers, compact) {\n        return ((compact ? 88 : 112) + 16 * layers) * layers;\n    };\n    Encoder.DEFAULT_EC_PERCENT = 33; // default minimal percentage of error check words\n    Encoder.DEFAULT_AZTEC_LAYERS = 0;\n    Encoder.MAX_NB_BITS = 32;\n    Encoder.MAX_NB_BITS_COMPACT = 4;\n    Encoder.WORD_SIZE = Int32Array.from([\n        4, 6, 6, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n        12, 12, 12, 12, 12, 12, 12, 12, 12, 12\n    ]);\n    return Encoder;\n}());\nexport default Encoder;\n","import { BrowserMultiFormatReader } from \"@zxing/library\"\r\n\r\nexport class BarcodeScanner {\r\n  private onSuccess: (value: string) => void\r\n  private onCameraNotAvailable: () => void\r\n  private cancelButtonName: string | undefined\r\n\r\n  private cameraBlock: HTMLElement | undefined = undefined\r\n  private cameraView: HTMLVideoElement | undefined = undefined\r\n  private cameraCanvas: HTMLCanvasElement | undefined = undefined\r\n  private cameraSensor: HTMLCanvasElement | undefined = undefined\r\n  private cameraCancelButton: HTMLElement | undefined = undefined\r\n  private cameraHintsContainer: HTMLElement | undefined = undefined\r\n  private scanline: HTMLElement | undefined = undefined\r\n  private currentlyScanning: boolean = false\r\n  private updateInterval: number | undefined = undefined\r\n  private scanInterval: number | undefined = undefined\r\n\r\n  public constructor(onSuccess: (value: string) => void, onCameraNotAvailable: () => void, cancelButtonName?: string) {\r\n    this.onSuccess = onSuccess\r\n    this.onCameraNotAvailable = onCameraNotAvailable\r\n    this.cancelButtonName = cancelButtonName\r\n    this.createBasicLayout()\r\n  }\r\n\r\n  private createBasicLayout() {\r\n    this.cameraBlock = document.createElement(\"div\")\r\n    this.cameraBlock.className = \"barcode-scanner\"\r\n    this.cameraBlock.style.visibility = \"hidden\"\r\n    document.body.appendChild(this.cameraBlock)\r\n\r\n    this.cameraView = document.createElement(\"video\");\r\n    this.cameraView.autoplay = true\r\n    this.cameraView.muted = true\r\n    this.cameraView.setAttribute(\"muted\", \"true\")\r\n    const asAny = (this.cameraView as any)\r\n    asAny.playsInline = true\r\n    this.cameraBlock.appendChild(this.cameraView)\r\n\r\n    this.cameraCanvas = document.createElement(\"canvas\")\r\n    this.cameraCanvas.className = \"box\"\r\n    this.cameraBlock.appendChild(this.cameraCanvas)\r\n\r\n    this.cameraSensor = document.createElement(\"canvas\")\r\n    this.cameraSensor.className = \"sensor\"\r\n    this.cameraBlock.appendChild(this.cameraSensor)\r\n\r\n    this.cameraCancelButton = document.createElement(\"button\")\r\n    this.cameraCancelButton.className = \"cancel\"\r\n    this.cameraCancelButton.innerText = this.cancelButtonName || \"Cancel\"\r\n    this.cameraCancelButton.onclick = this.cameraStop.bind(this)\r\n    this.cameraBlock.appendChild(this.cameraCancelButton)\r\n\r\n    this.cameraHintsContainer = document.createElement(\"div\")\r\n    this.cameraHintsContainer.className = \"barcode-scanner-hints\"\r\n    this.cameraBlock.appendChild(this.cameraHintsContainer)\r\n  }\r\n\r\n  cameraStart() {\r\n    //browser or security not capable\r\n    if (navigator.mediaDevices == null) {\r\n      this.onCameraNotAvailable()\r\n      return false;\r\n    }\r\n\r\n    this.currentlyScanning = true\r\n\r\n    //\"constraints\" determines which camera(s) to use\r\n    //currenly only looking for rear camera on phones/devices\r\n    //can be expanded in the future\r\n    const constraints = { video: { facingMode: \"environment\" }, audio: false }\r\n    navigator.mediaDevices\r\n      .getUserMedia(constraints)\r\n      .then(stream => {\r\n        this.cameraBlock!.style.visibility = \"visible\"\r\n        this.cameraView!.srcObject = stream\r\n        this.updateInterval = window.setInterval(this.updateCanvas.bind(this), 10);\r\n        this.scanInterval = window.setInterval(this.scanVideoForBarcode.bind(this), 100);\r\n        this.createHintObjects();\r\n      })\r\n      .catch(() => {\r\n        this.onCameraNotAvailable()\r\n      })\r\n  }\r\n\r\n  private createHintObjects() {\r\n    //red line in center of screen\r\n    this.scanline = document.createElement(\"div\")\r\n    this.scanline.className = \"scanline\"\r\n    this.cameraHintsContainer!.appendChild(this.scanline);\r\n  }\r\n\r\n  private updateCanvas() {\r\n    //draw on the canvas, since we can't rely on the actual video feed on ios devices\r\n    this.cameraCanvas!.width = this.cameraView!.videoWidth\r\n    this.cameraCanvas!.height = this.cameraView!.videoHeight\r\n    this.cameraCanvas!.getContext(\"2d\")!.drawImage(this.cameraView!, 0, 0);\r\n  }\r\n\r\n  private scanVideoForBarcode() {\r\n    this.cameraSensor!.width = this.cameraView!.videoWidth\r\n    this.cameraSensor!.height = this.cameraView!.videoHeight\r\n    this.cameraSensor!.getContext(\"2d\")!.drawImage(this.cameraView!, 0, 0);\r\n\r\n    if (!this.currentlyScanning) {\r\n      return\r\n    }\r\n\r\n    const codeReader = new BrowserMultiFormatReader();\r\n    codeReader.decodeFromImage(undefined, this.cameraSensor!.toDataURL(\"image/webp\"))\r\n      .then(result => {\r\n        this.scanSuccess(result.getText())\r\n      })\r\n      .catch((e) => {\r\n      })\r\n  }\r\n\r\n  private scanSuccess(result: string) {\r\n    this.onSuccess(result)\r\n    this.cameraStop()\r\n  }\r\n\r\n  cameraStop() {\r\n    if (!this.cameraView) {\r\n      return\r\n    }\r\n\r\n    //clear interval\r\n    if (this.updateInterval) { clearInterval(this.updateInterval) }\r\n    if (this.scanInterval) { clearInterval(this.scanInterval) }\r\n\r\n    //shut down video feed from camera\r\n    if (this.cameraView.srcObject !== null) {\r\n      const tracks = (this.cameraView!.srcObject as MediaStream).getTracks()\r\n      tracks.forEach(function (track) {\r\n        track.stop()\r\n      })\r\n    }\r\n\r\n    this.cameraView.srcObject = null\r\n\r\n    //hide camera interface\r\n    this.cameraBlock!.style.visibility = \"hidden\"\r\n    this.currentlyScanning = false\r\n\r\n    //remove hint objects in case a different set gets used next time (not likely but possible)\r\n    this.removeHintObjects()\r\n  }\r\n\r\n  removeLayout() {\r\n    this.cameraStop()\r\n\r\n    if (this.cameraBlock) {\r\n      document.body.removeChild(this.cameraBlock)\r\n    }\r\n  }\r\n\r\n  private removeHintObjects() {\r\n    if (!this.scanline) {\r\n      return\r\n    }\r\n\r\n    this.cameraHintsContainer!.removeChild(this.scanline)\r\n    this.scanline = undefined\r\n  }\r\n}\r\n","/*\n* Copyright 2013 ZXing authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n*      http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n// package com.google.zxing.aztec;\n// import com.google.zxing.BarcodeFormat;\nimport BarcodeFormat from '../BarcodeFormat';\n// import com.google.zxing.EncodeHintType;\nimport EncodeHintType from '../EncodeHintType';\n// import com.google.zxing.aztec.encoder.Encoder;\nimport Encoder from './encoder/Encoder';\n// import com.google.zxing.common.BitMatrix;\nimport BitMatrix from '../common/BitMatrix';\n// import java.nio.charset.Charset;\nimport Charset from '../util/Charset';\n// import java.nio.charset.StandardCharsets;\nimport StandardCharsets from '../util/StandardCharsets';\n// import java.util.Map;\nimport Integer from '../util/Integer';\nimport IllegalStateException from '../IllegalStateException';\nimport IllegalArgumentException from '../IllegalArgumentException';\nimport StringUtils from '../common/StringUtils';\n/**\n * Renders an Aztec code as a {@link BitMatrix}.\n */\nvar AztecWriter = /** @class */ (function () {\n    function AztecWriter() {\n    }\n    // @Override\n    AztecWriter.prototype.encode = function (contents, format, width, height) {\n        return this.encodeWithHints(contents, format, width, height, null);\n    };\n    // @Override\n    AztecWriter.prototype.encodeWithHints = function (contents, format, width, height, hints) {\n        var charset = StandardCharsets.ISO_8859_1;\n        var eccPercent = Encoder.DEFAULT_EC_PERCENT;\n        var layers = Encoder.DEFAULT_AZTEC_LAYERS;\n        if (hints != null) {\n            if (hints.has(EncodeHintType.CHARACTER_SET)) {\n                charset = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString());\n            }\n            if (hints.has(EncodeHintType.ERROR_CORRECTION)) {\n                eccPercent = Integer.parseInt(hints.get(EncodeHintType.ERROR_CORRECTION).toString());\n            }\n            if (hints.has(EncodeHintType.AZTEC_LAYERS)) {\n                layers = Integer.parseInt(hints.get(EncodeHintType.AZTEC_LAYERS).toString());\n            }\n        }\n        return AztecWriter.encodeLayers(contents, format, width, height, charset, eccPercent, layers);\n    };\n    AztecWriter.encodeLayers = function (contents, format, width, height, charset, eccPercent, layers) {\n        if (format !== BarcodeFormat.AZTEC) {\n            throw new IllegalArgumentException('Can only encode AZTEC, but got ' + format);\n        }\n        var aztec = Encoder.encode(StringUtils.getBytes(contents, charset), eccPercent, layers);\n        return AztecWriter.renderResult(aztec, width, height);\n    };\n    AztecWriter.renderResult = function (code, width, height) {\n        var input = code.getMatrix();\n        if (input == null) {\n            throw new IllegalStateException();\n        }\n        var inputWidth = input.getWidth();\n        var inputHeight = input.getHeight();\n        var outputWidth = Math.max(width, inputWidth);\n        var outputHeight = Math.max(height, inputHeight);\n        var multiple = Math.min(outputWidth / inputWidth, outputHeight / inputHeight);\n        var leftPadding = (outputWidth - (inputWidth * multiple)) / 2;\n        var topPadding = (outputHeight - (inputHeight * multiple)) / 2;\n        var output = new BitMatrix(outputWidth, outputHeight);\n        for (var inputY /*int*/ = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n            // Write the contents of this row of the barcode\n            for (var inputX /*int*/ = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n                if (input.get(inputX, inputY)) {\n                    output.setRegion(outputX, outputY, multiple, multiple);\n                }\n            }\n        }\n        return output;\n    };\n    return AztecWriter;\n}());\nexport default AztecWriter;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\"\r\nimport { Button, Col, Form, InputGroup, Row, Spinner } from \"react-bootstrap\"\r\nimport ScanBarcodeIcon from \"../../assets/images/ScanBarcodeIcon.png\"\r\nimport { BarcodeScanner } from \"./Modals/BarcodeScanner\"\r\nimport { toast } from \"react-toastify\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\nimport { BLUESTONE, HEALTH_CONFIRM, Implementation, WELLNESS } from \"../../api/models/registration/Implementation\"\r\n\r\nexport interface StepProps {\r\n  title?: string\r\n  onPrev?: () => void\r\n  onNext?: () => void\r\n}\r\n\r\nexport interface BarcodeStepProps {\r\n  title?: string\r\n  onNext: (barcode: string, scanned: boolean) => void\r\n  implementation?: Implementation\r\n  useTwelve: boolean\r\n  submitting: boolean\r\n}\r\n\r\nexport default function Barcode(props: BarcodeStepProps) {\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const [barcode, setBarcode] = useState<string>(\"\")\r\n  const [scanned, setScannded] = useState<boolean>(false)\r\n  const [barcodeHidden, setBarcodeHidden] = useState<boolean>(false)\r\n  const [secondBarcode, setSecondBarcode] = useState<string>(\"\")\r\n  const [displaySecondBarcode, setDisplaySecondBarcode] = useState<boolean>(false)\r\n  const barcodeScanner = useRef<BarcodeScanner | undefined>(undefined)\r\n  const [cameraNotAvailable, setCameraNotAvailable] = useState<boolean>(false)\r\n  const [barcodeValid, setBarcodeValid] = useState<boolean>(true)\r\n\r\n  const barcodeRef = useRef<HTMLInputElement>(null)\r\n  const secondBarcodeRef = useRef<HTMLInputElement>(null)\r\n  const submittingRef = useRef<boolean>(false)\r\n\r\n  useEffect(() => {\r\n    const setScanedBarcode = (value: string) => {\r\n      setScannded(true)\r\n      setBarcode(value)\r\n      setDisplaySecondBarcode(false)\r\n    }\r\n\r\n    const handleCameraNotAvailable = () => {\r\n      setCameraNotAvailable(true)\r\n    }\r\n\r\n    barcodeScanner.current = new BarcodeScanner(setScanedBarcode, handleCameraNotAvailable, translationRef.current(\"registration.button.cancel\"))\r\n    return () => {\r\n      if (barcodeScanner.current) {\r\n        barcodeScanner.current.removeLayout()\r\n      }\r\n    }\r\n  }, [translationRef])\r\n\r\n  useEffect(() => {\r\n    if (cameraNotAvailable) {\r\n      toast.error(translationRef.current(\"registration.barcode.noCameraCouldBeFound\"))\r\n    }\r\n  }, [translationRef, cameraNotAvailable])\r\n\r\n  useEffect(() => {\r\n    if (submittingRef.current && !props.submitting) {\r\n      clearBarcodes()\r\n    }\r\n\r\n    submittingRef.current = props.submitting\r\n  }, [props.submitting])\r\n\r\n  const handleScan = () => {\r\n    setBarcode(\"\")\r\n    handleBarcodeFocus()\r\n    if (barcodeScanner.current) {\r\n      barcodeScanner.current.cameraStart()\r\n    }\r\n  }\r\n\r\n  const handleBarcodeChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    setBarcodeValid(true)\r\n    setBarcode(e.target.value)\r\n    setScannded(false)\r\n    setDisplaySecondBarcode(false)\r\n  }\r\n\r\n  const handleBarcodeBlur = () => {\r\n    if (!scanned && barcode !== \"\") {\r\n      validateBarcode()\r\n      setDisplaySecondBarcode(true)\r\n      setBarcodeHidden(true)\r\n      setTimeout(() => { secondBarcodeRef.current?.focus() }, 100)\r\n    }\r\n  }\r\n\r\n  const handleBarcodeFocus = () => {\r\n    setBarcodeHidden(false)\r\n    setSecondBarcode(\"\")\r\n    setDisplaySecondBarcode(false)\r\n  }\r\n\r\n  const handleSecondBarcodeChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    setSecondBarcode(e.target.value)\r\n  }\r\n\r\n  const handleSecondBarcodeBlur = () => {\r\n    validateBarcodes()\r\n  }\r\n\r\n  const validateBarcode = () => {\r\n    var valid = (/^[a-zA-Z0-9_-]{6,25}$/i).test(barcode)\r\n\r\n    setBarcodeValid(valid)\r\n    return valid\r\n  }\r\n\r\n  const clearBarcodes = () => {\r\n    setBarcode(\"\")\r\n    setSecondBarcode(\"\")\r\n    setScannded(false)\r\n    setBarcodeValid(true)\r\n    setDisplaySecondBarcode(false)\r\n    setTimeout(() => {\r\n      barcodeRef.current?.focus()\r\n    }, 100);\r\n  }\r\n\r\n  const validateBarcodes = () => {\r\n    if (scanned) {\r\n      return true\r\n    }\r\n\r\n    if (!displaySecondBarcode) {\r\n      handleBarcodeBlur()\r\n      return false\r\n    }\r\n\r\n    if (barcode !== secondBarcode) {\r\n      toast.error(t(\"registration.barcode.valuesYouHaveEnteredDoNotMatch\"))\r\n      clearBarcodes()\r\n      return false\r\n    }\r\n    return true\r\n  }\r\n\r\n  const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\r\n    e.preventDefault()\r\n\r\n    if (props.submitting) {\r\n      return\r\n    }\r\n\r\n    const valid = validateBarcode()\r\n    if (validateBarcodes() && valid) {\r\n      props.onNext(barcode, scanned)\r\n    }\r\n  }\r\n\r\n  const preventCopyPaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\r\n    e.preventDefault()\r\n  }\r\n\r\n  const preventContextMenu = (e: React.MouseEvent) => {\r\n    e.preventDefault()\r\n  }\r\n\r\n  const scanningImageSrc = useMemo(() => {\r\n    if (props.implementation && [BLUESTONE, HEALTH_CONFIRM, WELLNESS].includes(props.implementation)) {\r\n      return `${process.env.PUBLIC_URL}/images/Scanning_Phone_${props.implementation}.png`\r\n    }\r\n    return `${process.env.PUBLIC_URL}/images/Scanning_Phone.png`\r\n  }, [props.implementation])\r\n\r\n  return (\r\n    <Form onSubmit={handleSubmit}>\r\n      <Row>\r\n        <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n      </Row>\r\n      <Row>\r\n        <Col>\r\n          <Row><Col className=\"fw-bold mb-3\">{t(\"registration.barcode.enterTheBarcodeValue\")}</Col></Row>\r\n          <Row><Col className=\"fw-bold\">{t([`registration.barcode.pleaseEnsure_${props.implementation}`, `registration.barcode.pleaseEnsureThePatientsName`])}</Col></Row>\r\n          <Row>\r\n            <Col lg={4} md={6} sm={8} xs={8}>\r\n              <Row className=\"mt-3\">\r\n                <Col sm={10} xs={12}>\r\n                  <InputGroup>\r\n                    <Form.Control type={barcodeHidden ? \"password\" : \"text\"} id=\"barcode1\" ref={barcodeRef} value={barcode}\r\n                      autoComplete=\"off\"\r\n                      minLength={6} maxLength={25}\r\n                      onChange={handleBarcodeChange} onBlur={handleBarcodeBlur} onFocus={handleBarcodeFocus}\r\n                      onCopy={preventCopyPaste} onPaste={preventCopyPaste} onCut={preventCopyPaste} onContextMenu={preventContextMenu} />\r\n                    <InputGroup.Text>\r\n                      {!cameraNotAvailable && <img src={ScanBarcodeIcon} alt={t(\"registration.barcode.scanBarcode\")} height={20} width=\"auto\" onClick={handleScan} />}\r\n                    </InputGroup.Text>\r\n                  </InputGroup>\r\n                  {!barcodeValid && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{barcode ? t(\"registration.validation.barcode\") : t(\"registration.validation.fieldRequired\")}</Form.Control.Feedback>}\r\n                </Col>\r\n              </Row>\r\n              {displaySecondBarcode && <Row className=\"mt-3\">\r\n                <Col sm={10} xs={12}>\r\n                  <Form.Label className=\"fw-bold\">{t(\"registration.barcode.pleaseReEnterTheBarcodeValue\")}</Form.Label>\r\n                  <Form.Control type=\"text\" id=\"barcode2\" ref={secondBarcodeRef} value={secondBarcode}\r\n                    autoComplete=\"off\"\r\n                    minLength={6} maxLength={25}\r\n                    onChange={handleSecondBarcodeChange} onBlur={handleSecondBarcodeBlur}\r\n                    onCopy={preventCopyPaste} onPaste={preventCopyPaste} onCut={preventCopyPaste} onContextMenu={preventContextMenu} />\r\n                </Col>\r\n              </Row>}\r\n              {props.useTwelve && <div className=\"m-1\">\r\n                <Form.Label>{t(\"registration.barcode.invalidBarcodePleasescanEnterThe12DigitBarcode\")}</Form.Label>\r\n                <img src={`${process.env.PUBLIC_URL}/images/TwelveDigitBarcode.jpg`} alt={t(\"registration.barcode.scanBarcode\")} />\r\n              </div>}\r\n              <div className=\"px-0 my-3\">\r\n                <Button variant=\"primary\" type=\"submit\" disabled={props.submitting}>\r\n                  {props.submitting && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n                  <span>{t(\"registration.button.next\")}</span>\r\n                </Button>\r\n              </div>\r\n            </Col>\r\n            <Col lg={2} md={3} sm={4} xs={4} className=\"my-3\">\r\n              <img src={scanningImageSrc} alt={t(\"registration.barcode.scanBarcode\")} height={150} />\r\n            </Col>\r\n          </Row>\r\n        </Col>\r\n      </Row>\r\n    </Form>\r\n  )\r\n}\r\n","import * as React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Button, Col, Row, Spinner } from \"react-bootstrap\";\r\nimport { toast } from \"react-toastify\";\r\nimport { getConsent } from \"../../api/Registration\";\r\nimport Consent from \"../../api/models/Consent\";\r\nimport { APIError } from \"../../api/ObservableFromFetch\";\r\nimport ConsentForm from \"../Results/Modals/ConsentForm\";\r\nimport BarcodeResponse from \"../../api/models/registration/BarcodeResponse\";\r\nimport { Implementation } from \"../../api/models/registration/Implementation\";\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\";\r\n\r\ninterface ConsentStepProps {\r\n  title?: string\r\n  onPrev: () => void\r\n  onNext: (consentId: number) => void\r\n  barcode: BarcodeResponse\r\n  implementation?: Implementation\r\n  initialAccepted: boolean\r\n}\r\n\r\nexport default function ConsentStep(props: ConsentStepProps) {\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const [accepted, setAccepted] = useState(false)\r\n  const [loading, setLoading] = useState(true)\r\n  const [consent, setConsent] = useState<Consent | undefined>()\r\n  const barcode = props.barcode\r\n\r\n  useEffect(() => {\r\n    const subscription = getConsent({ accountNumber: barcode.account, consentTypeID: barcode.barcodeType, testCode: barcode.testCode }).subscribe({\r\n      next: (result: Consent) => {\r\n        setConsent(result)\r\n        setLoading(false)\r\n      },\r\n      error: (e: APIError) => {\r\n        setLoading(false)\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [barcode, translationRef])\r\n\r\n  const handleNext = () => {\r\n    props.onNext(consent?.consentId ?? 0)\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <Row>\r\n        <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n      </Row>\r\n      {loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      {!loading && consent && <ConsentForm consent={consent} implementation={props.implementation}\r\n        initialAccepted={props.initialAccepted}\r\n        onCancel={() => { }} onSubmit={() => { }} onChange={(accepted) => setAccepted(accepted)} />}\r\n      <div className=\"px-0 my-2\">\r\n        <Button variant=\"secondary\" onClick={() => props.onPrev && props.onPrev()}>{t(\"registration.button.back\")}</Button>&nbsp;\r\n        <Button variant=\"primary\" type=\"submit\" disabled={!accepted} onClick={handleNext}>{t(\"registration.button.next\")}</Button>\r\n      </div>\r\n    </>\r\n  )\r\n}\r\n","import React, { useState, useRef, ChangeEvent, useMemo } from \"react\"\r\nimport { Col, Form, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport EmployeeRequest from \"../../api/models/registration/EmployeeRequest\"\r\nimport EscapePhoneNumber from \"../../formatters/EscapePhoneNumber\"\r\nimport FormatLocalISODateString from \"../../formatters/FormatLocalISODateString\"\r\nimport DateOfBirth from \"../Login/DateOfBirth\"\r\nimport PhoneNumber from \"../Login/PhoneNumber\"\r\nimport { Implementation } from \"../../api/models/registration/Implementation\"\r\nimport Country from \"../../api/models/Country\"\r\n\r\nexport interface EmployeeProps {\r\n  implementation?: Implementation\r\n  requireEmployeeId: boolean\r\n  onSubmit: (employeeRequest: EmployeeRequest) => void\r\n  submitting: boolean\r\n  countries: Country[]\r\n}\r\n\r\nexport default function Employee(props: EmployeeProps) {\r\n  const { t } = useTranslation()\r\n  const { implementation, requireEmployeeId, onSubmit, submitting } = props\r\n\r\n  const [employeeId, setEmployeeId] = useState<string>(\"\")\r\n  const [employeeIdValid, setEmployeeIdValid] = useState<boolean>(!requireEmployeeId)\r\n  const [employeeIdTouched, setEmployeeIdTouched] = useState<boolean>(false)\r\n  const [phone, setPhone] = useState<string>(\"\")\r\n  const [country, setCountry] = useState<string>(\"us\")\r\n  const [phoneValid, setPhoneValid] = useState<boolean>(false)\r\n  const [phoneTouched, setPhoneTouched] = useState<boolean>(false)\r\n  const [birthdate, setBirthdate] = useState<Date | null>(null)\r\n  const [birthdateValid, setBirthdateValid] = useState<boolean>(requireEmployeeId)\r\n  const [birthdateTouched, setBirthdateTouched] = useState<boolean>(false)\r\n  const [displayBirthdateError, setDisplayBirthdateError] = useState<boolean>(false)\r\n  const [acceptTextMessages, setAcceptTextMessages] = useState<boolean>(true)\r\n\r\n  const form = useRef<HTMLFormElement>(null)\r\n  const validateEmployeeId = (value: string) => {\r\n    return value !== \"\"\r\n  }\r\n\r\n  const handleFormSubmit = (e: React.FormEvent<HTMLFormElement>) => {\r\n    e.preventDefault()\r\n\r\n    if (!birthdateValid && !birthdateTouched) {\r\n      setDisplayBirthdateError(true)\r\n      return\r\n    }\r\n    const valid = employeeIdValid\r\n    if (!employeeIdTouched) {\r\n      setEmployeeIdTouched(true)\r\n      const valid = validateEmployeeId(employeeId)\r\n      setEmployeeIdValid(valid)\r\n    }\r\n\r\n    setPhoneTouched(true)\r\n\r\n    if (phoneValid && birthdateValid && valid) {\r\n      const mobileNumber = EscapePhoneNumber(phone)\r\n      const employee = requireEmployeeId\r\n        ? { countryAbbreviation: country, mobileNumber, employeeId, acceptTextMessages }\r\n        : { countryAbbreviation: country, mobileNumber, dateOfBirth: FormatLocalISODateString(birthdate), acceptTextMessages }\r\n      onSubmit(employee)\r\n    }\r\n  }\r\n\r\n  const handleEmployeeIdChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    const value = e.target.value?.trim()\r\n    setEmployeeId(value)\r\n    setEmployeeIdValid(validateEmployeeId(value))\r\n  }\r\n\r\n  const handleEmployeeIdBlur = () => {\r\n    setEmployeeIdTouched(true)\r\n    setEmployeeIdValid(validateEmployeeId(employeeId))\r\n  }\r\n\r\n  const handlePhoneChange = (valid: boolean, value: string, country: string) => {\r\n    setPhoneValid(valid)\r\n    setPhone(value)\r\n    setCountry(country)\r\n    setPhoneTouched(true)\r\n  }\r\n\r\n  const handleAcceptTextMessagesChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n    setAcceptTextMessages(e.target.checked)\r\n  }\r\n\r\n  const handleBirthDateChange = (date: Date | null) => {\r\n    setBirthdate(date)\r\n    setBirthdateValid(date !== null)\r\n    setBirthdateTouched(true)\r\n  }\r\n\r\n  const birthDateTitle = useMemo(() => {\r\n    const standardName = \"registration.employee.dateOfBirth\"\r\n    if (!implementation) {\r\n      return t(standardName)\r\n    }\r\n\r\n    const translateTitle = `${standardName}_${implementation}`\r\n    const implemenationTitle = t(translateTitle)\r\n    if (implemenationTitle !== translateTitle) {\r\n      return implemenationTitle\r\n    }\r\n    return t(standardName)\r\n  }, [implementation, t])\r\n\r\n  return <Form id=\"employeeForm\" autoComplete=\"off\" ref={form} onSubmit={handleFormSubmit}>\r\n    {requireEmployeeId && <Row>\r\n      <Col sm={6} md={5} lg={4} className=\"my-3\">\r\n        <Form.Label className=\"fw-bold text-uppercase\">{t(\"registration.employee.enterYourEmployeeId\")}</Form.Label>\r\n        <Form.Control type=\"text\" id=\"employeeId\" value={employeeId} maxLength={25} onChange={handleEmployeeIdChange} onBlur={handleEmployeeIdBlur} />\r\n        {employeeIdTouched && !employeeIdValid && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{t(\"registration.validation.fieldRequired\")}</Form.Control.Feedback>}\r\n      </Col>\r\n    </Row>}\r\n    <Row>\r\n      <Col sm={6} md={5} lg={4} className={requireEmployeeId ? \"mb-3\" : \"my-3\"}>\r\n        <Form.Group controlId=\"phoneNumber\">\r\n          <PhoneNumber onChange={handlePhoneChange} skipFocus={requireEmployeeId} skipFeedback countries={props.countries} />\r\n          {phoneTouched && !phoneValid && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{t(\"login.phoneNumber.invalid\")}</Form.Control.Feedback>}\r\n        </Form.Group>\r\n        <div>\r\n          {t(\"registration.employee.whichMayBeUsed\")}\r\n        </div>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col>\r\n        <Form.Group className=\"mb-3\" controlId=\"acceptTextMessages\" key=\"acceptTextMessages\">\r\n          <Form.Check id=\"acceptTextMessages\" type=\"checkbox\" label={t(\"registration.employee.acceptTextMessages\")}\r\n            checked={acceptTextMessages} onChange={handleAcceptTextMessagesChange} />\r\n        </Form.Group>\r\n      </Col>\r\n    </Row>\r\n    {!requireEmployeeId && <Row>\r\n      <Col sm={6} md={5} lg={4} className=\"mb-3\">\r\n        <Form.Group controlId=\"dateOfBirth\">\r\n          <DateOfBirth title={birthDateTitle} onChange={handleBirthDateChange}\r\n            onSubmit={() => phoneValid && birthdateValid && !submitting && form.current && form.current.dispatchEvent(new Event(\"submit\"))}\r\n          />\r\n        </Form.Group>\r\n        {displayBirthdateError && !birthdateValid && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{t(\"login.dateOfBirth.invalid\")}</Form.Control.Feedback>}\r\n      </Col>\r\n    </Row>}\r\n  </Form>\r\n}\r\n","import React, { useRef, useState } from \"react\"\r\nimport { Button, Col, Form, Row, Spinner } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nexport interface VerificationProps {\r\n  onSubmit: (code: string) => void\r\n  submitting: boolean\r\n  onCodeSkip: () => void\r\n  onCodeResend: () => void\r\n}\r\n\r\nexport default function Verification(props: VerificationProps) {\r\n  const { t } = useTranslation()\r\n\r\n  const [code, setCode] = useState(\"\")\r\n  const [codeTouched, setCodeTouched] = useState(false)\r\n  const verificationInputRef = useRef<HTMLInputElement>(null)\r\n\r\n  const validCode = /^\\d{6}$/.test(code)\r\n\r\n  const handleFormSubmit = (e: React.FormEvent<HTMLFormElement>) => {\r\n    e.preventDefault()\r\n    if (validCode) {\r\n      props.onSubmit(code)\r\n    }\r\n  }\r\n\r\n  const handleCodeResend = (e: React.FormEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault()\r\n    props.onCodeResend()\r\n  }\r\n\r\n  return <Form id=\"validationForm\" onSubmit={handleFormSubmit}>\r\n    <Row>\r\n      <Col>\r\n        <span className=\"fw-bold\">{t(\"registration.verification.welcomeBack\")}</span>\r\n        <p>{t(\"registration.verification.verificationCodeHasBeenSent\")}</p>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={6} md={5} lg={4}></Col>\r\n      <Col className=\"mb-3\"><a href=\"#\" onClick={handleCodeResend}>{t(\"registration.verification.resendCode\")}</a></Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={6} md={5} lg={4}>\r\n        <Form.Label className=\"fw-bold\" htmlFor=\"verification\">{t(\"registration.verification.pleaseEnterVerificationCode\")}</Form.Label>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={6} md={5} lg={4} className=\"mb-3\">\r\n        <Form.Control type=\"text\" id=\"verification\" ref={verificationInputRef} value={code} minLength={6} maxLength={6}\r\n          placeholder={t(\"registration.verification.confirmationCode\")}\r\n          onBlur={() => setCodeTouched(true)} onChange={(e) => { setCodeTouched(true); setCode(e.target.value) }}\r\n          autoComplete=\"one-time-code\" className={!validCode && codeTouched ? \"is-invalid\" : \"\"} />\r\n        {!validCode && codeTouched && <Form.Control.Feedback className=\"order-last\" type=\"invalid\">{t(\"login.verification.invalid\")}</Form.Control.Feedback>}\r\n      </Col>\r\n      <Col className=\"mb-3\">\r\n        <Button variant=\"primary\" type=\"submit\" form=\"validationForm\" disabled={props.submitting}>\r\n          {props.submitting && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n          <span>{t(\"registration.button.checkCode\")}</span>\r\n        </Button>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={8} md={7} lg={6} className=\"mb-3\">\r\n        {t(\"registration.verification.youMaySkipEntering\")}\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={6} md={5} lg={4}></Col>\r\n      <Col className=\"mb-3\">\r\n        <Button variant=\"primary\" type=\"button\" disabled={props.submitting} onClick={props.onCodeSkip}>{t(\"registration.button.skipCheck\")}</Button>\r\n      </Col>\r\n    </Row>\r\n  </Form>\r\n}\r\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n  return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n  return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n  return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n  var result = [];\n  while (object) {\n    arrayPush(result, getSymbols(object));\n    object = getPrototype(object);\n  }\n  return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n  return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n  return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n  var length = array.length,\n      result = new array.constructor(length);\n\n  // Add properties assigned by `RegExp#exec`.\n  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return cloneArrayBuffer(object);\n\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n\n    case dataViewTag:\n      return cloneDataView(object, isDeep);\n\n    case float32Tag: case float64Tag:\n    case int8Tag: case int16Tag: case int32Tag:\n    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n      return cloneTypedArray(object, isDeep);\n\n    case mapTag:\n      return new Ctor;\n\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n\n    case regexpTag:\n      return cloneRegExp(object);\n\n    case setTag:\n      return new Ctor;\n\n    case symbolTag:\n      return cloneSymbol(object);\n  }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n  return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n  return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_FLAT_FLAG = 2,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Deep clone\n *  2 - Flatten inherited properties\n *  4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n  var result,\n      isDeep = bitmask & CLONE_DEEP_FLAG,\n      isFlat = bitmask & CLONE_FLAT_FLAG,\n      isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== undefined) {\n    return result;\n  }\n  if (!isObject(value)) {\n    return value;\n  }\n  var isArr = isArray(value);\n  if (isArr) {\n    result = initCloneArray(value);\n    if (!isDeep) {\n      return copyArray(value, result);\n    }\n  } else {\n    var tag = getTag(value),\n        isFunc = tag == funcTag || tag == genTag;\n\n    if (isBuffer(value)) {\n      return cloneBuffer(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n      result = (isFlat || isFunc) ? {} : initCloneObject(value);\n      if (!isDeep) {\n        return isFlat\n          ? copySymbolsIn(value, baseAssignIn(result, value))\n          : copySymbols(value, baseAssign(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = initCloneByTag(value, tag, isDeep);\n    }\n  }\n  // Check for circular references and return its corresponding clone.\n  stack || (stack = new Stack);\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n\n  if (isSet(value)) {\n    value.forEach(function(subValue) {\n      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n    });\n  } else if (isMap(value)) {\n    value.forEach(function(subValue, key) {\n      result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n    });\n  }\n\n  var keysFunc = isFull\n    ? (isFlat ? getAllKeysIn : getAllKeys)\n    : (isFlat ? keysIn : keys);\n\n  var props = isArr ? undefined : keysFunc(value);\n  arrayEach(props || value, function(subValue, key) {\n    if (props) {\n      key = subValue;\n      subValue = value[key];\n    }\n    // Recursively populate clone (susceptible to call stack limits).\n    assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n  });\n  return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n  return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n  if (isArray(value)) {\n    return arrayMap(value, toKey);\n  }\n  return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n  return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\nimport * as React from 'react';\n\n// Assertions\n\n/** @private is the value an empty array? */\nexport const isEmptyArray = (value?: any) =>\n  Array.isArray(value) && value.length === 0;\n\n/** @private is the given object a Function? */\nexport const isFunction = (obj: any): obj is Function =>\n  typeof obj === 'function';\n\n/** @private is the given object an Object? */\nexport const isObject = (obj: any): obj is Object =>\n  obj !== null && typeof obj === 'object';\n\n/** @private is the given object an integer? */\nexport const isInteger = (obj: any): boolean =>\n  String(Math.floor(Number(obj))) === obj;\n\n/** @private is the given object a string? */\nexport const isString = (obj: any): obj is string =>\n  Object.prototype.toString.call(obj) === '[object String]';\n\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\nexport const isNaN = (obj: any): boolean => obj !== obj;\n\n/** @private Does a React component have exactly 0 children? */\nexport const isEmptyChildren = (children: any): boolean =>\n  React.Children.count(children) === 0;\n\n/** @private is the given object/value a promise? */\nexport const isPromise = (value: any): value is PromiseLike<any> =>\n  isObject(value) && isFunction(value.then);\n\n/** @private is the given object/value a type of synthetic event? */\nexport const isInputEvent = (value: any): value is React.SyntheticEvent<any> =>\n  value && isObject(value) && isObject(value.target);\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?Document} doc Defaults to current document.\n * @return {Element | null}\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\n */\nexport function getActiveElement(doc?: Document): Element | null {\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(\n  obj: any,\n  key: string | string[],\n  def?: any,\n  p: number = 0\n) {\n  const path = toPath(key);\n  while (obj && p < path.length) {\n    obj = obj[path[p++]];\n  }\n  return obj === undefined ? def : obj;\n}\n\n/**\n * Deeply set a value from in object via it's path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n  let res: any = clone(obj); // this keeps inheritance when obj is a class\n  let resVal: any = res;\n  let i = 0;\n  let pathArray = toPath(path);\n\n  for (; i < pathArray.length - 1; i++) {\n    const currentPath: string = pathArray[i];\n    let currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n    if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n      resVal = resVal[currentPath] = clone(currentObj);\n    } else {\n      const nextPath: string = pathArray[i + 1];\n      resVal = resVal[currentPath] =\n        isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n    }\n  }\n\n  // Return original object if new value is the same as current\n  if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n    return obj;\n  }\n\n  if (value === undefined) {\n    delete resVal[pathArray[i]];\n  } else {\n    resVal[pathArray[i]] = value;\n  }\n\n  // If the path array has a single element, the loop did not run.\n  // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n  if (i === 0 && value === undefined) {\n    delete res[pathArray[i]];\n  }\n\n  return res;\n}\n\n/**\n * Recursively a set the same value for all keys and arrays nested object, cloning\n * @param object\n * @param value\n * @param visited\n * @param response\n */\nexport function setNestedObjectValues<T>(\n  object: any,\n  value: any,\n  visited: any = new WeakMap(),\n  response: any = {}\n): T {\n  for (let k of Object.keys(object)) {\n    const val = object[k];\n    if (isObject(val)) {\n      if (!visited.get(val)) {\n        visited.set(val, true);\n        // In order to keep array values consistent for both dot path  and\n        // bracket syntax, we need to check if this is an array so that\n        // this will output  { friends: [true] } and not { friends: { \"0\": true } }\n        response[k] = Array.isArray(val) ? [] : {};\n        setNestedObjectValues(val, value, visited, response[k]);\n      }\n    } else {\n      response[k] = value;\n    }\n  }\n\n  return response;\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext<FormikContextType<any>>(\n  undefined as any\n);\nFormikContext.displayName = 'FormikContext';\n\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext<Values>() {\n  const formik = React.useContext<FormikContextType<Values>>(FormikContext);\n\n  invariant(\n    !!formik,\n    `Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.`\n  );\n\n  return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n  FormikConfig,\n  FormikErrors,\n  FormikState,\n  FormikTouched,\n  FormikValues,\n  FormikProps,\n  FieldMetaProps,\n  FieldHelperProps,\n  FieldInputProps,\n  FormikHelpers,\n  FormikHandlers,\n} from './types';\nimport {\n  isFunction,\n  isString,\n  setIn,\n  isEmptyChildren,\n  isPromise,\n  setNestedObjectValues,\n  getActiveElement,\n  getIn,\n  isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage<Values> =\n  | { type: 'SUBMIT_ATTEMPT' }\n  | { type: 'SUBMIT_FAILURE' }\n  | { type: 'SUBMIT_SUCCESS' }\n  | { type: 'SET_ISVALIDATING'; payload: boolean }\n  | { type: 'SET_ISSUBMITTING'; payload: boolean }\n  | { type: 'SET_VALUES'; payload: Values }\n  | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n  | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n  | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n  | { type: 'SET_TOUCHED'; payload: FormikTouched<Values> }\n  | { type: 'SET_ERRORS'; payload: FormikErrors<Values> }\n  | { type: 'SET_STATUS'; payload: any }\n  | {\n      type: 'SET_FORMIK_STATE';\n      payload: (s: FormikState<Values>) => FormikState<Values>;\n    }\n  | {\n      type: 'RESET_FORM';\n      payload: FormikState<Values>;\n    };\n\n// State reducer\nfunction formikReducer<Values>(\n  state: FormikState<Values>,\n  msg: FormikMessage<Values>\n) {\n  switch (msg.type) {\n    case 'SET_VALUES':\n      return { ...state, values: msg.payload };\n    case 'SET_TOUCHED':\n      return { ...state, touched: msg.payload };\n    case 'SET_ERRORS':\n      if (isEqual(state.errors, msg.payload)) {\n        return state;\n      }\n\n      return { ...state, errors: msg.payload };\n    case 'SET_STATUS':\n      return { ...state, status: msg.payload };\n    case 'SET_ISSUBMITTING':\n      return { ...state, isSubmitting: msg.payload };\n    case 'SET_ISVALIDATING':\n      return { ...state, isValidating: msg.payload };\n    case 'SET_FIELD_VALUE':\n      return {\n        ...state,\n        values: setIn(state.values, msg.payload.field, msg.payload.value),\n      };\n    case 'SET_FIELD_TOUCHED':\n      return {\n        ...state,\n        touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n      };\n    case 'SET_FIELD_ERROR':\n      return {\n        ...state,\n        errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n      };\n    case 'RESET_FORM':\n      return { ...state, ...msg.payload };\n    case 'SET_FORMIK_STATE':\n      return msg.payload(state);\n    case 'SUBMIT_ATTEMPT':\n      return {\n        ...state,\n        touched: setNestedObjectValues<FormikTouched<Values>>(\n          state.values,\n          true\n        ),\n        isSubmitting: true,\n        submitCount: state.submitCount + 1,\n      };\n    case 'SUBMIT_FAILURE':\n      return {\n        ...state,\n        isSubmitting: false,\n      };\n    case 'SUBMIT_SUCCESS':\n      return {\n        ...state,\n        isSubmitting: false,\n      };\n    default:\n      return state;\n  }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors<unknown> = {};\nconst emptyTouched: FormikTouched<unknown> = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n  [field: string]: {\n    validate: (value: any) => string | Promise<string> | undefined;\n  };\n}\n\nexport function useFormik<Values extends FormikValues = FormikValues>({\n  validateOnChange = true,\n  validateOnBlur = true,\n  validateOnMount = false,\n  isInitialValid,\n  enableReinitialize = false,\n  onSubmit,\n  ...rest\n}: FormikConfig<Values>) {\n  const props = {\n    validateOnChange,\n    validateOnBlur,\n    validateOnMount,\n    onSubmit,\n    ...rest,\n  };\n  const initialValues = React.useRef(props.initialValues);\n  const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n  const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n  const initialStatus = React.useRef(props.initialStatus);\n  const isMounted = React.useRef<boolean>(false);\n  const fieldRegistry = React.useRef<FieldRegistry>({});\n  if (__DEV__) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useEffect(() => {\n      invariant(\n        typeof isInitialValid === 'undefined',\n        'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n      );\n      // eslint-disable-next-line\n    }, []);\n  }\n\n  React.useEffect(() => {\n    isMounted.current = true;\n\n    return () => {\n      isMounted.current = false;\n    };\n  }, []);\n\n  const [state, dispatch] = React.useReducer<\n    React.Reducer<FormikState<Values>, FormikMessage<Values>>\n  >(formikReducer, {\n    values: props.initialValues,\n    errors: props.initialErrors || emptyErrors,\n    touched: props.initialTouched || emptyTouched,\n    status: props.initialStatus,\n    isSubmitting: false,\n    isValidating: false,\n    submitCount: 0,\n  });\n\n  const runValidateHandler = React.useCallback(\n    (values: Values, field?: string): Promise<FormikErrors<Values>> => {\n      return new Promise((resolve, reject) => {\n        const maybePromisedErrors = (props.validate as any)(values, field);\n        if (maybePromisedErrors == null) {\n          // use loose null check here on purpose\n          resolve(emptyErrors);\n        } else if (isPromise(maybePromisedErrors)) {\n          (maybePromisedErrors as Promise<any>).then(\n            errors => {\n              resolve(errors || emptyErrors);\n            },\n            actualException => {\n              if (process.env.NODE_ENV !== 'production') {\n                console.warn(\n                  `Warning: An unhandled error was caught during validation in <Formik validate />`,\n                  actualException\n                );\n              }\n\n              reject(actualException);\n            }\n          );\n        } else {\n          resolve(maybePromisedErrors);\n        }\n      });\n    },\n    [props.validate]\n  );\n\n  /**\n   * Run validation against a Yup schema and optionally run a function if successful\n   */\n  const runValidationSchema = React.useCallback(\n    (values: Values, field?: string): Promise<FormikErrors<Values>> => {\n      const validationSchema = props.validationSchema;\n      const schema = isFunction(validationSchema)\n        ? validationSchema(field)\n        : validationSchema;\n      const promise =\n        field && schema.validateAt\n          ? schema.validateAt(field, values)\n          : validateYupSchema(values, schema);\n      return new Promise((resolve, reject) => {\n        promise.then(\n          () => {\n            resolve(emptyErrors);\n          },\n          (err: any) => {\n            // Yup will throw a validation error if validation fails. We catch those and\n            // resolve them into Formik errors. We can sniff if something is a Yup error\n            // by checking error.name.\n            // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n            if (err.name === 'ValidationError') {\n              resolve(yupToFormErrors(err));\n            } else {\n              // We throw any other errors\n              if (process.env.NODE_ENV !== 'production') {\n                console.warn(\n                  `Warning: An unhandled error was caught during validation in <Formik validationSchema />`,\n                  err\n                );\n              }\n\n              reject(err);\n            }\n          }\n        );\n      });\n    },\n    [props.validationSchema]\n  );\n\n  const runSingleFieldLevelValidation = React.useCallback(\n    (field: string, value: void | string): Promise<string> => {\n      return new Promise(resolve =>\n        resolve(fieldRegistry.current[field].validate(value) as string)\n      );\n    },\n    []\n  );\n\n  const runFieldLevelValidations = React.useCallback(\n    (values: Values): Promise<FormikErrors<Values>> => {\n      const fieldKeysWithValidation: string[] = Object.keys(\n        fieldRegistry.current\n      ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n      // Construct an array with all of the field validation functions\n      const fieldValidations: Promise<string>[] =\n        fieldKeysWithValidation.length > 0\n          ? fieldKeysWithValidation.map(f =>\n              runSingleFieldLevelValidation(f, getIn(values, f))\n            )\n          : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n      return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n        fieldErrorsList.reduce((prev, curr, index) => {\n          if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n            return prev;\n          }\n          if (curr) {\n            prev = setIn(prev, fieldKeysWithValidation[index], curr);\n          }\n          return prev;\n        }, {})\n      );\n    },\n    [runSingleFieldLevelValidation]\n  );\n\n  // Run all validations and return the result\n  const runAllValidations = React.useCallback(\n    (values: Values) => {\n      return Promise.all([\n        runFieldLevelValidations(values),\n        props.validationSchema ? runValidationSchema(values) : {},\n        props.validate ? runValidateHandler(values) : {},\n      ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n        const combinedErrors = deepmerge.all<FormikErrors<Values>>(\n          [fieldErrors, schemaErrors, validateErrors],\n          { arrayMerge }\n        );\n        return combinedErrors;\n      });\n    },\n    [\n      props.validate,\n      props.validationSchema,\n      runFieldLevelValidations,\n      runValidateHandler,\n      runValidationSchema,\n    ]\n  );\n\n  // Run all validations methods and update state accordingly\n  const validateFormWithHighPriority = useEventCallback(\n    (values: Values = state.values) => {\n      dispatch({ type: 'SET_ISVALIDATING', payload: true });\n      return runAllValidations(values).then(combinedErrors => {\n        if (!!isMounted.current) {\n          dispatch({ type: 'SET_ISVALIDATING', payload: false });\n          dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n        }\n        return combinedErrors;\n      });\n    }\n  );\n\n  React.useEffect(() => {\n    if (\n      validateOnMount &&\n      isMounted.current === true &&\n      isEqual(initialValues.current, props.initialValues)\n    ) {\n      validateFormWithHighPriority(initialValues.current);\n    }\n  }, [validateOnMount, validateFormWithHighPriority]);\n\n  const resetForm = React.useCallback(\n    (nextState?: Partial<FormikState<Values>>) => {\n      const values =\n        nextState && nextState.values\n          ? nextState.values\n          : initialValues.current;\n      const errors =\n        nextState && nextState.errors\n          ? nextState.errors\n          : initialErrors.current\n          ? initialErrors.current\n          : props.initialErrors || {};\n      const touched =\n        nextState && nextState.touched\n          ? nextState.touched\n          : initialTouched.current\n          ? initialTouched.current\n          : props.initialTouched || {};\n      const status =\n        nextState && nextState.status\n          ? nextState.status\n          : initialStatus.current\n          ? initialStatus.current\n          : props.initialStatus;\n      initialValues.current = values;\n      initialErrors.current = errors;\n      initialTouched.current = touched;\n      initialStatus.current = status;\n\n      const dispatchFn = () => {\n        dispatch({\n          type: 'RESET_FORM',\n          payload: {\n            isSubmitting: !!nextState && !!nextState.isSubmitting,\n            errors,\n            touched,\n            status,\n            values,\n            isValidating: !!nextState && !!nextState.isValidating,\n            submitCount:\n              !!nextState &&\n              !!nextState.submitCount &&\n              typeof nextState.submitCount === 'number'\n                ? nextState.submitCount\n                : 0,\n          },\n        });\n      };\n\n      if (props.onReset) {\n        const maybePromisedOnReset = (props.onReset as any)(\n          state.values,\n          imperativeMethods\n        );\n\n        if (isPromise(maybePromisedOnReset)) {\n          (maybePromisedOnReset as Promise<any>).then(dispatchFn);\n        } else {\n          dispatchFn();\n        }\n      } else {\n        dispatchFn();\n      }\n    },\n    [props.initialErrors, props.initialStatus, props.initialTouched]\n  );\n\n  React.useEffect(() => {\n    if (\n      isMounted.current === true &&\n      !isEqual(initialValues.current, props.initialValues)\n    ) {\n      if (enableReinitialize) {\n        initialValues.current = props.initialValues;\n        resetForm();\n      }\n\n      if (validateOnMount) {\n        validateFormWithHighPriority(initialValues.current);\n      }\n    }\n  }, [\n    enableReinitialize,\n    props.initialValues,\n    resetForm,\n    validateOnMount,\n    validateFormWithHighPriority,\n  ]);\n\n  React.useEffect(() => {\n    if (\n      enableReinitialize &&\n      isMounted.current === true &&\n      !isEqual(initialErrors.current, props.initialErrors)\n    ) {\n      initialErrors.current = props.initialErrors || emptyErrors;\n      dispatch({\n        type: 'SET_ERRORS',\n        payload: props.initialErrors || emptyErrors,\n      });\n    }\n  }, [enableReinitialize, props.initialErrors]);\n\n  React.useEffect(() => {\n    if (\n      enableReinitialize &&\n      isMounted.current === true &&\n      !isEqual(initialTouched.current, props.initialTouched)\n    ) {\n      initialTouched.current = props.initialTouched || emptyTouched;\n      dispatch({\n        type: 'SET_TOUCHED',\n        payload: props.initialTouched || emptyTouched,\n      });\n    }\n  }, [enableReinitialize, props.initialTouched]);\n\n  React.useEffect(() => {\n    if (\n      enableReinitialize &&\n      isMounted.current === true &&\n      !isEqual(initialStatus.current, props.initialStatus)\n    ) {\n      initialStatus.current = props.initialStatus;\n      dispatch({\n        type: 'SET_STATUS',\n        payload: props.initialStatus,\n      });\n    }\n  }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n  const validateField = useEventCallback((name: string) => {\n    // This will efficiently validate a single field by avoiding state\n    // changes if the validation function is synchronous. It's different from\n    // what is called when using validateForm.\n\n    if (\n      fieldRegistry.current[name] &&\n      isFunction(fieldRegistry.current[name].validate)\n    ) {\n      const value = getIn(state.values, name);\n      const maybePromise = fieldRegistry.current[name].validate(value);\n      if (isPromise(maybePromise)) {\n        // Only flip isValidating if the function is async.\n        dispatch({ type: 'SET_ISVALIDATING', payload: true });\n        return maybePromise\n          .then((x: any) => x)\n          .then((error: string) => {\n            dispatch({\n              type: 'SET_FIELD_ERROR',\n              payload: { field: name, value: error },\n            });\n            dispatch({ type: 'SET_ISVALIDATING', payload: false });\n          });\n      } else {\n        dispatch({\n          type: 'SET_FIELD_ERROR',\n          payload: {\n            field: name,\n            value: maybePromise as string | undefined,\n          },\n        });\n        return Promise.resolve(maybePromise as string | undefined);\n      }\n    } else if (props.validationSchema) {\n      dispatch({ type: 'SET_ISVALIDATING', payload: true });\n      return runValidationSchema(state.values, name)\n        .then((x: any) => x)\n        .then((error: any) => {\n          dispatch({\n            type: 'SET_FIELD_ERROR',\n            payload: { field: name, value: error[name] },\n          });\n          dispatch({ type: 'SET_ISVALIDATING', payload: false });\n        });\n    }\n\n    return Promise.resolve();\n  });\n\n  const registerField = React.useCallback((name: string, { validate }: any) => {\n    fieldRegistry.current[name] = {\n      validate,\n    };\n  }, []);\n\n  const unregisterField = React.useCallback((name: string) => {\n    delete fieldRegistry.current[name];\n  }, []);\n\n  const setTouched = useEventCallback(\n    (touched: FormikTouched<Values>, shouldValidate?: boolean) => {\n      dispatch({ type: 'SET_TOUCHED', payload: touched });\n      const willValidate =\n        shouldValidate === undefined ? validateOnBlur : shouldValidate;\n      return willValidate\n        ? validateFormWithHighPriority(state.values)\n        : Promise.resolve();\n    }\n  );\n\n  const setErrors = React.useCallback((errors: FormikErrors<Values>) => {\n    dispatch({ type: 'SET_ERRORS', payload: errors });\n  }, []);\n\n  const setValues = useEventCallback(\n    (values: React.SetStateAction<Values>, shouldValidate?: boolean) => {\n      const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n      dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n      const willValidate =\n        shouldValidate === undefined ? validateOnChange : shouldValidate;\n      return willValidate\n        ? validateFormWithHighPriority(resolvedValues)\n        : Promise.resolve();\n    }\n  );\n\n  const setFieldError = React.useCallback(\n    (field: string, value: string | undefined) => {\n      dispatch({\n        type: 'SET_FIELD_ERROR',\n        payload: { field, value },\n      });\n    },\n    []\n  );\n\n  const setFieldValue = useEventCallback(\n    (field: string, value: any, shouldValidate?: boolean) => {\n      dispatch({\n        type: 'SET_FIELD_VALUE',\n        payload: {\n          field,\n          value,\n        },\n      });\n      const willValidate =\n        shouldValidate === undefined ? validateOnChange : shouldValidate;\n      return willValidate\n        ? validateFormWithHighPriority(setIn(state.values, field, value))\n        : Promise.resolve();\n    }\n  );\n\n  const executeChange = React.useCallback(\n    (eventOrTextValue: string | React.ChangeEvent<any>, maybePath?: string) => {\n      // By default, assume that the first argument is a string. This allows us to use\n      // handleChange with React Native and React Native Web's onChangeText prop which\n      // provides just the value of the input.\n      let field = maybePath;\n      let val = eventOrTextValue;\n      let parsed;\n      // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n      // so we handle like we would a normal HTML change event.\n      if (!isString(eventOrTextValue)) {\n        // If we can, persist the event\n        // @see https://reactjs.org/docs/events.html#event-pooling\n        if ((eventOrTextValue as any).persist) {\n          (eventOrTextValue as React.ChangeEvent<any>).persist();\n        }\n        const target = eventOrTextValue.target\n          ? (eventOrTextValue as React.ChangeEvent<any>).target\n          : (eventOrTextValue as React.ChangeEvent<any>).currentTarget;\n\n        const {\n          type,\n          name,\n          id,\n          value,\n          checked,\n          outerHTML,\n          options,\n          multiple,\n        } = target;\n\n        field = maybePath ? maybePath : name ? name : id;\n        if (!field && __DEV__) {\n          warnAboutMissingIdentifier({\n            htmlContent: outerHTML,\n            documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n            handlerName: 'handleChange',\n          });\n        }\n        val = /number|range/.test(type)\n          ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n          : /checkbox/.test(type) // checkboxes\n          ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n          : options && multiple // <select multiple>\n          ? getSelectedValues(options)\n          : value;\n      }\n\n      if (field) {\n        // Set form fields by name\n        setFieldValue(field, val);\n      }\n    },\n    [setFieldValue, state.values]\n  );\n\n  const handleChange = useEventCallback<FormikHandlers['handleChange']>(\n    (\n      eventOrPath: string | React.ChangeEvent<any>\n    ): void | ((eventOrTextValue: string | React.ChangeEvent<any>) => void) => {\n      if (isString(eventOrPath)) {\n        return event => executeChange(event, eventOrPath);\n      } else {\n        executeChange(eventOrPath);\n      }\n    }\n  );\n\n  const setFieldTouched = useEventCallback(\n    (field: string, touched: boolean = true, shouldValidate?: boolean) => {\n      dispatch({\n        type: 'SET_FIELD_TOUCHED',\n        payload: {\n          field,\n          value: touched,\n        },\n      });\n      const willValidate =\n        shouldValidate === undefined ? validateOnBlur : shouldValidate;\n      return willValidate\n        ? validateFormWithHighPriority(state.values)\n        : Promise.resolve();\n    }\n  );\n\n  const executeBlur = React.useCallback(\n    (e: any, path?: string) => {\n      if (e.persist) {\n        e.persist();\n      }\n      const { name, id, outerHTML } = e.target;\n      const field = path ? path : name ? name : id;\n\n      if (!field && __DEV__) {\n        warnAboutMissingIdentifier({\n          htmlContent: outerHTML,\n          documentationAnchorLink: 'handleblur-e-any--void',\n          handlerName: 'handleBlur',\n        });\n      }\n\n      setFieldTouched(field, true);\n    },\n    [setFieldTouched]\n  );\n\n  const handleBlur = useEventCallback<FormikHandlers['handleBlur']>(\n    (eventOrString: any): void | ((e: any) => void) => {\n      if (isString(eventOrString)) {\n        return event => executeBlur(event, eventOrString);\n      } else {\n        executeBlur(eventOrString);\n      }\n    }\n  );\n\n  const setFormikState = React.useCallback(\n    (\n      stateOrCb:\n        | FormikState<Values>\n        | ((state: FormikState<Values>) => FormikState<Values>)\n    ): void => {\n      if (isFunction(stateOrCb)) {\n        dispatch({ type: 'SET_FORMIK_STATE', payload: stateOrCb });\n      } else {\n        dispatch({ type: 'SET_FORMIK_STATE', payload: () => stateOrCb });\n      }\n    },\n    []\n  );\n\n  const setStatus = React.useCallback((status: any) => {\n    dispatch({ type: 'SET_STATUS', payload: status });\n  }, []);\n\n  const setSubmitting = React.useCallback((isSubmitting: boolean) => {\n    dispatch({ type: 'SET_ISSUBMITTING', payload: isSubmitting });\n  }, []);\n\n  const submitForm = useEventCallback(() => {\n    dispatch({ type: 'SUBMIT_ATTEMPT' });\n    return validateFormWithHighPriority().then(\n      (combinedErrors: FormikErrors<Values>) => {\n        // In case an error was thrown and passed to the resolved Promise,\n        // `combinedErrors` can be an instance of an Error. We need to check\n        // that and abort the submit.\n        // If we don't do that, calling `Object.keys(new Error())` yields an\n        // empty array, which causes the validation to pass and the form\n        // to be submitted.\n\n        const isInstanceOfError = combinedErrors instanceof Error;\n        const isActuallyValid =\n          !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n        if (isActuallyValid) {\n          // Proceed with submit...\n          //\n          // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n          // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n          // This would be fine in simple cases, but make it impossible to disable submit\n          // buttons where people use callbacks or promises as side effects (which is basically\n          // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n          //  so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n          // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n          // cleanup of isSubmitting on behalf of the consumer.\n          let promiseOrUndefined;\n          try {\n            promiseOrUndefined = executeSubmit();\n            // Bail if it's sync, consumer is responsible for cleaning up\n            // via setSubmitting(false)\n            if (promiseOrUndefined === undefined) {\n              return;\n            }\n          } catch (error) {\n            throw error;\n          }\n\n          return Promise.resolve(promiseOrUndefined)\n            .then(result => {\n              if (!!isMounted.current) {\n                dispatch({ type: 'SUBMIT_SUCCESS' });\n              }\n              return result;\n            })\n            .catch(_errors => {\n              if (!!isMounted.current) {\n                dispatch({ type: 'SUBMIT_FAILURE' });\n                // This is a legit error rejected by the onSubmit fn\n                // so we don't want to break the promise chain\n                throw _errors;\n              }\n            });\n        } else if (!!isMounted.current) {\n          // ^^^ Make sure Formik is still mounted before updating state\n          dispatch({ type: 'SUBMIT_FAILURE' });\n          // throw combinedErrors;\n          if (isInstanceOfError) {\n            throw combinedErrors;\n          }\n        }\n        return;\n      }\n    );\n  });\n\n  const handleSubmit = useEventCallback(\n    (e?: React.FormEvent<HTMLFormElement>) => {\n      if (e && e.preventDefault && isFunction(e.preventDefault)) {\n        e.preventDefault();\n      }\n\n      if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n        e.stopPropagation();\n      }\n\n      // Warn if form submission is triggered by a <button> without a\n      // specified `type` attribute during development. This mitigates\n      // a common gotcha in forms with both reset and submit buttons,\n      // where the dev forgets to add type=\"button\" to the reset button.\n      if (__DEV__ && typeof document !== 'undefined') {\n        // Safely get the active element (works with IE)\n        const activeElement = getActiveElement();\n        if (\n          activeElement !== null &&\n          activeElement instanceof HTMLButtonElement\n        ) {\n          invariant(\n            activeElement.attributes &&\n              activeElement.attributes.getNamedItem('type'),\n            'You submitted a Formik form using a button with an unspecified `type` attribute.  Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.'\n          );\n        }\n      }\n\n      submitForm().catch(reason => {\n        console.warn(\n          `Warning: An unhandled error was caught from submitForm()`,\n          reason\n        );\n      });\n    }\n  );\n\n  const imperativeMethods: FormikHelpers<Values> = {\n    resetForm,\n    validateForm: validateFormWithHighPriority,\n    validateField,\n    setErrors,\n    setFieldError,\n    setFieldTouched,\n    setFieldValue,\n    setStatus,\n    setSubmitting,\n    setTouched,\n    setValues,\n    setFormikState,\n    submitForm,\n  };\n\n  const executeSubmit = useEventCallback(() => {\n    return onSubmit(state.values, imperativeMethods);\n  });\n\n  const handleReset = useEventCallback(e => {\n    if (e && e.preventDefault && isFunction(e.preventDefault)) {\n      e.preventDefault();\n    }\n\n    if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n      e.stopPropagation();\n    }\n\n    resetForm();\n  });\n\n  const getFieldMeta = React.useCallback(\n    (name: string): FieldMetaProps<any> => {\n      return {\n        value: getIn(state.values, name),\n        error: getIn(state.errors, name),\n        touched: !!getIn(state.touched, name),\n        initialValue: getIn(initialValues.current, name),\n        initialTouched: !!getIn(initialTouched.current, name),\n        initialError: getIn(initialErrors.current, name),\n      };\n    },\n    [state.errors, state.touched, state.values]\n  );\n\n  const getFieldHelpers = React.useCallback(\n    (name: string): FieldHelperProps<any> => {\n      return {\n        setValue: (value: any, shouldValidate?: boolean) =>\n          setFieldValue(name, value, shouldValidate),\n        setTouched: (value: boolean, shouldValidate?: boolean) =>\n          setFieldTouched(name, value, shouldValidate),\n        setError: (value: any) => setFieldError(name, value),\n      };\n    },\n    [setFieldValue, setFieldTouched, setFieldError]\n  );\n\n  const getFieldProps = React.useCallback(\n    (nameOrOptions): FieldInputProps<any> => {\n      const isAnObject = isObject(nameOrOptions);\n      const name = isAnObject ? nameOrOptions.name : nameOrOptions;\n      const valueState = getIn(state.values, name);\n\n      const field: FieldInputProps<any> = {\n        name,\n        value: valueState,\n        onChange: handleChange,\n        onBlur: handleBlur,\n      };\n      if (isAnObject) {\n        const {\n          type,\n          value: valueProp, // value is special for checkboxes\n          as: is,\n          multiple,\n        } = nameOrOptions;\n\n        if (type === 'checkbox') {\n          if (valueProp === undefined) {\n            field.checked = !!valueState;\n          } else {\n            field.checked = !!(\n              Array.isArray(valueState) && ~valueState.indexOf(valueProp)\n            );\n            field.value = valueProp;\n          }\n        } else if (type === 'radio') {\n          field.checked = valueState === valueProp;\n          field.value = valueProp;\n        } else if (is === 'select' && multiple) {\n          field.value = field.value || [];\n          field.multiple = true;\n        }\n      }\n      return field;\n    },\n    [handleBlur, handleChange, state.values]\n  );\n\n  const dirty = React.useMemo(\n    () => !isEqual(initialValues.current, state.values),\n    [initialValues.current, state.values]\n  );\n\n  const isValid = React.useMemo(\n    () =>\n      typeof isInitialValid !== 'undefined'\n        ? dirty\n          ? state.errors && Object.keys(state.errors).length === 0\n          : isInitialValid !== false && isFunction(isInitialValid)\n          ? (isInitialValid as (props: FormikConfig<Values>) => boolean)(props)\n          : (isInitialValid as boolean)\n        : state.errors && Object.keys(state.errors).length === 0,\n    [isInitialValid, dirty, state.errors, props]\n  );\n\n  const ctx = {\n    ...state,\n    initialValues: initialValues.current,\n    initialErrors: initialErrors.current,\n    initialTouched: initialTouched.current,\n    initialStatus: initialStatus.current,\n    handleBlur,\n    handleChange,\n    handleReset,\n    handleSubmit,\n    resetForm,\n    setErrors,\n    setFormikState,\n    setFieldTouched,\n    setFieldValue,\n    setFieldError,\n    setStatus,\n    setSubmitting,\n    setTouched,\n    setValues,\n    submitForm,\n    validateForm: validateFormWithHighPriority,\n    validateField,\n    isValid,\n    dirty,\n    unregisterField,\n    registerField,\n    getFieldProps,\n    getFieldMeta,\n    getFieldHelpers,\n    validateOnBlur,\n    validateOnChange,\n    validateOnMount,\n  };\n\n  return ctx;\n}\n\nexport function Formik<\n  Values extends FormikValues = FormikValues,\n  ExtraProps = {}\n>(props: FormikConfig<Values> & ExtraProps) {\n  const formikbag = useFormik<Values>(props);\n  const { component, children, render, innerRef } = props;\n\n  // This allows folks to pass a ref to <Formik />\n  React.useImperativeHandle(innerRef, () => formikbag);\n\n  if (__DEV__) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useEffect(() => {\n      invariant(\n        !props.render,\n        `<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>`\n      );\n      // eslint-disable-next-line\n    }, []);\n  }\n  return (\n    <FormikProvider value={formikbag}>\n      {component\n        ? React.createElement(component as any, formikbag)\n        : render\n        ? render(formikbag)\n        : children // children come last, always called\n        ? isFunction(children)\n          ? (children as (bag: FormikProps<Values>) => React.ReactNode)(\n              formikbag as FormikProps<Values>\n            )\n          : !isEmptyChildren(children)\n          ? React.Children.only(children)\n          : null\n        : null}\n    </FormikProvider>\n  );\n}\n\nfunction warnAboutMissingIdentifier({\n  htmlContent,\n  documentationAnchorLink,\n  handlerName,\n}: {\n  htmlContent: string;\n  documentationAnchorLink: string;\n  handlerName: string;\n}) {\n  console.warn(\n    `Warning: Formik called \\`${handlerName}\\`, but you forgot to pass an \\`id\\` or \\`name\\` attribute to your input:\n    ${htmlContent}\n    Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#${documentationAnchorLink}\n  `\n  );\n}\n\n/**\n * Transform Yup ValidationError to a more usable object\n */\nexport function yupToFormErrors<Values>(yupError: any): FormikErrors<Values> {\n  let errors: FormikErrors<Values> = {};\n  if (yupError.inner) {\n    if (yupError.inner.length === 0) {\n      return setIn(errors, yupError.path, yupError.message);\n    }\n    for (let err of yupError.inner) {\n      if (!getIn(errors, err.path)) {\n        errors = setIn(errors, err.path, err.message);\n      }\n    }\n  }\n  return errors;\n}\n\n/**\n * Validate a yup schema.\n */\nexport function validateYupSchema<T extends FormikValues>(\n  values: T,\n  schema: any,\n  sync: boolean = false,\n  context: any = {}\n): Promise<Partial<T>> {\n  const validateData: FormikValues = prepareDataForValidation(values);\n  return schema[sync ? 'validateSync' : 'validate'](validateData, {\n    abortEarly: false,\n    context: context,\n  });\n}\n\n/**\n * Recursively prepare values.\n */\nexport function prepareDataForValidation<T extends FormikValues>(\n  values: T\n): FormikValues {\n  let data: FormikValues = Array.isArray(values) ? [] : {};\n  for (let k in values) {\n    if (Object.prototype.hasOwnProperty.call(values, k)) {\n      const key = String(k);\n      if (Array.isArray(values[key]) === true) {\n        data[key] = values[key].map((value: any) => {\n          if (Array.isArray(value) === true || isPlainObject(value)) {\n            return prepareDataForValidation(value);\n          } else {\n            return value !== '' ? value : undefined;\n          }\n        });\n      } else if (isPlainObject(values[key])) {\n        data[key] = prepareDataForValidation(values[key]);\n      } else {\n        data[key] = values[key] !== '' ? values[key] : undefined;\n      }\n    }\n  }\n  return data;\n}\n\n/**\n * deepmerge array merging algorithm\n * https://github.com/KyleAMathews/deepmerge#combine-array\n */\nfunction arrayMerge(target: any[], source: any[], options: any): any[] {\n  const destination = target.slice();\n\n  source.forEach(function merge(e: any, i: number) {\n    if (typeof destination[i] === 'undefined') {\n      const cloneRequested = options.clone !== false;\n      const shouldClone = cloneRequested && options.isMergeableObject(e);\n      destination[i] = shouldClone\n        ? deepmerge(Array.isArray(e) ? [] : {}, e, options)\n        : e;\n    } else if (options.isMergeableObject(e)) {\n      destination[i] = deepmerge(target[i], e, options);\n    } else if (target.indexOf(e) === -1) {\n      destination.push(e);\n    }\n  });\n  return destination;\n}\n\n/** Return multi select values based on an array of options */\nfunction getSelectedValues(options: any[]) {\n  return Array.from(options)\n    .filter(el => el.selected)\n    .map(el => el.value);\n}\n\n/** Return the next value for a checkbox */\nfunction getValueForCheckbox(\n  currentValue: string | any[],\n  checked: boolean,\n  valueProp: any\n) {\n  // If the current value was a boolean, return a boolean\n  if (typeof currentValue === 'boolean') {\n    return Boolean(checked);\n  }\n\n  // If the currentValue was not a boolean we want to return an array\n  let currentArrayOfValues = [];\n  let isValueInArray = false;\n  let index = -1;\n\n  if (!Array.isArray(currentValue)) {\n    // eslint-disable-next-line eqeqeq\n    if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n      return Boolean(checked);\n    }\n  } else {\n    // If the current value is already an array, use it\n    currentArrayOfValues = currentValue;\n    index = currentValue.indexOf(valueProp);\n    isValueInArray = index >= 0;\n  }\n\n  // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n  if (checked && valueProp && !isValueInArray) {\n    return currentArrayOfValues.concat(valueProp);\n  }\n\n  // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n  if (!isValueInArray) {\n    return currentArrayOfValues;\n  }\n\n  // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n  return currentArrayOfValues\n    .slice(0, index)\n    .concat(currentArrayOfValues.slice(index + 1));\n}\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useIsomorphicLayoutEffect =\n  typeof window !== 'undefined' &&\n  typeof window.document !== 'undefined' &&\n  typeof window.document.createElement !== 'undefined'\n    ? React.useLayoutEffect\n    : React.useEffect;\n\nfunction useEventCallback<T extends (...args: any[]) => any>(fn: T): T {\n  const ref: any = React.useRef(fn);\n\n  // we copy a ref to the callback scoped to the current state/props on each render\n  useIsomorphicLayoutEffect(() => {\n    ref.current = fn;\n  });\n\n  return React.useCallback(\n    (...args: any[]) => ref.current.apply(void 0, args),\n    []\n  ) as T;\n}\n","import * as React from 'react';\nimport { useFormikContext } from './FormikContext';\n\nexport type FormikFormProps = Pick<\n  React.FormHTMLAttributes<HTMLFormElement>,\n  Exclude<\n    keyof React.FormHTMLAttributes<HTMLFormElement>,\n    'onReset' | 'onSubmit'\n  >\n>;\n\ntype FormProps = React.ComponentPropsWithoutRef<'form'>;\n\n// @todo tests\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n  (props: FormikFormProps, ref) => {\n    // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n    // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n    const { action, ...rest } = props;\n    const _action = action ?? '#';\n    const { handleReset, handleSubmit } = useFormikContext();\n    return (\n      <form\n        onSubmit={handleSubmit}\n        ref={ref}\n        onReset={handleReset}\n        action={_action}\n        {...rest}\n      />\n    );\n  }\n);\n\nForm.displayName = 'Form';\n","import * as React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { connect } from './connect';\nimport {\n  FormikContextType,\n  FormikState,\n  SharedRenderProps,\n  FormikProps,\n} from './types';\nimport {\n  getIn,\n  isEmptyChildren,\n  isFunction,\n  setIn,\n  isEmptyArray,\n} from './utils';\nimport isEqual from 'react-fast-compare';\n\nexport type FieldArrayRenderProps = ArrayHelpers & {\n  form: FormikProps<any>;\n  name: string;\n};\n\nexport type FieldArrayConfig = {\n  /** Really the path to the array field to be updated */\n  name: string;\n  /** Should field array validate the form AFTER array updates/changes? */\n  validateOnChange?: boolean;\n} & SharedRenderProps<FieldArrayRenderProps>;\nexport interface ArrayHelpers {\n  /** Imperatively add a value to the end of an array */\n  push: (obj: any) => void;\n  /** Curried fn to add a value to the end of an array */\n  handlePush: (obj: any) => () => void;\n  /** Imperatively swap two values in an array */\n  swap: (indexA: number, indexB: number) => void;\n  /** Curried fn to swap two values in an array */\n  handleSwap: (indexA: number, indexB: number) => () => void;\n  /** Imperatively move an element in an array to another index */\n  move: (from: number, to: number) => void;\n  /** Imperatively move an element in an array to another index */\n  handleMove: (from: number, to: number) => () => void;\n  /** Imperatively insert an element at a given index into the array */\n  insert: (index: number, value: any) => void;\n  /** Curried fn to insert an element at a given index into the array */\n  handleInsert: (index: number, value: any) => () => void;\n  /** Imperatively replace a value at an index of an array  */\n  replace: (index: number, value: any) => void;\n  /** Curried fn to replace an element at a given index into the array */\n  handleReplace: (index: number, value: any) => () => void;\n  /** Imperatively add an element to the beginning of an array and return its length */\n  unshift: (value: any) => number;\n  /** Curried fn to add an element to the beginning of an array */\n  handleUnshift: (value: any) => () => void;\n  /** Curried fn to remove an element at an index of an array */\n  handleRemove: (index: number) => () => void;\n  /** Curried fn to remove a value from the end of the array */\n  handlePop: () => () => void;\n  /** Imperatively remove and element at an index of an array */\n  remove<T>(index: number): T | undefined;\n  /** Imperatively remove and return value from the end of the array */\n  pop<T>(): T | undefined;\n}\n\n/**\n * Some array helpers!\n */\nexport const move = (array: any[], from: number, to: number) => {\n  const copy = copyArrayLike(array);\n  const value = copy[from];\n  copy.splice(from, 1);\n  copy.splice(to, 0, value);\n  return copy;\n};\n\nexport const swap = (\n  arrayLike: ArrayLike<any>,\n  indexA: number,\n  indexB: number\n) => {\n  const copy = copyArrayLike(arrayLike);\n  const a = copy[indexA];\n  copy[indexA] = copy[indexB];\n  copy[indexB] = a;\n  return copy;\n};\n\nexport const insert = (\n  arrayLike: ArrayLike<any>,\n  index: number,\n  value: any\n) => {\n  const copy = copyArrayLike(arrayLike);\n  copy.splice(index, 0, value);\n  return copy;\n};\n\nexport const replace = (\n  arrayLike: ArrayLike<any>,\n  index: number,\n  value: any\n) => {\n  const copy = copyArrayLike(arrayLike);\n  copy[index] = value;\n  return copy;\n};\n\nconst copyArrayLike = (arrayLike: ArrayLike<any>) => {\n  if (!arrayLike) {\n    return [];\n  } else if (Array.isArray(arrayLike)) {\n    return [...arrayLike];\n  } else {\n    const maxIndex = Object.keys(arrayLike)\n      .map(key => parseInt(key))\n      .reduce((max, el) => (el > max ? el : max), 0);\n    return Array.from({ ...arrayLike, length: maxIndex + 1 });\n  }\n};\n\nclass FieldArrayInner<Values = {}> extends React.Component<\n  FieldArrayConfig & { formik: FormikContextType<Values> },\n  {}\n> {\n  static defaultProps = {\n    validateOnChange: true,\n  };\n\n  constructor(props: FieldArrayConfig & { formik: FormikContextType<Values> }) {\n    super(props);\n    // We need TypeScript generics on these, so we'll bind them in the constructor\n    // @todo Fix TS 3.2.1\n    this.remove = this.remove.bind(this) as any;\n    this.pop = this.pop.bind(this) as any;\n  }\n\n  componentDidUpdate(\n    prevProps: FieldArrayConfig & { formik: FormikContextType<Values> }\n  ) {\n    if (\n      this.props.validateOnChange &&\n      this.props.formik.validateOnChange &&\n      !isEqual(\n        getIn(prevProps.formik.values, prevProps.name),\n        getIn(this.props.formik.values, this.props.name)\n      )\n    ) {\n      this.props.formik.validateForm(this.props.formik.values);\n    }\n  }\n\n  updateArrayField = (\n    fn: Function,\n    alterTouched: boolean | Function,\n    alterErrors: boolean | Function\n  ) => {\n    const {\n      name,\n\n      formik: { setFormikState },\n    } = this.props;\n    setFormikState((prevState: FormikState<any>) => {\n      let updateErrors = typeof alterErrors === 'function' ? alterErrors : fn;\n      let updateTouched =\n        typeof alterTouched === 'function' ? alterTouched : fn;\n\n      // values fn should be executed before updateErrors and updateTouched,\n      // otherwise it causes an error with unshift.\n      let values = setIn(\n        prevState.values,\n        name,\n        fn(getIn(prevState.values, name))\n      );\n\n      let fieldError = alterErrors\n        ? updateErrors(getIn(prevState.errors, name))\n        : undefined;\n      let fieldTouched = alterTouched\n        ? updateTouched(getIn(prevState.touched, name))\n        : undefined;\n\n      if (isEmptyArray(fieldError)) {\n        fieldError = undefined;\n      }\n      if (isEmptyArray(fieldTouched)) {\n        fieldTouched = undefined;\n      }\n\n      return {\n        ...prevState,\n        values,\n        errors: alterErrors\n          ? setIn(prevState.errors, name, fieldError)\n          : prevState.errors,\n        touched: alterTouched\n          ? setIn(prevState.touched, name, fieldTouched)\n          : prevState.touched,\n      };\n    });\n  };\n\n  push = (value: any) =>\n    this.updateArrayField(\n      (arrayLike: ArrayLike<any>) => [\n        ...copyArrayLike(arrayLike),\n        cloneDeep(value),\n      ],\n      false,\n      false\n    );\n\n  handlePush = (value: any) => () => this.push(value);\n\n  swap = (indexA: number, indexB: number) =>\n    this.updateArrayField(\n      (array: any[]) => swap(array, indexA, indexB),\n      true,\n      true\n    );\n\n  handleSwap = (indexA: number, indexB: number) => () =>\n    this.swap(indexA, indexB);\n\n  move = (from: number, to: number) =>\n    this.updateArrayField((array: any[]) => move(array, from, to), true, true);\n\n  handleMove = (from: number, to: number) => () => this.move(from, to);\n\n  insert = (index: number, value: any) =>\n    this.updateArrayField(\n      (array: any[]) => insert(array, index, value),\n      (array: any[]) => insert(array, index, null),\n      (array: any[]) => insert(array, index, null)\n    );\n\n  handleInsert = (index: number, value: any) => () => this.insert(index, value);\n\n  replace = (index: number, value: any) =>\n    this.updateArrayField(\n      (array: any[]) => replace(array, index, value),\n      false,\n      false\n    );\n\n  handleReplace = (index: number, value: any) => () =>\n    this.replace(index, value);\n\n  unshift = (value: any) => {\n    let length = -1;\n    this.updateArrayField(\n      (array: any[]) => {\n        const arr = array ? [value, ...array] : [value];\n        if (length < 0) {\n          length = arr.length;\n        }\n        return arr;\n      },\n      (array: any[]) => {\n        const arr = array ? [null, ...array] : [null];\n        if (length < 0) {\n          length = arr.length;\n        }\n        return arr;\n      },\n      (array: any[]) => {\n        const arr = array ? [null, ...array] : [null];\n        if (length < 0) {\n          length = arr.length;\n        }\n        return arr;\n      }\n    );\n    return length;\n  };\n\n  handleUnshift = (value: any) => () => this.unshift(value);\n\n  remove<T>(index: number): T {\n    // We need to make sure we also remove relevant pieces of `touched` and `errors`\n    let result: any;\n    this.updateArrayField(\n      // so this gets call 3 times\n      (array?: any[]) => {\n        const copy = array ? copyArrayLike(array) : [];\n        if (!result) {\n          result = copy[index];\n        }\n        if (isFunction(copy.splice)) {\n          copy.splice(index, 1);\n        }\n        return copy;\n      },\n      true,\n      true\n    );\n\n    return result as T;\n  }\n\n  handleRemove = (index: number) => () => this.remove<any>(index);\n\n  pop<T>(): T {\n    // Remove relevant pieces of `touched` and `errors` too!\n    let result: any;\n    this.updateArrayField(\n      // so this gets call 3 times\n      (array: any[]) => {\n        const tmp = array;\n        if (!result) {\n          result = tmp && tmp.pop && tmp.pop();\n        }\n        return tmp;\n      },\n      true,\n      true\n    );\n\n    return result as T;\n  }\n\n  handlePop = () => () => this.pop<any>();\n\n  render() {\n    const arrayHelpers: ArrayHelpers = {\n      push: this.push,\n      pop: this.pop,\n      swap: this.swap,\n      move: this.move,\n      insert: this.insert,\n      replace: this.replace,\n      unshift: this.unshift,\n      remove: this.remove,\n      handlePush: this.handlePush,\n      handlePop: this.handlePop,\n      handleSwap: this.handleSwap,\n      handleMove: this.handleMove,\n      handleInsert: this.handleInsert,\n      handleReplace: this.handleReplace,\n      handleUnshift: this.handleUnshift,\n      handleRemove: this.handleRemove,\n    };\n\n    const {\n      component,\n      render,\n      children,\n      name,\n      formik: {\n        validate: _validate,\n        validationSchema: _validationSchema,\n        ...restOfFormik\n      },\n    } = this.props;\n\n    const props: FieldArrayRenderProps = {\n      ...arrayHelpers,\n      form: restOfFormik,\n      name,\n    };\n\n    return component\n      ? React.createElement(component as any, props)\n      : render\n      ? (render as any)(props)\n      : children // children come last, always called\n      ? typeof children === 'function'\n        ? (children as any)(props)\n        : !isEmptyChildren(children)\n        ? React.Children.only(children)\n        : null\n      : null;\n  }\n}\n\nexport const FieldArray = connect<FieldArrayConfig, any>(FieldArrayInner);\n","// ES6 Map\nvar map\ntry {\n  map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n  set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n  // Null/undefined/functions/etc\n  if (!src || typeof src !== 'object' || typeof src === 'function') {\n    return src\n  }\n\n  // DOM Node\n  if (src.nodeType && 'cloneNode' in src) {\n    return src.cloneNode(true)\n  }\n\n  // Date\n  if (src instanceof Date) {\n    return new Date(src.getTime())\n  }\n\n  // RegExp\n  if (src instanceof RegExp) {\n    return new RegExp(src)\n  }\n\n  // Arrays\n  if (Array.isArray(src)) {\n    return src.map(clone)\n  }\n\n  // ES6 Maps\n  if (map && src instanceof map) {\n    return new Map(Array.from(src.entries()))\n  }\n\n  // ES6 Sets\n  if (set && src instanceof set) {\n    return new Set(Array.from(src.values()))\n  }\n\n  // Object\n  if (src instanceof Object) {\n    circulars.push(src)\n    var obj = Object.create(src)\n    clones.push(obj)\n    for (var key in src) {\n      var idx = circulars.findIndex(function (i) {\n        return i === src[key]\n      })\n      obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n    }\n    return obj\n  }\n\n  // ???\n  return src\n}\n\nexport default function clone (src) {\n  return baseClone(src, [], [])\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport { getIn, isFunction } from './utils';\nimport { connect } from './connect';\n\nexport interface ErrorMessageProps {\n  name: string;\n  className?: string;\n  component?: string | React.ComponentType;\n  children?: (errorMessage: string) => React.ReactNode;\n  render?: (errorMessage: string) => React.ReactNode;\n}\n\nclass ErrorMessageImpl extends React.Component<\n  ErrorMessageProps & { formik: FormikContextType<any> }\n> {\n  shouldComponentUpdate(\n    props: ErrorMessageProps & { formik: FormikContextType<any> }\n  ) {\n    if (\n      getIn(this.props.formik.errors, this.props.name) !==\n        getIn(props.formik.errors, this.props.name) ||\n      getIn(this.props.formik.touched, this.props.name) !==\n        getIn(props.formik.touched, this.props.name) ||\n      Object.keys(this.props).length !== Object.keys(props).length\n    ) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  render() {\n    let { component, formik, render, children, name, ...rest } = this.props;\n\n    const touch = getIn(formik.touched, name);\n    const error = getIn(formik.errors, name);\n\n    return !!touch && !!error\n      ? render\n        ? isFunction(render)\n          ? render(error)\n          : null\n        : children\n        ? isFunction(children)\n          ? children(error)\n          : null\n        : component\n        ? React.createElement(component, rest as any, error)\n        : error\n      : null;\n  }\n}\n\nexport const ErrorMessage = connect<\n  ErrorMessageProps,\n  ErrorMessageProps & { formik: FormikContextType<any> }\n>(ErrorMessageImpl);\n","import * as React from 'react';\n\nimport {\n  FormikProps,\n  GenericFieldHTMLAttributes,\n  FormikContextType,\n  FieldMetaProps,\n  FieldInputProps,\n} from './types';\nimport invariant from 'tiny-warning';\nimport { getIn, isEmptyChildren, isFunction } from './utils';\nimport { FieldConfig } from './Field';\nimport { connect } from './connect';\n\ntype $FixMe = any;\n\nexport interface FastFieldProps<V = any> {\n  field: FieldInputProps<V>;\n  meta: FieldMetaProps<V>;\n  form: FormikProps<V>; // if ppl want to restrict this for a given form, let them.\n}\n\nexport type FastFieldConfig<T> = FieldConfig & {\n  /** Override FastField's default shouldComponentUpdate */\n  shouldUpdate?: (\n    nextProps: T & GenericFieldHTMLAttributes,\n    props: {}\n  ) => boolean;\n};\n\nexport type FastFieldAttributes<T> = GenericFieldHTMLAttributes &\n  FastFieldConfig<T> &\n  T;\n\ntype FastFieldInnerProps<Values = {}, Props = {}> = FastFieldAttributes<\n  Props\n> & { formik: FormikContextType<Values> };\n\n/**\n * Custom Field component for quickly hooking into Formik\n * context and wiring up forms.\n */\nclass FastFieldInner<Values = {}, Props = {}> extends React.Component<\n  FastFieldInnerProps<Values, Props>,\n  {}\n> {\n  constructor(props: FastFieldInnerProps<Values, Props>) {\n    super(props);\n    const { render, children, component, as: is, name } = props;\n    invariant(\n      !render,\n      `<FastField render> has been deprecated. Please use a child callback function instead: <FastField name={${name}}>{props => ...}</FastField> instead.`\n    );\n    invariant(\n      !(component && render),\n      'You should not use <FastField component> and <FastField render> in the same <FastField> component; <FastField component> will be ignored'\n    );\n\n    invariant(\n      !(is && children && isFunction(children)),\n      'You should not use <FastField as> and <FastField children> as a function in the same <FastField> component; <FastField as> will be ignored.'\n    );\n\n    invariant(\n      !(component && children && isFunction(children)),\n      'You should not use <FastField component> and <FastField children> as a function in the same <FastField> component; <FastField component> will be ignored.'\n    );\n\n    invariant(\n      !(render && children && !isEmptyChildren(children)),\n      'You should not use <FastField render> and <FastField children> in the same <FastField> component; <FastField children> will be ignored'\n    );\n  }\n\n  shouldComponentUpdate(props: FastFieldInnerProps<Values, Props>) {\n    if (this.props.shouldUpdate) {\n      return this.props.shouldUpdate(props, this.props);\n    } else if (\n      props.name !== this.props.name ||\n      getIn(props.formik.values, this.props.name) !==\n        getIn(this.props.formik.values, this.props.name) ||\n      getIn(props.formik.errors, this.props.name) !==\n        getIn(this.props.formik.errors, this.props.name) ||\n      getIn(props.formik.touched, this.props.name) !==\n        getIn(this.props.formik.touched, this.props.name) ||\n      Object.keys(this.props).length !== Object.keys(props).length ||\n      props.formik.isSubmitting !== this.props.formik.isSubmitting\n    ) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  componentDidMount() {\n    // Register the Field with the parent Formik. Parent will cycle through\n    // registered Field's validate fns right prior to submit\n    this.props.formik.registerField(this.props.name, {\n      validate: this.props.validate,\n    });\n  }\n\n  componentDidUpdate(prevProps: FastFieldAttributes<Props>) {\n    if (this.props.name !== prevProps.name) {\n      this.props.formik.unregisterField(prevProps.name);\n      this.props.formik.registerField(this.props.name, {\n        validate: this.props.validate,\n      });\n    }\n\n    if (this.props.validate !== prevProps.validate) {\n      this.props.formik.registerField(this.props.name, {\n        validate: this.props.validate,\n      });\n    }\n  }\n\n  componentWillUnmount() {\n    this.props.formik.unregisterField(this.props.name);\n  }\n\n  render() {\n    const {\n      validate,\n      name,\n      render,\n      as: is,\n      children,\n      component,\n      shouldUpdate,\n      formik,\n      ...props\n    } = this.props as FastFieldInnerProps<Values, Props>;\n\n    const {\n      validate: _validate,\n      validationSchema: _validationSchema,\n      ...restOfFormik\n    } = formik;\n    const field = formik.getFieldProps({ name, ...props });\n    const meta = {\n      value: getIn(formik.values, name),\n      error: getIn(formik.errors, name),\n      touched: !!getIn(formik.touched, name),\n      initialValue: getIn(formik.initialValues, name),\n      initialTouched: !!getIn(formik.initialTouched, name),\n      initialError: getIn(formik.initialErrors, name),\n    };\n\n    const bag = { field, meta, form: restOfFormik };\n\n    if (render) {\n      return (render as any)(bag);\n    }\n\n    if (isFunction(children)) {\n      return (children as (props: FastFieldProps<any>) => React.ReactNode)(bag);\n    }\n\n    if (component) {\n      // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n      if (typeof component === 'string') {\n        const { innerRef, ...rest } = props;\n        return React.createElement(\n          component,\n          { ref: innerRef, ...field, ...(rest as $FixMe) },\n          children\n        );\n      }\n      // We don't pass `meta` for backwards compat\n      return React.createElement(\n        component as React.ComponentClass<$FixMe>,\n        { field, form: formik, ...props },\n        children\n      );\n    }\n\n    // default to input here so we can check for both `as` and `children` above\n    const asElement = is || 'input';\n\n    if (typeof asElement === 'string') {\n      const { innerRef, ...rest } = props;\n      return React.createElement(\n        asElement,\n        { ref: innerRef, ...field, ...(rest as $FixMe) },\n        children\n      );\n    }\n\n    return React.createElement(\n      asElement as React.ComponentClass,\n      { ...field, ...props },\n      children\n    );\n  }\n}\n\nexport const FastField = connect<FastFieldAttributes<any>, any>(FastFieldInner);\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n  if (val != +val) return 'NaN';\n  const isNegativeZero = val === 0 && 1 / val < 0;\n  return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n  if (val == null || val === true || val === false) return '' + val;\n  const typeOf = typeof val;\n  if (typeOf === 'number') return printNumber(val);\n  if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n  if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n  if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n  const tag = toString.call(val).slice(8, -1);\n  if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n  if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n  if (tag === 'RegExp') return regExpToString.call(val);\n  return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n  let result = printSimpleValue(value, quoteStrings);\n  if (result !== null) return result;\n  return JSON.stringify(value, function (key, value) {\n    let result = printSimpleValue(this[key], quoteStrings);\n    if (result !== null) return result;\n    return value;\n  }, 2);\n}","import printValue from './util/printValue';\nexport let mixed = {\n  default: '${path} is invalid',\n  required: '${path} is a required field',\n  oneOf: '${path} must be one of the following values: ${values}',\n  notOneOf: '${path} must not be one of the following values: ${values}',\n  notType: ({\n    path,\n    type,\n    value,\n    originalValue\n  }) => {\n    let isCast = originalValue != null && originalValue !== value;\n    let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n    if (value === null) {\n      msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n    }\n\n    return msg;\n  },\n  defined: '${path} must be defined'\n};\nexport let string = {\n  length: '${path} must be exactly ${length} characters',\n  min: '${path} must be at least ${min} characters',\n  max: '${path} must be at most ${max} characters',\n  matches: '${path} must match the following: \"${regex}\"',\n  email: '${path} must be a valid email',\n  url: '${path} must be a valid URL',\n  uuid: '${path} must be a valid UUID',\n  trim: '${path} must be a trimmed string',\n  lowercase: '${path} must be a lowercase string',\n  uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n  min: '${path} must be greater than or equal to ${min}',\n  max: '${path} must be less than or equal to ${max}',\n  lessThan: '${path} must be less than ${less}',\n  moreThan: '${path} must be greater than ${more}',\n  positive: '${path} must be a positive number',\n  negative: '${path} must be a negative number',\n  integer: '${path} must be an integer'\n};\nexport let date = {\n  min: '${path} field must be later than ${min}',\n  max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n  isValue: '${path} field must be ${value}'\n};\nexport let object = {\n  noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n  min: '${path} field must have at least ${min} items',\n  max: '${path} field must have less than or equal to ${max} items',\n  length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n  mixed,\n  string,\n  number,\n  date,\n  object,\n  array,\n  boolean\n});","const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n  constructor(refs, options) {\n    this.fn = void 0;\n    this.refs = refs;\n    this.refs = refs;\n\n    if (typeof options === 'function') {\n      this.fn = options;\n      return;\n    }\n\n    if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n    if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n    let {\n      is,\n      then,\n      otherwise\n    } = options;\n    let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n    this.fn = function (...args) {\n      let options = args.pop();\n      let schema = args.pop();\n      let branch = check(...args) ? then : otherwise;\n      if (!branch) return undefined;\n      if (typeof branch === 'function') return branch(schema);\n      return schema.concat(branch.resolve(options));\n    };\n  }\n\n  resolve(base, options) {\n    let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n    let schema = this.fn.apply(base, values.concat(base, options));\n    if (schema === undefined || schema === base) return base;\n    if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n    return schema.resolve(options);\n  }\n\n}\n\nexport default Condition;","export default function toArray(value) {\n  return value == null ? [] : [].concat(value);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n  static formatError(message, params) {\n    const path = params.label || params.path || 'this';\n    if (path !== params.path) params = _extends({}, params, {\n      path\n    });\n    if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n    if (typeof message === 'function') return message(params);\n    return message;\n  }\n\n  static isError(err) {\n    return err && err.name === 'ValidationError';\n  }\n\n  constructor(errorOrErrors, value, field, type) {\n    super();\n    this.value = void 0;\n    this.path = void 0;\n    this.type = void 0;\n    this.errors = void 0;\n    this.params = void 0;\n    this.inner = void 0;\n    this.name = 'ValidationError';\n    this.value = value;\n    this.path = field;\n    this.type = type;\n    this.errors = [];\n    this.inner = [];\n    toArray(errorOrErrors).forEach(err => {\n      if (ValidationError.isError(err)) {\n        this.errors.push(...err.errors);\n        this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n      } else {\n        this.errors.push(err);\n      }\n    });\n    this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n    if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n  }\n\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n  let fired = false;\n  return (...args) => {\n    if (fired) return;\n    fired = true;\n    cb(...args);\n  };\n};\n\nexport default function runTests(options, cb) {\n  let {\n    endEarly,\n    tests,\n    args,\n    value,\n    errors,\n    sort,\n    path\n  } = options;\n  let callback = once(cb);\n  let count = tests.length;\n  const nestedErrors = [];\n  errors = errors ? errors : [];\n  if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n  for (let i = 0; i < tests.length; i++) {\n    const test = tests[i];\n    test(args, function finishTestRun(err) {\n      if (err) {\n        // always return early for non validation errors\n        if (!ValidationError.isError(err)) {\n          return callback(err, value);\n        }\n\n        if (endEarly) {\n          err.value = value;\n          return callback(err, value);\n        }\n\n        nestedErrors.push(err);\n      }\n\n      if (--count <= 0) {\n        if (nestedErrors.length) {\n          if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n          if (errors.length) nestedErrors.push(...errors);\n          errors = nestedErrors;\n        }\n\n        if (errors.length) {\n          callback(new ValidationError(errors, value, path), value);\n          return;\n        }\n\n        callback(null, value);\n      }\n    });\n  }\n}","import { getter } from 'property-expr';\nconst prefixes = {\n  context: '$',\n  value: '.'\n};\nexport function create(key, options) {\n  return new Reference(key, options);\n}\nexport default class Reference {\n  constructor(key, options = {}) {\n    this.key = void 0;\n    this.isContext = void 0;\n    this.isValue = void 0;\n    this.isSibling = void 0;\n    this.path = void 0;\n    this.getter = void 0;\n    this.map = void 0;\n    if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n    this.key = key.trim();\n    if (key === '') throw new TypeError('ref must be a non-empty string');\n    this.isContext = this.key[0] === prefixes.context;\n    this.isValue = this.key[0] === prefixes.value;\n    this.isSibling = !this.isContext && !this.isValue;\n    let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n    this.path = this.key.slice(prefix.length);\n    this.getter = this.path && getter(this.path, true);\n    this.map = options.map;\n  }\n\n  getValue(value, parent, context) {\n    let result = this.isContext ? context : this.isValue ? value : parent;\n    if (this.getter) result = this.getter(result || {});\n    if (this.map) result = this.map(result);\n    return result;\n  }\n  /**\n   *\n   * @param {*} value\n   * @param {Object} options\n   * @param {Object=} options.context\n   * @param {Object=} options.parent\n   */\n\n\n  cast(value, options) {\n    return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n  }\n\n  resolve() {\n    return this;\n  }\n\n  describe() {\n    return {\n      type: 'ref',\n      key: this.key\n    };\n  }\n\n  toString() {\n    return `Ref(${this.key})`;\n  }\n\n  static isRef(value) {\n    return value && value.__isYupRef;\n  }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n  function validate(_ref, cb) {\n    let {\n      value,\n      path = '',\n      label,\n      options,\n      originalValue,\n      sync\n    } = _ref,\n        rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n    const {\n      name,\n      test,\n      params,\n      message\n    } = config;\n    let {\n      parent,\n      context\n    } = options;\n\n    function resolve(item) {\n      return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n    }\n\n    function createError(overrides = {}) {\n      const nextParams = mapValues(_extends({\n        value,\n        originalValue,\n        label,\n        path: overrides.path || path\n      }, params, overrides.params), resolve);\n      const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n      error.params = nextParams;\n      return error;\n    }\n\n    let ctx = _extends({\n      path,\n      parent,\n      type: name,\n      createError,\n      resolve,\n      options,\n      originalValue\n    }, rest);\n\n    if (!sync) {\n      try {\n        Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n          if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n        }).catch(cb);\n      } catch (err) {\n        cb(err);\n      }\n\n      return;\n    }\n\n    let result;\n\n    try {\n      var _ref2;\n\n      result = test.call(ctx, value, ctx);\n\n      if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n        throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n      }\n    } catch (err) {\n      cb(err);\n      return;\n    }\n\n    if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n  }\n\n  validate.OPTIONS = config;\n  return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n  let parent, lastPart, lastPartDebug; // root path: ''\n\n  if (!path) return {\n    parent,\n    parentPath: path,\n    schema\n  };\n  forEach(path, (_part, isBracket, isArray) => {\n    let part = isBracket ? trim(_part) : _part;\n    schema = schema.resolve({\n      context,\n      parent,\n      value\n    });\n\n    if (schema.innerType) {\n      let idx = isArray ? parseInt(part, 10) : 0;\n\n      if (value && idx >= value.length) {\n        throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n      }\n\n      parent = value;\n      value = value && value[idx];\n      schema = schema.innerType;\n    } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n    // in these cases the current part is the next schema and should be processed\n    // in this iteration. For cases where the index signature is included this\n    // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n    if (!isArray) {\n      if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n      parent = value;\n      value = value && value[part];\n      schema = schema.fields[part];\n    }\n\n    lastPart = part;\n    lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n  });\n  return {\n    schema,\n    parent,\n    parentPath: lastPart\n  };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n  constructor() {\n    this.list = void 0;\n    this.refs = void 0;\n    this.list = new Set();\n    this.refs = new Map();\n  }\n\n  get size() {\n    return this.list.size + this.refs.size;\n  }\n\n  describe() {\n    const description = [];\n\n    for (const item of this.list) description.push(item);\n\n    for (const [, ref] of this.refs) description.push(ref.describe());\n\n    return description;\n  }\n\n  toArray() {\n    return Array.from(this.list).concat(Array.from(this.refs.values()));\n  }\n\n  resolveAll(resolve) {\n    return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n  }\n\n  add(value) {\n    Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n  }\n\n  delete(value) {\n    Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n  }\n\n  clone() {\n    const next = new ReferenceSet();\n    next.list = new Set(this.list);\n    next.refs = new Map(this.refs);\n    return next;\n  }\n\n  merge(newItems, removeItems) {\n    const next = this.clone();\n    newItems.list.forEach(value => next.add(value));\n    newItems.refs.forEach(value => next.add(value));\n    removeItems.list.forEach(value => next.delete(value));\n    removeItems.refs.forEach(value => next.delete(value));\n    return next;\n  }\n\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n  constructor(options) {\n    this.deps = [];\n    this.tests = void 0;\n    this.transforms = void 0;\n    this.conditions = [];\n    this._mutate = void 0;\n    this._typeError = void 0;\n    this._whitelist = new ReferenceSet();\n    this._blacklist = new ReferenceSet();\n    this.exclusiveTests = Object.create(null);\n    this.spec = void 0;\n    this.tests = [];\n    this.transforms = [];\n    this.withMutation(() => {\n      this.typeError(locale.notType);\n    });\n    this.type = (options == null ? void 0 : options.type) || 'mixed';\n    this.spec = _extends({\n      strip: false,\n      strict: false,\n      abortEarly: true,\n      recursive: true,\n      nullable: false,\n      presence: 'optional'\n    }, options == null ? void 0 : options.spec);\n  } // TODO: remove\n\n\n  get _type() {\n    return this.type;\n  }\n\n  _typeCheck(_value) {\n    return true;\n  }\n\n  clone(spec) {\n    if (this._mutate) {\n      if (spec) Object.assign(this.spec, spec);\n      return this;\n    } // if the nested value is a schema we can skip cloning, since\n    // they are already immutable\n\n\n    const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n    next.type = this.type;\n    next._typeError = this._typeError;\n    next._whitelistError = this._whitelistError;\n    next._blacklistError = this._blacklistError;\n    next._whitelist = this._whitelist.clone();\n    next._blacklist = this._blacklist.clone();\n    next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n    next.deps = [...this.deps];\n    next.conditions = [...this.conditions];\n    next.tests = [...this.tests];\n    next.transforms = [...this.transforms];\n    next.spec = cloneDeep(_extends({}, this.spec, spec));\n    return next;\n  }\n\n  label(label) {\n    let next = this.clone();\n    next.spec.label = label;\n    return next;\n  }\n\n  meta(...args) {\n    if (args.length === 0) return this.spec.meta;\n    let next = this.clone();\n    next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n    return next;\n  } // withContext<TContext extends AnyObject>(): BaseSchema<\n  //   TCast,\n  //   TContext,\n  //   TOutput\n  // > {\n  //   return this as any;\n  // }\n\n\n  withMutation(fn) {\n    let before = this._mutate;\n    this._mutate = true;\n    let result = fn(this);\n    this._mutate = before;\n    return result;\n  }\n\n  concat(schema) {\n    if (!schema || schema === this) return this;\n    if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n    let base = this;\n    let combined = schema.clone();\n\n    const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n    //   mergedSpec.nullable = base.spec.nullable;\n    // if (combined.spec.presence === UNSET)\n    //   mergedSpec.presence = base.spec.presence;\n\n\n    combined.spec = mergedSpec;\n    combined._typeError || (combined._typeError = base._typeError);\n    combined._whitelistError || (combined._whitelistError = base._whitelistError);\n    combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n    // precedence in case of conflicts)\n\n    combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n    combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n    combined.tests = base.tests;\n    combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n    // the deduping logic is consistent\n\n    combined.withMutation(next => {\n      schema.tests.forEach(fn => {\n        next.test(fn.OPTIONS);\n      });\n    });\n    combined.transforms = [...base.transforms, ...combined.transforms];\n    return combined;\n  }\n\n  isType(v) {\n    if (this.spec.nullable && v === null) return true;\n    return this._typeCheck(v);\n  }\n\n  resolve(options) {\n    let schema = this;\n\n    if (schema.conditions.length) {\n      let conditions = schema.conditions;\n      schema = schema.clone();\n      schema.conditions = [];\n      schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n      schema = schema.resolve(options);\n    }\n\n    return schema;\n  }\n  /**\n   *\n   * @param {*} value\n   * @param {Object} options\n   * @param {*=} options.parent\n   * @param {*=} options.context\n   */\n\n\n  cast(value, options = {}) {\n    let resolvedSchema = this.resolve(_extends({\n      value\n    }, options));\n\n    let result = resolvedSchema._cast(value, options);\n\n    if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n      let formattedValue = printValue(value);\n      let formattedResult = printValue(result);\n      throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n    }\n\n    return result;\n  }\n\n  _cast(rawValue, _options) {\n    let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n    if (value === undefined) {\n      value = this.getDefault();\n    }\n\n    return value;\n  }\n\n  _validate(_value, options = {}, cb) {\n    let {\n      sync,\n      path,\n      from = [],\n      originalValue = _value,\n      strict = this.spec.strict,\n      abortEarly = this.spec.abortEarly\n    } = options;\n    let value = _value;\n\n    if (!strict) {\n      // this._validating = true;\n      value = this._cast(value, _extends({\n        assert: false\n      }, options)); // this._validating = false;\n    } // value is cast, we can check if it meets type requirements\n\n\n    let args = {\n      value,\n      path,\n      options,\n      originalValue,\n      schema: this,\n      label: this.spec.label,\n      sync,\n      from\n    };\n    let initialTests = [];\n    if (this._typeError) initialTests.push(this._typeError);\n    let finalTests = [];\n    if (this._whitelistError) finalTests.push(this._whitelistError);\n    if (this._blacklistError) finalTests.push(this._blacklistError);\n    runTests({\n      args,\n      value,\n      path,\n      sync,\n      tests: initialTests,\n      endEarly: abortEarly\n    }, err => {\n      if (err) return void cb(err, value);\n      runTests({\n        tests: this.tests.concat(finalTests),\n        args,\n        path,\n        sync,\n        value,\n        endEarly: abortEarly\n      }, cb);\n    });\n  }\n\n  validate(value, options, maybeCb) {\n    let schema = this.resolve(_extends({}, options, {\n      value\n    })); // callback case is for nested validations\n\n    return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n      if (err) reject(err);else resolve(value);\n    }));\n  }\n\n  validateSync(value, options) {\n    let schema = this.resolve(_extends({}, options, {\n      value\n    }));\n    let result;\n\n    schema._validate(value, _extends({}, options, {\n      sync: true\n    }), (err, value) => {\n      if (err) throw err;\n      result = value;\n    });\n\n    return result;\n  }\n\n  isValid(value, options) {\n    return this.validate(value, options).then(() => true, err => {\n      if (ValidationError.isError(err)) return false;\n      throw err;\n    });\n  }\n\n  isValidSync(value, options) {\n    try {\n      this.validateSync(value, options);\n      return true;\n    } catch (err) {\n      if (ValidationError.isError(err)) return false;\n      throw err;\n    }\n  }\n\n  _getDefault() {\n    let defaultValue = this.spec.default;\n\n    if (defaultValue == null) {\n      return defaultValue;\n    }\n\n    return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n  }\n\n  getDefault(options) {\n    let schema = this.resolve(options || {});\n    return schema._getDefault();\n  }\n\n  default(def) {\n    if (arguments.length === 0) {\n      return this._getDefault();\n    }\n\n    let next = this.clone({\n      default: def\n    });\n    return next;\n  }\n\n  strict(isStrict = true) {\n    let next = this.clone();\n    next.spec.strict = isStrict;\n    return next;\n  }\n\n  _isPresent(value) {\n    return value != null;\n  }\n\n  defined(message = locale.defined) {\n    return this.test({\n      message,\n      name: 'defined',\n      exclusive: true,\n\n      test(value) {\n        return value !== undefined;\n      }\n\n    });\n  }\n\n  required(message = locale.required) {\n    return this.clone({\n      presence: 'required'\n    }).withMutation(s => s.test({\n      message,\n      name: 'required',\n      exclusive: true,\n\n      test(value) {\n        return this.schema._isPresent(value);\n      }\n\n    }));\n  }\n\n  notRequired() {\n    let next = this.clone({\n      presence: 'optional'\n    });\n    next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n    return next;\n  }\n\n  nullable(isNullable = true) {\n    let next = this.clone({\n      nullable: isNullable !== false\n    });\n    return next;\n  }\n\n  transform(fn) {\n    let next = this.clone();\n    next.transforms.push(fn);\n    return next;\n  }\n  /**\n   * Adds a test function to the schema's queue of tests.\n   * tests can be exclusive or non-exclusive.\n   *\n   * - exclusive tests, will replace any existing tests of the same name.\n   * - non-exclusive: can be stacked\n   *\n   * If a non-exclusive test is added to a schema with an exclusive test of the same name\n   * the exclusive test is removed and further tests of the same name will be stacked.\n   *\n   * If an exclusive test is added to a schema with non-exclusive tests of the same name\n   * the previous tests are removed and further tests of the same name will replace each other.\n   */\n\n\n  test(...args) {\n    let opts;\n\n    if (args.length === 1) {\n      if (typeof args[0] === 'function') {\n        opts = {\n          test: args[0]\n        };\n      } else {\n        opts = args[0];\n      }\n    } else if (args.length === 2) {\n      opts = {\n        name: args[0],\n        test: args[1]\n      };\n    } else {\n      opts = {\n        name: args[0],\n        message: args[1],\n        test: args[2]\n      };\n    }\n\n    if (opts.message === undefined) opts.message = locale.default;\n    if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n    let next = this.clone();\n    let validate = createValidation(opts);\n    let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n    if (opts.exclusive) {\n      if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n    }\n\n    if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n    next.tests = next.tests.filter(fn => {\n      if (fn.OPTIONS.name === opts.name) {\n        if (isExclusive) return false;\n        if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n      }\n\n      return true;\n    });\n    next.tests.push(validate);\n    return next;\n  }\n\n  when(keys, options) {\n    if (!Array.isArray(keys) && typeof keys !== 'string') {\n      options = keys;\n      keys = '.';\n    }\n\n    let next = this.clone();\n    let deps = toArray(keys).map(key => new Ref(key));\n    deps.forEach(dep => {\n      // @ts-ignore\n      if (dep.isSibling) next.deps.push(dep.key);\n    });\n    next.conditions.push(new Condition(deps, options));\n    return next;\n  }\n\n  typeError(message) {\n    let next = this.clone();\n    next._typeError = createValidation({\n      message,\n      name: 'typeError',\n\n      test(value) {\n        if (value !== undefined && !this.schema.isType(value)) return this.createError({\n          params: {\n            type: this.schema._type\n          }\n        });\n        return true;\n      }\n\n    });\n    return next;\n  }\n\n  oneOf(enums, message = locale.oneOf) {\n    let next = this.clone();\n    enums.forEach(val => {\n      next._whitelist.add(val);\n\n      next._blacklist.delete(val);\n    });\n    next._whitelistError = createValidation({\n      message,\n      name: 'oneOf',\n\n      test(value) {\n        if (value === undefined) return true;\n        let valids = this.schema._whitelist;\n        let resolved = valids.resolveAll(this.resolve);\n        return resolved.includes(value) ? true : this.createError({\n          params: {\n            values: valids.toArray().join(', '),\n            resolved\n          }\n        });\n      }\n\n    });\n    return next;\n  }\n\n  notOneOf(enums, message = locale.notOneOf) {\n    let next = this.clone();\n    enums.forEach(val => {\n      next._blacklist.add(val);\n\n      next._whitelist.delete(val);\n    });\n    next._blacklistError = createValidation({\n      message,\n      name: 'notOneOf',\n\n      test(value) {\n        let invalids = this.schema._blacklist;\n        let resolved = invalids.resolveAll(this.resolve);\n        if (resolved.includes(value)) return this.createError({\n          params: {\n            values: invalids.toArray().join(', '),\n            resolved\n          }\n        });\n        return true;\n      }\n\n    });\n    return next;\n  }\n\n  strip(strip = true) {\n    let next = this.clone();\n    next.spec.strip = strip;\n    return next;\n  }\n\n  describe() {\n    const next = this.clone();\n    const {\n      label,\n      meta\n    } = next.spec;\n    const description = {\n      meta,\n      label,\n      type: next.type,\n      oneOf: next._whitelist.describe(),\n      notOneOf: next._blacklist.describe(),\n      tests: next.tests.map(fn => ({\n        name: fn.OPTIONS.name,\n        params: fn.OPTIONS.params\n      })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n    };\n    return description;\n  }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n  const {\n    parent,\n    parentPath,\n    schema\n  } = getIn(this, path, value, options.context);\n  return schema[method](parent && parent[parentPath], _extends({}, options, {\n    parent,\n    path\n  }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n  return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","const isAbsent = value => value == null;\n\nexport default isAbsent;","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n  return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n  constructor() {\n    super({\n      type: 'boolean'\n    });\n    this.withMutation(() => {\n      this.transform(function (value) {\n        if (!this.isType(value)) {\n          if (/^(true|1)$/i.test(String(value))) return true;\n          if (/^(false|0)$/i.test(String(value))) return false;\n        }\n\n        return value;\n      });\n    });\n  }\n\n  _typeCheck(v) {\n    if (v instanceof Boolean) v = v.valueOf();\n    return typeof v === 'boolean';\n  }\n\n  isTrue(message = locale.isValue) {\n    return this.test({\n      message,\n      name: 'is-value',\n      exclusive: true,\n      params: {\n        value: 'true'\n      },\n\n      test(value) {\n        return isAbsent(value) || value === true;\n      }\n\n    });\n  }\n\n  isFalse(message = locale.isValue) {\n    return this.test({\n      message,\n      name: 'is-value',\n      exclusive: true,\n      params: {\n        value: 'false'\n      },\n\n      test(value) {\n        return isAbsent(value) || value === false;\n      }\n\n    });\n  }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n  return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n  constructor() {\n    super({\n      type: 'string'\n    });\n    this.withMutation(() => {\n      this.transform(function (value) {\n        if (this.isType(value)) return value;\n        if (Array.isArray(value)) return value;\n        const strValue = value != null && value.toString ? value.toString() : value;\n        if (strValue === objStringTag) return value;\n        return strValue;\n      });\n    });\n  }\n\n  _typeCheck(value) {\n    if (value instanceof String) value = value.valueOf();\n    return typeof value === 'string';\n  }\n\n  _isPresent(value) {\n    return super._isPresent(value) && !!value.length;\n  }\n\n  length(length, message = locale.length) {\n    return this.test({\n      message,\n      name: 'length',\n      exclusive: true,\n      params: {\n        length\n      },\n\n      test(value) {\n        return isAbsent(value) || value.length === this.resolve(length);\n      }\n\n    });\n  }\n\n  min(min, message = locale.min) {\n    return this.test({\n      message,\n      name: 'min',\n      exclusive: true,\n      params: {\n        min\n      },\n\n      test(value) {\n        return isAbsent(value) || value.length >= this.resolve(min);\n      }\n\n    });\n  }\n\n  max(max, message = locale.max) {\n    return this.test({\n      name: 'max',\n      exclusive: true,\n      message,\n      params: {\n        max\n      },\n\n      test(value) {\n        return isAbsent(value) || value.length <= this.resolve(max);\n      }\n\n    });\n  }\n\n  matches(regex, options) {\n    let excludeEmptyString = false;\n    let message;\n    let name;\n\n    if (options) {\n      if (typeof options === 'object') {\n        ({\n          excludeEmptyString = false,\n          message,\n          name\n        } = options);\n      } else {\n        message = options;\n      }\n    }\n\n    return this.test({\n      name: name || 'matches',\n      message: message || locale.matches,\n      params: {\n        regex\n      },\n      test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n    });\n  }\n\n  email(message = locale.email) {\n    return this.matches(rEmail, {\n      name: 'email',\n      message,\n      excludeEmptyString: true\n    });\n  }\n\n  url(message = locale.url) {\n    return this.matches(rUrl, {\n      name: 'url',\n      message,\n      excludeEmptyString: true\n    });\n  }\n\n  uuid(message = locale.uuid) {\n    return this.matches(rUUID, {\n      name: 'uuid',\n      message,\n      excludeEmptyString: false\n    });\n  } //-- transforms --\n\n\n  ensure() {\n    return this.default('').transform(val => val === null ? '' : val);\n  }\n\n  trim(message = locale.trim) {\n    return this.transform(val => val != null ? val.trim() : val).test({\n      message,\n      name: 'trim',\n      test: isTrimmed\n    });\n  }\n\n  lowercase(message = locale.lowercase) {\n    return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n      message,\n      name: 'string_case',\n      exclusive: true,\n      test: value => isAbsent(value) || value === value.toLowerCase()\n    });\n  }\n\n  uppercase(message = locale.uppercase) {\n    return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n      message,\n      name: 'string_case',\n      exclusive: true,\n      test: value => isAbsent(value) || value === value.toUpperCase()\n    });\n  }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n  return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n  constructor() {\n    super({\n      type: 'number'\n    });\n    this.withMutation(() => {\n      this.transform(function (value) {\n        let parsed = value;\n\n        if (typeof parsed === 'string') {\n          parsed = parsed.replace(/\\s/g, '');\n          if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n          parsed = +parsed;\n        }\n\n        if (this.isType(parsed)) return parsed;\n        return parseFloat(parsed);\n      });\n    });\n  }\n\n  _typeCheck(value) {\n    if (value instanceof Number) value = value.valueOf();\n    return typeof value === 'number' && !isNaN(value);\n  }\n\n  min(min, message = locale.min) {\n    return this.test({\n      message,\n      name: 'min',\n      exclusive: true,\n      params: {\n        min\n      },\n\n      test(value) {\n        return isAbsent(value) || value >= this.resolve(min);\n      }\n\n    });\n  }\n\n  max(max, message = locale.max) {\n    return this.test({\n      message,\n      name: 'max',\n      exclusive: true,\n      params: {\n        max\n      },\n\n      test(value) {\n        return isAbsent(value) || value <= this.resolve(max);\n      }\n\n    });\n  }\n\n  lessThan(less, message = locale.lessThan) {\n    return this.test({\n      message,\n      name: 'max',\n      exclusive: true,\n      params: {\n        less\n      },\n\n      test(value) {\n        return isAbsent(value) || value < this.resolve(less);\n      }\n\n    });\n  }\n\n  moreThan(more, message = locale.moreThan) {\n    return this.test({\n      message,\n      name: 'min',\n      exclusive: true,\n      params: {\n        more\n      },\n\n      test(value) {\n        return isAbsent(value) || value > this.resolve(more);\n      }\n\n    });\n  }\n\n  positive(msg = locale.positive) {\n    return this.moreThan(0, msg);\n  }\n\n  negative(msg = locale.negative) {\n    return this.lessThan(0, msg);\n  }\n\n  integer(message = locale.integer) {\n    return this.test({\n      name: 'integer',\n      message,\n      test: val => isAbsent(val) || Number.isInteger(val)\n    });\n  }\n\n  truncate() {\n    return this.transform(value => !isAbsent(value) ? value | 0 : value);\n  }\n\n  round(method) {\n    var _method;\n\n    let avail = ['ceil', 'floor', 'round', 'trunc'];\n    method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n    if (method === 'trunc') return this.truncate();\n    if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n    return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n  }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//","/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>\n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover <http://zetafleet.com>\n * Released under MIT license.\n */\n//              1 YYYY                 2 MM        3 DD              4 HH     5 mm        6 ss            7 msec         8 Z 9 ±    10 tzHH    11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n  var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n      minutesOffset = 0,\n      timestamp,\n      struct;\n\n  if (struct = isoReg.exec(date)) {\n    // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n    for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n    struct[2] = (+struct[2] || 1) - 1;\n    struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n    struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n    if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n      if (struct[8] !== 'Z' && struct[9] !== undefined) {\n        minutesOffset = struct[10] * 60 + struct[11];\n        if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n      }\n\n      timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n    }\n  } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n  return timestamp;\n}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n  return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n  constructor() {\n    super({\n      type: 'date'\n    });\n    this.withMutation(() => {\n      this.transform(function (value) {\n        if (this.isType(value)) return value;\n        value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n        return !isNaN(value) ? new Date(value) : invalidDate;\n      });\n    });\n  }\n\n  _typeCheck(v) {\n    return isDate(v) && !isNaN(v.getTime());\n  }\n\n  prepareParam(ref, name) {\n    let param;\n\n    if (!Ref.isRef(ref)) {\n      let cast = this.cast(ref);\n      if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n      param = cast;\n    } else {\n      param = ref;\n    }\n\n    return param;\n  }\n\n  min(min, message = locale.min) {\n    let limit = this.prepareParam(min, 'min');\n    return this.test({\n      message,\n      name: 'min',\n      exclusive: true,\n      params: {\n        min\n      },\n\n      test(value) {\n        return isAbsent(value) || value >= this.resolve(limit);\n      }\n\n    });\n  }\n\n  max(max, message = locale.max) {\n    let limit = this.prepareParam(max, 'max');\n    return this.test({\n      message,\n      name: 'max',\n      exclusive: true,\n      params: {\n        max\n      },\n\n      test(value) {\n        return isAbsent(value) || value <= this.resolve(limit);\n      }\n\n    });\n  }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n  let edges = [];\n  let nodes = new Set();\n  let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n  function addNode(depPath, key) {\n    let node = split(depPath)[0];\n    nodes.add(node);\n    if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n  }\n\n  for (const key in fields) if (has(fields, key)) {\n    let value = fields[key];\n    nodes.add(key);\n    if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n  }\n\n  return toposort.array(Array.from(nodes), edges).reverse();\n}","function findIndex(arr, err) {\n  let idx = Infinity;\n  arr.some((key, ii) => {\n    var _err$path;\n\n    if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n      idx = ii;\n      return true;\n    }\n  });\n  return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n  return (a, b) => {\n    return findIndex(keys, a) - findIndex(keys, b);\n  };\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n  let known = Object.keys(ctx.fields);\n  return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n  constructor(spec) {\n    super({\n      type: 'object'\n    });\n    this.fields = Object.create(null);\n    this._sortErrors = defaultSort;\n    this._nodes = [];\n    this._excludedEdges = [];\n    this.withMutation(() => {\n      this.transform(function coerce(value) {\n        if (typeof value === 'string') {\n          try {\n            value = JSON.parse(value);\n          } catch (err) {\n            value = null;\n          }\n        }\n\n        if (this.isType(value)) return value;\n        return null;\n      });\n\n      if (spec) {\n        this.shape(spec);\n      }\n    });\n  }\n\n  _typeCheck(value) {\n    return isObject(value) || typeof value === 'function';\n  }\n\n  _cast(_value, options = {}) {\n    var _options$stripUnknown;\n\n    let value = super._cast(_value, options); //should ignore nulls here\n\n\n    if (value === undefined) return this.getDefault();\n    if (!this._typeCheck(value)) return value;\n    let fields = this.fields;\n    let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n    let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n    let intermediateValue = {}; // is filled during the transform below\n\n    let innerOptions = _extends({}, options, {\n      parent: intermediateValue,\n      __validating: options.__validating || false\n    });\n\n    let isChanged = false;\n\n    for (const prop of props) {\n      let field = fields[prop];\n      let exists = has(value, prop);\n\n      if (field) {\n        let fieldValue;\n        let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n        innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n        field = field.resolve({\n          value: inputValue,\n          context: options.context,\n          parent: intermediateValue\n        });\n        let fieldSpec = 'spec' in field ? field.spec : undefined;\n        let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n        if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n          isChanged = isChanged || prop in value;\n          continue;\n        }\n\n        fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n        field.cast(value[prop], innerOptions) : value[prop];\n\n        if (fieldValue !== undefined) {\n          intermediateValue[prop] = fieldValue;\n        }\n      } else if (exists && !strip) {\n        intermediateValue[prop] = value[prop];\n      }\n\n      if (intermediateValue[prop] !== value[prop]) {\n        isChanged = true;\n      }\n    }\n\n    return isChanged ? intermediateValue : value;\n  }\n\n  _validate(_value, opts = {}, callback) {\n    let errors = [];\n    let {\n      sync,\n      from = [],\n      originalValue = _value,\n      abortEarly = this.spec.abortEarly,\n      recursive = this.spec.recursive\n    } = opts;\n    from = [{\n      schema: this,\n      value: originalValue\n    }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n    // validation vs just casting. e.g strict() on a field is only used when validating\n\n    opts.__validating = true;\n    opts.originalValue = originalValue;\n    opts.from = from;\n\n    super._validate(_value, opts, (err, value) => {\n      if (err) {\n        if (!ValidationError.isError(err) || abortEarly) {\n          return void callback(err, value);\n        }\n\n        errors.push(err);\n      }\n\n      if (!recursive || !isObject(value)) {\n        callback(errors[0] || null, value);\n        return;\n      }\n\n      originalValue = originalValue || value;\n\n      let tests = this._nodes.map(key => (_, cb) => {\n        let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n        let field = this.fields[key];\n\n        if (field && 'validate' in field) {\n          field.validate(value[key], _extends({}, opts, {\n            // @ts-ignore\n            path,\n            from,\n            // inner fields are always strict:\n            // 1. this isn't strict so the casting will also have cast inner values\n            // 2. this is strict in which case the nested values weren't cast either\n            strict: true,\n            parent: value,\n            originalValue: originalValue[key]\n          }), cb);\n          return;\n        }\n\n        cb(null);\n      });\n\n      runTests({\n        sync,\n        tests,\n        value,\n        errors,\n        endEarly: abortEarly,\n        sort: this._sortErrors,\n        path: opts.path\n      }, callback);\n    });\n  }\n\n  clone(spec) {\n    const next = super.clone(spec);\n    next.fields = _extends({}, this.fields);\n    next._nodes = this._nodes;\n    next._excludedEdges = this._excludedEdges;\n    next._sortErrors = this._sortErrors;\n    return next;\n  }\n\n  concat(schema) {\n    let next = super.concat(schema);\n    let nextFields = next.fields;\n\n    for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n      const target = nextFields[field];\n\n      if (target === undefined) {\n        nextFields[field] = schemaOrRef;\n      } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n        nextFields[field] = schemaOrRef.concat(target);\n      }\n    }\n\n    return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n  }\n\n  getDefaultFromShape() {\n    let dft = {};\n\n    this._nodes.forEach(key => {\n      const field = this.fields[key];\n      dft[key] = 'default' in field ? field.getDefault() : undefined;\n    });\n\n    return dft;\n  }\n\n  _getDefault() {\n    if ('default' in this.spec) {\n      return super._getDefault();\n    } // if there is no default set invent one\n\n\n    if (!this._nodes.length) {\n      return undefined;\n    }\n\n    return this.getDefaultFromShape();\n  }\n\n  shape(additions, excludes = []) {\n    let next = this.clone();\n    let fields = Object.assign(next.fields, additions);\n    next.fields = fields;\n    next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n    if (excludes.length) {\n      // this is a convenience for when users only supply a single pair\n      if (!Array.isArray(excludes[0])) excludes = [excludes];\n      next._excludedEdges = [...next._excludedEdges, ...excludes];\n    }\n\n    next._nodes = sortFields(fields, next._excludedEdges);\n    return next;\n  }\n\n  pick(keys) {\n    const picked = {};\n\n    for (const key of keys) {\n      if (this.fields[key]) picked[key] = this.fields[key];\n    }\n\n    return this.clone().withMutation(next => {\n      next.fields = {};\n      return next.shape(picked);\n    });\n  }\n\n  omit(keys) {\n    const next = this.clone();\n    const fields = next.fields;\n    next.fields = {};\n\n    for (const key of keys) {\n      delete fields[key];\n    }\n\n    return next.withMutation(() => next.shape(fields));\n  }\n\n  from(from, to, alias) {\n    let fromGetter = getter(from, true);\n    return this.transform(obj => {\n      if (obj == null) return obj;\n      let newObj = obj;\n\n      if (has(obj, from)) {\n        newObj = _extends({}, obj);\n        if (!alias) delete newObj[from];\n        newObj[to] = fromGetter(obj);\n      }\n\n      return newObj;\n    });\n  }\n\n  noUnknown(noAllow = true, message = locale.noUnknown) {\n    if (typeof noAllow === 'string') {\n      message = noAllow;\n      noAllow = true;\n    }\n\n    let next = this.test({\n      name: 'noUnknown',\n      exclusive: true,\n      message: message,\n\n      test(value) {\n        if (value == null) return true;\n        const unknownKeys = unknown(this.schema, value);\n        return !noAllow || unknownKeys.length === 0 || this.createError({\n          params: {\n            unknown: unknownKeys.join(', ')\n          }\n        });\n      }\n\n    });\n    next.spec.noUnknown = noAllow;\n    return next;\n  }\n\n  unknown(allow = true, message = locale.noUnknown) {\n    return this.noUnknown(!allow, message);\n  }\n\n  transformKeys(fn) {\n    return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n  }\n\n  camelCase() {\n    return this.transformKeys(camelCase);\n  }\n\n  snakeCase() {\n    return this.transformKeys(snakeCase);\n  }\n\n  constantCase() {\n    return this.transformKeys(key => snakeCase(key).toUpperCase());\n  }\n\n  describe() {\n    let base = super.describe();\n    base.fields = mapValues(this.fields, value => value.describe());\n    return base;\n  }\n\n}\nexport function create(spec) {\n  return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n  return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n  constructor(type) {\n    super({\n      type: 'array'\n    }); // `undefined` specifically means uninitialized, as opposed to\n    // \"no subtype\"\n\n    this.innerType = void 0;\n    this.innerType = type;\n    this.withMutation(() => {\n      this.transform(function (values) {\n        if (typeof values === 'string') try {\n          values = JSON.parse(values);\n        } catch (err) {\n          values = null;\n        }\n        return this.isType(values) ? values : null;\n      });\n    });\n  }\n\n  _typeCheck(v) {\n    return Array.isArray(v);\n  }\n\n  get _subType() {\n    return this.innerType;\n  }\n\n  _cast(_value, _opts) {\n    const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n    if (!this._typeCheck(value) || !this.innerType) return value;\n    let isChanged = false;\n    const castArray = value.map((v, idx) => {\n      const castElement = this.innerType.cast(v, _extends({}, _opts, {\n        path: `${_opts.path || ''}[${idx}]`\n      }));\n\n      if (castElement !== v) {\n        isChanged = true;\n      }\n\n      return castElement;\n    });\n    return isChanged ? castArray : value;\n  }\n\n  _validate(_value, options = {}, callback) {\n    var _options$abortEarly, _options$recursive;\n\n    let errors = [];\n    let sync = options.sync;\n    let path = options.path;\n    let innerType = this.innerType;\n    let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n    let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n    let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n    super._validate(_value, options, (err, value) => {\n      if (err) {\n        if (!ValidationError.isError(err) || endEarly) {\n          return void callback(err, value);\n        }\n\n        errors.push(err);\n      }\n\n      if (!recursive || !innerType || !this._typeCheck(value)) {\n        callback(errors[0] || null, value);\n        return;\n      }\n\n      originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n      let tests = new Array(value.length);\n\n      for (let idx = 0; idx < value.length; idx++) {\n        let item = value[idx];\n        let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n        let innerOptions = _extends({}, options, {\n          path,\n          strict: true,\n          parent: value,\n          index: idx,\n          originalValue: originalValue[idx]\n        });\n\n        tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n      }\n\n      runTests({\n        sync,\n        path,\n        value,\n        errors,\n        endEarly,\n        tests\n      }, callback);\n    });\n  }\n\n  clone(spec) {\n    const next = super.clone(spec);\n    next.innerType = this.innerType;\n    return next;\n  }\n\n  concat(schema) {\n    let next = super.concat(schema);\n    next.innerType = this.innerType;\n    if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n    next.innerType.concat(schema.innerType) : schema.innerType;\n    return next;\n  }\n\n  of(schema) {\n    // FIXME: this should return a new instance of array without the default to be\n    let next = this.clone();\n    if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n    next.innerType = schema;\n    return next;\n  }\n\n  length(length, message = locale.length) {\n    return this.test({\n      message,\n      name: 'length',\n      exclusive: true,\n      params: {\n        length\n      },\n\n      test(value) {\n        return isAbsent(value) || value.length === this.resolve(length);\n      }\n\n    });\n  }\n\n  min(min, message) {\n    message = message || locale.min;\n    return this.test({\n      message,\n      name: 'min',\n      exclusive: true,\n      params: {\n        min\n      },\n\n      // FIXME(ts): Array<typeof T>\n      test(value) {\n        return isAbsent(value) || value.length >= this.resolve(min);\n      }\n\n    });\n  }\n\n  max(max, message) {\n    message = message || locale.max;\n    return this.test({\n      message,\n      name: 'max',\n      exclusive: true,\n      params: {\n        max\n      },\n\n      test(value) {\n        return isAbsent(value) || value.length <= this.resolve(max);\n      }\n\n    });\n  }\n\n  ensure() {\n    return this.default(() => []).transform((val, original) => {\n      // We don't want to return `null` for nullable schema\n      if (this._typeCheck(val)) return val;\n      return original == null ? [] : [].concat(original);\n    });\n  }\n\n  compact(rejector) {\n    let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n    return this.transform(values => values != null ? values.filter(reject) : values);\n  }\n\n  describe() {\n    let base = super.describe();\n    if (this.innerType) base.innerType = this.innerType.describe();\n    return base;\n  }\n\n  nullable(isNullable = true) {\n    return super.nullable(isNullable);\n  }\n\n  defined() {\n    return super.defined();\n  }\n\n  required(msg) {\n    return super.required(msg);\n  }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//","import isSchema from './util/isSchema';\nexport function create(builder) {\n  return new Lazy(builder);\n}\n\nclass Lazy {\n  constructor(builder) {\n    this.type = 'lazy';\n    this.__isYupSchema__ = true;\n    this.__inputType = void 0;\n    this.__outputType = void 0;\n\n    this._resolve = (value, options = {}) => {\n      let schema = this.builder(value, options);\n      if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n      return schema.resolve(options);\n    };\n\n    this.builder = builder;\n  }\n\n  resolve(options) {\n    return this._resolve(options.value, options);\n  }\n\n  cast(value, options) {\n    return this._resolve(value, options).cast(value, options);\n  }\n\n  validate(value, options, maybeCb) {\n    // @ts-expect-error missing public callback on type\n    return this._resolve(value, options).validate(value, options, maybeCb);\n  }\n\n  validateSync(value, options) {\n    return this._resolve(value, options).validateSync(value, options);\n  }\n\n  validateAt(path, value, options) {\n    return this._resolve(value, options).validateAt(path, value, options);\n  }\n\n  validateSyncAt(path, value, options) {\n    return this._resolve(value, options).validateSyncAt(path, value, options);\n  }\n\n  describe() {\n    return null;\n  }\n\n  isValid(value, options) {\n    return this._resolve(value, options).isValid(value, options);\n  }\n\n  isValidSync(value, options) {\n    return this._resolve(value, options).isValidSync(value, options);\n  }\n\n}\n\nexport default Lazy;","import React from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport enum MessageType {\r\n  Text,\r\n  Html\r\n}\r\n\r\nexport interface Message {\r\n  body: string,\r\n  type: MessageType\r\n}\r\n\r\n\r\ninterface MessageModalProps {\r\n  message: Message\r\n  onHide: () => void\r\n}\r\n\r\nexport default function MessageModal(props: MessageModalProps) {\r\n  const { t } = useTranslation()\r\n  const { message, onHide } = props\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\" onHide={onHide}>\r\n      <Modal.Body>\r\n        {message.type === MessageType.Html ? <div dangerouslySetInnerHTML={{ __html: sanitize(message.body) }} /> : message.body}\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={onHide}>{t(\"registration.button.close\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","export enum BarcodeType {\r\n  Unknown = 0,\r\n  Covid = 1,\r\n  Wellness = 2\r\n}","export enum InsuranceRelationshipId {\r\n  Undefined = 0,\r\n  Self = 16,\r\n  Spouse = 17,\r\n  Child = 18,\r\n  Other = 19\r\n}\r\n","export function ConvertToDate(value?: string) {\r\n  if (!value) {\r\n    return undefined\r\n  }\r\n  const date = new Date(value)\r\n  if (isFinite(+date)) {\r\n    return date\r\n  }\r\n\r\n  return undefined\r\n}","import { useFormik } from \"formik\"\r\nimport * as Yup from 'yup'\r\nimport React, { useMemo, useRef, useState } from \"react\"\r\nimport { Col, Form, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DonorData from \"../../api/models/registration/DonorData\"\r\nimport { BLUESTONE, Implementation } from \"../../api/models/registration/Implementation\"\r\nimport DemographicsConfigurationResponse from \"../../api/models/registration/DemographicsConfigurationResponse\"\r\nimport MessageModal, { Message, MessageType } from \"./Modals/MessageModal\"\r\nimport PhoneNumber, { PhoneNumberHandle } from \"../Login/PhoneNumber\"\r\nimport DateOfBirth from \"../Login/DateOfBirth\"\r\nimport FormatLocalISODateString from \"../../formatters/FormatLocalISODateString\"\r\nimport { ConvertToDate } from \"../../formatters/ConvertToDate\"\r\nimport { BarcodeType } from \"../../api/models/registration/BarcodeType\"\r\nimport { AnyObject } from \"yup/lib/types\"\r\nimport { InsuranceRelationshipId } from \"../../api/models/InsuranceRelationshipId\"\r\nimport DemographicsDonorData from \"../../api/models/registration/DemographicsDonorData\"\r\nimport Country from \"../../api/models/Country\"\r\n\r\ninterface DonorFormProps {\r\n  implementation?: Implementation\r\n  verified: boolean\r\n  donorData: DonorData\r\n  configuration: DemographicsConfigurationResponse\r\n  displayEmployeeId: boolean\r\n  requireEmployeeId: boolean\r\n  employeeIdLabel?: string\r\n  disableEmployeeId: boolean\r\n  needToSpecifyEmployeeType: boolean\r\n  barcodeType: BarcodeType\r\n  displayInsuranceSection: boolean\r\n  onSubmit: (donor: DemographicsDonorData) => void\r\n  countries: Country[]\r\n}\r\n\r\nfunction getAge(dateOfBirth: string) {\r\n  const today = new Date()\r\n  const date = new Date(dateOfBirth)\r\n  let age = today.getFullYear() - date.getFullYear()\r\n  var monthDiff = today.getMonth() - date.getMonth()\r\n  if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < date.getDate())) {\r\n    age--\r\n  }\r\n  return age\r\n}\r\n\r\nfunction child(dateOfBirth: string) {\r\n  if (!dateOfBirth) {\r\n    return false\r\n  }\r\n  return getAge(dateOfBirth) < 18\r\n}\r\n\r\nfunction guardianRequiredTest(value: string | number | boolean | null | undefined, context: Yup.TestContext<AnyObject>) {\r\n  const required = context.parent.underGuardianCare || child(context.parent.dateOfBirth)\r\n  return !required || (required && !!value)\r\n}\r\n\r\nfunction guardianRequiredPhone(value: string | number | boolean | null | undefined, context: Yup.TestContext<AnyObject>) {\r\n  const required = context.parent.underGuardianCare || child(context.parent.dateOfBirth)\r\n  return !required || (required && context.parent.guardianPhoneValid && !!value)\r\n}\r\n\r\nfunction insuranceInfoRequired(value: string | number | null | undefined, context: Yup.TestContext<AnyObject>) {\r\n  if (![InsuranceRelationshipId.Spouse, InsuranceRelationshipId.Child, InsuranceRelationshipId.Other].includes(context.parent.relationshipId || 0)) {\r\n    return true\r\n  }\r\n\r\n  return !!value\r\n}\r\n\r\nfunction relationshipRequires(relId: number) {\r\n  if ([InsuranceRelationshipId.Spouse, InsuranceRelationshipId.Child, InsuranceRelationshipId.Other].includes(relId || 0)) {\r\n    return true\r\n  }\r\n  return false\r\n}\r\n\r\nexport default function DonorForm(props: DonorFormProps) {\r\n  const { t } = useTranslation()\r\n  const [showMessage, setShowMessage] = useState<boolean>(false)\r\n  const message = useRef<Message | undefined>(undefined)\r\n  const phoneRef = useRef<PhoneNumberHandle>(null)\r\n  const initialInsurancePhone = useRef<string>(props.donorData.insurance?.phone ?? \"\")\r\n\r\n  const { implementation } = props\r\n\r\n  const bluestone = useMemo(() => props.implementation === BLUESTONE, [props.implementation])\r\n  const wellness = props.barcodeType === BarcodeType.Wellness\r\n\r\n  const validationSchema = useMemo(() => {\r\n    const fieldRequiredMessage = t(\"registration.validation.fieldRequired\")\r\n    return Yup.object().shape({\r\n      firstName: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      lastName: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      employeeId: props.displayEmployeeId && props.requireEmployeeId && !props.disableEmployeeId\r\n        ? (bluestone\r\n          ? Yup.string().nullable(true).required(fieldRequiredMessage).matches(/^(e|E|c|C)\\d{6}$/, t(\"registration.validation.bluestoneEmployeeId\"))\r\n          : Yup.string().nullable(true).required(fieldRequiredMessage))\r\n        : Yup.string().nullable(true),\r\n      address1: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      address2: Yup.string().nullable(true),\r\n      city: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      stateCodeId: Yup.number().test(\"stateCodeId\", fieldRequiredMessage, (value) => (value ?? 0) > 0),\r\n      zip: Yup.string().nullable(true).required(fieldRequiredMessage)\r\n        .min(5, t(\"registration.validation.minLength\", { count: 5 }))\r\n        .matches(/^\\d{5}([-]?\\d{4})?$/, t(\"registration.validation.zipCode\")),\r\n      yesNoSelection: props.configuration.yesNoOptions ? Yup.string().nullable(true).required(fieldRequiredMessage) : Yup.string().nullable(true),\r\n      mobile: Yup.string().nullable(true).test(\"mobile\", t(\"login.phoneNumber.invalid\"), (value, context) => context.parent.phoneValid && !!value),\r\n      email: Yup.string().nullable(true).matches(/^([a-zA-Z0-9_\\-.`']+)@([a-zA-Z0-9_\\-.`']+)\\.([a-zA-Z]{2,5})$/, t(\"registration.validation.email\")),\r\n      dateOfBirth: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      genderId: Yup.number().test(\"genderId\", fieldRequiredMessage, (value) => (value ?? 0) > 0),\r\n      genderIdentityId: bluestone ? Yup.number().test(\"genderIdentityId\", fieldRequiredMessage, (value) => (value ?? 0) > 0) : Yup.number().nullable(true),\r\n      sexualOrientationId: bluestone ? Yup.number().test(\"sexualOrientationId\", fieldRequiredMessage, (value) => (value ?? 0) > 0) : Yup.number().nullable(true),\r\n      raceId: !wellness ? Yup.number().test(\"raceId\", fieldRequiredMessage, (value) => (value ?? 0) > 0) : Yup.number().nullable(true),\r\n      ethnicityId: !wellness ? Yup.number().test(\"ethnicityId\", fieldRequiredMessage, (value) => (value ?? 0) > 0) : Yup.number().nullable(true),\r\n      guardianFirstName: Yup.string().nullable(true).test(\"guardianFirstName\", fieldRequiredMessage, (value, context) => guardianRequiredTest(value, context)),\r\n      guardianLastName: Yup.string().nullable(true).test(\"guardianLastName\", fieldRequiredMessage, (value, context) => guardianRequiredTest(value, context)),\r\n      guardianRelationshipId: Yup.number().test(\"guardianRelationshipId\", fieldRequiredMessage, (value, context) => guardianRequiredTest(value, context)),\r\n      guardianPhone: Yup.string().nullable(true).test(\"guardianPhone\", t(\"login.phoneNumber.invalid\"), (value, context) => guardianRequiredPhone(value, context)),\r\n      performedByAdult: Yup.boolean().nullable(true).test(\"performedByAdult\", t(\"registration.demographics.guardianOrOtherAdultMustPerformThisCollection\"), (value, context) => guardianRequiredTest(value, context)),\r\n      insurance: Yup.object().shape({\r\n        planId: props.displayInsuranceSection ? Yup.number().nullable(true).test(\"planId\", fieldRequiredMessage, (value) => (value ?? -1) >= 0) : Yup.number().nullable(true),\r\n        otherPlanName: props.displayInsuranceSection ? Yup.string().nullable(true)\r\n          .test(\"otherPlanName\", fieldRequiredMessage, (value, context) => context.parent.planId > 0 || !!value) : Yup.string().nullable(true),\r\n        policyGroup: props.displayInsuranceSection ? Yup.string().nullable(true)\r\n          .test(\"policyGroup\", fieldRequiredMessage, (value, context) => context.parent.planId > 0 || !!value) : Yup.string().nullable(true),\r\n        policyIdNumber: props.displayInsuranceSection ? Yup.string().nullable(true).required(fieldRequiredMessage) : Yup.string().nullable(true),\r\n        name: props.displayInsuranceSection ? Yup.string().nullable(true)\r\n          .test(\"name\", fieldRequiredMessage, (value, context) => insuranceInfoRequired(value, context)) : Yup.string().nullable(true),\r\n        address: props.displayInsuranceSection ? Yup.string().nullable(true)\r\n          .test(\"address\", fieldRequiredMessage, (value, context) => insuranceInfoRequired(value, context)) : Yup.string().nullable(true),\r\n        city: props.displayInsuranceSection ? Yup.string().nullable(true)\r\n          .test(\"city\", fieldRequiredMessage, (value, context) => insuranceInfoRequired(value, context)) : Yup.string().nullable(true),\r\n        stateCodeId: props.displayInsuranceSection ? Yup.number().nullable(true).when(\"relationshipId\", {\r\n          is: (relId: number) => relationshipRequires(relId),\r\n          then: Yup.number().test(\"stateCodeId\", fieldRequiredMessage, (value) => (value ?? 0) > 0)\r\n        })\r\n          : Yup.number().nullable(true),\r\n        zip: props.displayInsuranceSection ? Yup.string().nullable(true).when(\"relationshipId\", {\r\n          is: (relId: number) => relationshipRequires(relId),\r\n          then: Yup.string().required(fieldRequiredMessage)\r\n            .min(5, t(\"registration.validation.minLength\", { count: 5 }))\r\n            .matches(/^\\d{5}([-]?\\d{4})?$/, t(\"registration.validation.zipCode\"))\r\n        })\r\n          : Yup.string().nullable(true),\r\n        phone: props.displayInsuranceSection ? Yup.string().nullable(true).when(\"relationshipId\", {\r\n          is: (relId: number) => relationshipRequires(relId),\r\n          then: Yup.string().test(\"phone\", t(\"login.phoneNumber.invalid\"), (value, context) => (context as any).from[1].value.insurancePhoneValid && !!value)\r\n        })\r\n          : Yup.string().nullable(true)\r\n      })\r\n    })\r\n  }, [t, props.configuration.yesNoOptions, props.displayEmployeeId, props.disableEmployeeId, props.displayInsuranceSection, bluestone, wellness, props.requireEmployeeId])\r\n\r\n  const formik = useFormik<DemographicsDonorData & {\r\n    phoneValid: boolean, guardianPhoneValid: boolean, insurancePhoneValid: boolean\r\n  }>({\r\n    initialValues: {\r\n      ...props.donorData, phoneValid: true, guardianPhoneValid: true, insurancePhoneValid: true,\r\n      yesNoSelection: \"\",\r\n      isEmployee: \"0\",\r\n      underGuardianCare: false,\r\n      performedByAdult: false,\r\n      requireEmployeeId: false,\r\n      employeeIdCancelled: false\r\n    },\r\n    validationSchema: validationSchema,\r\n    onSubmit: (values) => { props.onSubmit(values) }\r\n  })\r\n\r\n  const handleBluestoneDescription = (e: React.FormEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault()\r\n    message.current = { body: t(\"registration.demographics.homeAddressesAreRequired\"), type: MessageType.Text }\r\n    setShowMessage(true)\r\n  }\r\n\r\n  const handleBluestoneInsuranceDescription = (e: React.FormEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault()\r\n    message.current = { body: t(\"registration.demographics.effectiveFeb\"), type: MessageType.Html }\r\n    setShowMessage(true)\r\n  }\r\n\r\n  const handlePhoneChange = (valid: boolean, mobileNumber: string, country: string) => {\r\n    formik.setFieldValue(\"phoneValid\", valid)\r\n    formik.setFieldTouched(\"phoneValid\", true, true).then(\r\n      () => {\r\n        formik.setFieldValue(\"mobile\", mobileNumber)\r\n        formik.setFieldTouched(\"mobile\", true, true)\r\n        formik.setFieldValue(\"countryAbbreviation\", country)\r\n      }\r\n    )\r\n  }\r\n\r\n  const handleBirthDateChange = (date: Date | null) => {\r\n    formik.setFieldValue(\"dateOfBirth\", FormatLocalISODateString(date)).then(() => {\r\n      formik.setFieldTouched(\"dateOfBirth\", true, true)\r\n    })\r\n  }\r\n\r\n  const handleGuardianPhoneChange = (valid: boolean, mobileNumber: string, country: string) => {\r\n    formik.setFieldValue(\"guardianPhoneValid\", valid)\r\n    formik.setFieldTouched(\"guardianPhoneValid\", true, true).then(\r\n      () => {\r\n        formik.setFieldValue(\"guardianPhone\", mobileNumber)\r\n        formik.setFieldTouched(\"guardianPhone\", true, true)\r\n        formik.setFieldValue(\"guardianCountryAbbreviation\", country)\r\n      }\r\n    )\r\n    if (phoneRef.current && valid) {\r\n      phoneRef.current.setPhone(mobileNumber, country)\r\n    }\r\n  }\r\n\r\n  const handleInsurancePhoneChange = (valid: boolean, mobileNumber: string, country: string) => {\r\n    formik.setFieldValue(\"insurancePhoneValid\", valid)\r\n    formik.setFieldTouched(\"insurancePhoneValid\", true, true).then(\r\n      () => {\r\n        formik.setFieldValue(\"insurance.phone\", mobileNumber)\r\n        formik.setFieldTouched(\"insurance.phone\", true, true)\r\n        formik.setFieldValue(\"insurance.countryAbbreviation\", country)\r\n      }\r\n    )\r\n  }\r\n\r\n  const handleInsurancePlanName = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n    const planId = +e.target.value\r\n    formik.setFieldValue(\"insurance.planId\", planId)\r\n\r\n    if (planId === 0 && props.donorData.insurance?.useInsuranceOtherForPrePopulation) {\r\n      formik.setFieldValue(\"insurance.policyGroup\", props.donorData.insurance?.policyGroup || \"\")\r\n      return\r\n    }\r\n\r\n    const selectedPlan = planId > 0 ? insurancePlans.find(plan => plan.planId === planId) : undefined\r\n    formik.setFieldValue(\"insurance.policyGroup\", selectedPlan?.insuranceGroup || \"\")\r\n  }\r\n\r\n  const handleRelationshipChange = (value: number, checked: boolean) => {\r\n    formik.setFieldValue(\"insurance.relationshipId\", checked ? value : InsuranceRelationshipId.Undefined)\r\n\r\n    if ([InsuranceRelationshipId.Spouse, InsuranceRelationshipId.Child, InsuranceRelationshipId.Other].includes(value || 0)) {\r\n      formik.setFieldValue(\"performedByAdult\", true)\r\n    } else {\r\n      formik.setFieldValue(\"insurance.name\", \"\")\r\n      formik.setFieldValue(\"insurance.address\", \"\")\r\n      formik.setFieldValue(\"insurance.city\", \"\")\r\n      formik.setFieldValue(\"insurance.stateCodeId\", 0)\r\n      formik.setFieldValue(\"insurance.zip\", \"\")\r\n      initialInsurancePhone.current = \"\"\r\n    }\r\n  }\r\n\r\n  const handleUnderGuardianCareChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    var checked = e.target.checked\r\n    formik.setFieldValue(\"underGuardianCare\", checked)\r\n    formik.setFieldValue(\"performedByAdult\", checked)\r\n  }\r\n\r\n  const guardianRequired = formik.values.underGuardianCare || child(formik.values.dateOfBirth ?? \"\")\r\n  const insuranceErrors = formik.errors.insurance as any\r\n  const insuranceTouched = formik.touched.insurance as any\r\n\r\n  const races = useMemo(() => {\r\n    if (!bluestone) {\r\n      return props.configuration.races\r\n    }\r\n    const unknownIndex = props.configuration.races.findIndex((race) => race.description === \"Unknown/undetermined\")\r\n    if (unknownIndex > 0) {\r\n      props.configuration.races[unknownIndex].description = \"Prefer Not to State\"\r\n    }\r\n    return props.configuration.races\r\n  }, [props.configuration.races, bluestone])\r\n\r\n  const ethnicities = useMemo(() => {\r\n    if (!bluestone) {\r\n      return props.configuration.ethnicities\r\n    }\r\n    const unknownIndex = props.configuration.ethnicities.findIndex((race) => race.description === \"Unknown\")\r\n    if (unknownIndex > 0) {\r\n      props.configuration.ethnicities[unknownIndex].description = \"Prefer Not to State\"\r\n    }\r\n    return props.configuration.ethnicities\r\n  }, [props.configuration.ethnicities, bluestone])\r\n\r\n  const insurancePlans = useMemo(() => {\r\n    if (props.configuration.insurancePlans.length === 0) {\r\n      return props.configuration.insurancePlans\r\n    }\r\n    props.configuration.insurancePlans[0].planId = -1\r\n\r\n    const otherIndex = props.configuration.insurancePlans.findIndex((plan) => plan.planId === 0)\r\n    if (otherIndex === -1) {\r\n      props.configuration.insurancePlans.push({ planId: 0, name: \"Other\" })\r\n    }\r\n    return props.configuration.insurancePlans\r\n  }, [props.configuration.insurancePlans])\r\n\r\n  return <Form id=\"donorForm\" onSubmit={formik.handleSubmit}>\r\n    {(props.verified || bluestone) && <Row>\r\n      <Col xs={12} lg={8} className=\"text-end\">\r\n        <h4>{t(\"registration.demographics.pleaseConfirmYourCurrentAddressAndEmail\")}</h4>\r\n      </Col>\r\n    </Row>}\r\n    {bluestone && <Row>\r\n      <Col xs={12} lg={8} className=\"mt-1\">\r\n        We collect information to help us identify potential inequality (or disparities) in access at a population level. This information is also\r\n        required for result reporting to the State of California and the County Department of Public Health to help track and trend the impact\r\n        of COVID-19 on different communities.<br /><br />\r\n        <h4>{t(\"registration.demographics.pleaseFillAllSectionsBelow\")}</h4>\r\n        You may select \"prefer not to state\"\" and there are absolutely no negative consequences for choosing that answer. You must answer\r\n        these questions to complete your registration<br />\r\n      </Col>\r\n    </Row>}\r\n    {props.configuration.yesNoOptions && <Row>\r\n      <Col xs={12} className=\"mt-1\">\r\n        <Form.Group controlId=\"yesNoSelection\">\r\n          <Form.Check type=\"radio\" name=\"yesNoSelection\" label={props.configuration.yesNoOptions?.yesText} value=\"1\"\r\n            checked={formik.values.yesNoSelection === \"1\"} onChange={formik.handleChange}\r\n            isInvalid={!!formik.errors.yesNoSelection && formik.touched.yesNoSelection} />\r\n          <Form.Check type=\"radio\" name=\"yesNoSelection\" label={props.configuration.yesNoOptions?.noText} value=\"0\"\r\n            checked={formik.values.yesNoSelection === \"0\"} onChange={formik.handleChange} />\r\n          <Form.Control.Feedback type=\"invalid\" className=\"d-block\">{formik.errors.yesNoSelection}</Form.Control.Feedback>\r\n        </Form.Group>\r\n      </Col>\r\n    </Row>}\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.firstName\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"firstName\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.firstName || \"\"}\r\n          maxLength={20}\r\n          isInvalid={!!formik.errors.firstName && formik.touched.firstName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.firstName}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.lastName\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"lastName\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.lastName || \"\"}\r\n          maxLength={25}\r\n          isInvalid={!!formik.errors.lastName && formik.touched.lastName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.lastName}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    {props.displayEmployeeId && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{props.employeeIdLabel ? props.employeeIdLabel : t(\"registration.demographics.employeeId\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"employeeId\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.employeeId || \"\"}\r\n          maxLength={implementation === BLUESTONE ? 7 : 25} disabled={props.disableEmployeeId}\r\n          isInvalid={!!formik.errors.employeeId && formik.touched.employeeId} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.employeeId}</Form.Control.Feedback>\r\n      </Col>\r\n      {props.needToSpecifyEmployeeType && <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold d-none d-sm-block\">&nbsp;</Form.Label>\r\n        <Row className=\"p-0 mt-1\">\r\n          <Col xs={5}>\r\n            <Form.Check type=\"radio\" name=\"isEmployee\" className=\"fw-bold\" label={t(\"registration.demographics.notEmployee\")} value=\"1\"\r\n              checked={formik.values.isEmployee === \"1\"} onChange={formik.handleChange} />\r\n          </Col>\r\n          <Col xs={5}>\r\n            <Form.Check type=\"radio\" name=\"isEmployee\" className=\"fw-bold\" label={t(\"registration.demographics.employee\")} value=\"0\"\r\n              checked={formik.values.isEmployee === \"0\"} onChange={formik.handleChange} />\r\n          </Col>\r\n        </Row>\r\n      </Col>}\r\n    </Row>}\r\n    {bluestone && <Row>\r\n      <Col className=\"mt-3\">\r\n        <a href=\"#/\" onClick={handleBluestoneDescription}>Why are we asking for this?</a>\r\n      </Col>\r\n    </Row>}\r\n    <Row>\r\n      <Col sm={12} lg={8} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.addressLine1\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"address1\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.address1 || \"\"}\r\n          maxLength={60}\r\n          isInvalid={!!formik.errors.address1 && formik.touched.address1} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.address1}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} lg={8} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.addressLine2\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"address2\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.address2 || \"\"}\r\n          maxLength={60}\r\n          isInvalid={!!formik.errors.address2 && formik.touched.address2} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.address2}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} lg={8} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.city\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"city\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.city || \"\"}\r\n          maxLength={40}\r\n          isInvalid={!!formik.errors.city && formik.touched.city} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.city}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.state\")}</Form.Label>\r\n        <Form.Select name=\"stateCodeId\" value={formik.values.stateCodeId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"stateCodeId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.stateCodeId && formik.touched.stateCodeId} >\r\n          {props.configuration.states.map(state => <option key={state.id} value={state.id}>{state.name}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.stateCodeId}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.zipCode\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"zip\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.zip || \"\"}\r\n          maxLength={10} minLength={5}\r\n          isInvalid={!!formik.errors.zip && formik.touched.zip} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.zip}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <PhoneNumber initialPhone={`${props.donorData.phoneCode ?? \"\"}${props.donorData.mobile ?? \"\"}`}\r\n          ref={phoneRef} countries={props.countries}\r\n          onChange={handlePhoneChange} skipFocus skipFeedback disabled={guardianRequired} />\r\n        {!!formik.errors.mobile && formik.touched.mobile && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{formik.errors.mobile}</Form.Control.Feedback>}\r\n        <div>\r\n          {t(\"registration.employee.whichMayBeUsed\")}\r\n        </div>\r\n        <Form.Group className=\"mt-1\" controlId=\"acceptTextMessages\" key=\"acceptTextMessages\">\r\n          <Form.Check name=\"acceptTextMessages\" type=\"checkbox\" label={t(\"registration.employee.acceptTextMessages\")}\r\n            checked={formik.values.acceptTextMessages} onChange={formik.handleChange} onBlur={formik.handleBlur} />\r\n        </Form.Group>\r\n        <Form.Group className=\"mt-1\" controlId=\"underGuardianCare\" key=\"underGuardianCare\">\r\n          <Form.Check name=\"underGuardianCare\" type=\"checkbox\" label={t(\"registration.demographics.underGuardianCare\")}\r\n            checked={formik.values.underGuardianCare} onChange={handleUnderGuardianCareChange} onBlur={formik.handleBlur} />\r\n        </Form.Group>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <Form.Label className=\"fw-bold\">{t(\"registration.demographics.email\")}</Form.Label>\r\n        <Form.Control type=\"email\" name=\"email\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.email || \"\"}\r\n          maxLength={250}\r\n          isInvalid={!!formik.errors.email && formik.touched.email} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.email}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <Form.Group controlId=\"dateOfBirth\">\r\n          <DateOfBirth title={t([`registration.employee.dateOfBirth_${implementation}`, \"registration.employee.dateOfBirth\"])}\r\n            initialDate={ConvertToDate(props.donorData.dateOfBirth)} onChange={handleBirthDateChange} />\r\n        </Form.Group>\r\n        {!!formik.errors.dateOfBirth && formik.touched.dateOfBirth &&\r\n          <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{t(\"login.dateOfBirth.invalid\")}</Form.Control.Feedback>}\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-2\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{bluestone ? t(\"registration.demographics.gender_bluestone\") : t(\"registration.demographics.gender\")}</Form.Label>\r\n        <Form.Select name=\"genderId\" value={formik.values.genderId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"genderId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.genderId && formik.touched.genderId} >\r\n          {props.configuration.genders.map(gender => <option key={gender.genderId} value={gender.genderId}>{gender.description}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.genderId}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    {guardianRequired && <Row>\r\n      <Col className=\"d-block invalid-feedback mt-1\">{t(\"registration.demographics.guardianOrOtherAdultMustPerformThisCollection\")}</Col>\r\n    </Row>}\r\n    {bluestone && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.genderIdentity\")}</Form.Label>&nbsp;<span>*</span>\r\n        <Form.Select name=\"genderIdentityId\" value={formik.values.genderIdentityId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"genderIdentityId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.genderIdentityId && formik.touched.genderIdentityId} >\r\n          {props.configuration.genderIdentities.map(genderIdentity => <option key={genderIdentity.genderIdentityId} value={genderIdentity.genderIdentityId}>{genderIdentity.description}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.genderIdentityId}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.sexualOrientation\")}</Form.Label>&nbsp;<span>*</span>\r\n        <Form.Select name=\"sexualOrientationId\" value={formik.values.sexualOrientationId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"sexualOrientationId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.sexualOrientationId && formik.touched.sexualOrientationId} >\r\n          {props.configuration.sexualOrientations.map(orientation => <option key={orientation.sexualOrientationId} value={orientation.sexualOrientationId}>{orientation.description}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.sexualOrientationId}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>}\r\n    {!wellness && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.race\")}</Form.Label>&nbsp;<span>*</span>\r\n        <Form.Select name=\"raceId\" value={formik.values.raceId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"raceId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.raceId && formik.touched.raceId} >\r\n          {races.map(race => <option key={race.raceId} value={race.raceId}>{race.description}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.raceId}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.ethnicity\")}</Form.Label>&nbsp;<span>*</span>\r\n        <Form.Select name=\"ethnicityId\" value={formik.values.ethnicityId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"ethnicityId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.ethnicityId && formik.touched.ethnicityId} >\r\n          {ethnicities.map(ethnicity => <option key={ethnicity.ethnicityId} value={ethnicity.ethnicityId}>{ethnicity.description}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.ethnicityId}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>}\r\n    {guardianRequired && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.guardianFirstName\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"guardianFirstName\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.guardianFirstName || \"\"}\r\n          maxLength={128}\r\n          isInvalid={!!formik.errors.guardianFirstName && formik.touched.guardianFirstName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.guardianFirstName}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.guardianLastName\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"guardianLastName\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.guardianLastName || \"\"}\r\n          maxLength={128}\r\n          isInvalid={!!formik.errors.guardianLastName && formik.touched.guardianLastName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.guardianLastName}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>}\r\n    {guardianRequired && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.guardianRelationship\")}</Form.Label>\r\n        <Form.Select name=\"guardianRelationshipId\" value={formik.values.guardianRelationshipId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"guardianRelationshipId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.guardianRelationshipId && formik.touched.guardianRelationshipId} >\r\n          {props.configuration.relationships.map(relationship => <option key={relationship.relationshipId} value={relationship.relationshipId}>{relationship.description}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.guardianRelationshipId}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-2\">\r\n        <PhoneNumber fieldId=\"guardianPhone\" initialPhone={`${props.donorData.guardianPhone ? (props.donorData.guardianPhoneCode ?? \"\") : \"\"}${props.donorData.guardianPhone ?? \"\"}`}\r\n          title={t(\"registration.demographics.guardianPhone\")} countries={props.countries}\r\n          onChange={handleGuardianPhoneChange} skipFocus skipFeedback />\r\n        {!!formik.errors.guardianPhone && formik.touched.guardianPhone && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{formik.errors.guardianPhone}</Form.Control.Feedback>}\r\n      </Col>\r\n    </Row>}\r\n    {props.displayInsuranceSection && <>\r\n      {bluestone && <Row>\r\n        <Col className=\"mt-3\">\r\n          <a href=\"#/\" onClick={handleBluestoneInsuranceDescription}>Why are we asking for this?</a>\r\n        </Col>\r\n      </Row>}\r\n      <h4>{t(\"registration.demographics.insuranceInformation\")}</h4>\r\n      <Row>\r\n        <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n          <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insurancePlanName\")}</Form.Label>\r\n          <Form.Select name=\"insurance.planId\" value={formik.values.insurance?.planId}\r\n            onBlur={formik.handleBlur} onChange={handleInsurancePlanName}\r\n            isInvalid={!!insuranceErrors?.planId && insuranceTouched?.planId} >\r\n            {insurancePlans.map(plan => <option key={plan.planId} value={plan.planId}>{plan.name}</option>)}\r\n          </Form.Select>\r\n          <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.planId}</Form.Control.Feedback>\r\n        </Col>\r\n        {formik.values.insurance?.planId === 0 && <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n          <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insuranceOtherPlanName\")}</Form.Label>\r\n          <Form.Control type=\"text\" name=\"insurance.otherPlanName\"\r\n            onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.otherPlanName || \"\"}\r\n            maxLength={50}\r\n            isInvalid={!!insuranceErrors?.otherPlanName && insuranceTouched?.otherPlanName} />\r\n          <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.otherPlanName}</Form.Control.Feedback>\r\n        </Col>}\r\n        <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n          <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insurancePolicyGroup\")}</Form.Label>\r\n          <Form.Control type=\"text\" name=\"insurance.policyGroup\"\r\n            onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.policyGroup || \"\"}\r\n            maxLength={30} disabled={(formik.values.insurance?.planId ?? 0) > 0}\r\n            isInvalid={!!insuranceErrors?.policyGroup && insuranceTouched?.policyGroup} />\r\n          <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.policyGroup}</Form.Control.Feedback>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n          <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insurancePolicyIdNumber\")}</Form.Label>\r\n          <Form.Control type=\"text\" name=\"insurance.policyIdNumber\"\r\n            onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.policyIdNumber || \"\"}\r\n            maxLength={30}\r\n            isInvalid={!!insuranceErrors?.policyIdNumber && insuranceTouched?.policyIdNumber} />\r\n          <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.policyIdNumber}</Form.Control.Feedback>\r\n        </Col>\r\n        <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n          <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insuranceYourRelationship\")}</Form.Label>\r\n          <Row>\r\n            <Col xs={3}>\r\n              <Form.Check type=\"checkbox\" name=\"insurance.relationshipId_self\" label={t(\"registration.demographics.self\")}\r\n                checked={formik.values.insurance?.relationshipId === InsuranceRelationshipId.Self}\r\n                onChange={(e) => { handleRelationshipChange(InsuranceRelationshipId.Self, e.target.checked) }} />\r\n            </Col>\r\n            <Col xs={3}>\r\n              <Form.Check type=\"checkbox\" name=\"insurance.relationshipId_self\" label={t(\"registration.demographics.spouse\")}\r\n                checked={formik.values.insurance?.relationshipId === InsuranceRelationshipId.Spouse}\r\n                onChange={(e) => { handleRelationshipChange(InsuranceRelationshipId.Spouse, e.target.checked) }} />\r\n            </Col>\r\n            <Col xs={3}>\r\n              <Form.Check type=\"checkbox\" name=\"insurance.relationshipId_self\" label={t(\"registration.demographics.child\")}\r\n                checked={formik.values.insurance?.relationshipId === InsuranceRelationshipId.Child}\r\n                onChange={(e) => { handleRelationshipChange(InsuranceRelationshipId.Child, e.target.checked) }} />\r\n            </Col>\r\n            <Col xs={3}>\r\n              <Form.Check type=\"checkbox\" name=\"insurance.relationshipId_self\" label={t(\"registration.demographics.other\")}\r\n                checked={formik.values.insurance?.relationshipId === InsuranceRelationshipId.Other}\r\n                onChange={(e) => { handleRelationshipChange(InsuranceRelationshipId.Other, e.target.checked) }} />\r\n            </Col>\r\n          </Row>\r\n        </Col>\r\n      </Row>\r\n      {[InsuranceRelationshipId.Spouse, InsuranceRelationshipId.Child, InsuranceRelationshipId.Other].includes(formik.values.insurance?.relationshipId || 0) && <>\r\n        <Row>\r\n          <Col sm={12} lg={8} className=\"mt-1\">\r\n            <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insuranceName\")}</Form.Label>\r\n            <Form.Control type=\"text\" name=\"insurance.name\"\r\n              onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.name || \"\"}\r\n              maxLength={50}\r\n              isInvalid={!!insuranceErrors?.name && insuranceTouched?.name} />\r\n            <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.name}</Form.Control.Feedback>\r\n          </Col>\r\n          <Col sm={12} lg={8} className=\"mt-1\">\r\n            <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.insuranceAddress\")}</Form.Label>\r\n            <Form.Control type=\"text\" name=\"insurance.address\"\r\n              onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.address || \"\"}\r\n              maxLength={60}\r\n              isInvalid={!!insuranceErrors?.address && insuranceTouched?.address} />\r\n            <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.address}</Form.Control.Feedback>\r\n          </Col>\r\n          <Col sm={12} lg={8} className=\"mt-1\">\r\n            <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.city\")}</Form.Label>\r\n            <Form.Control type=\"text\" name=\"insurance.city\"\r\n              onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.city || \"\"}\r\n              maxLength={40}\r\n              isInvalid={!!insuranceErrors?.city && insuranceTouched?.city} />\r\n            <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.city}</Form.Control.Feedback>\r\n          </Col>\r\n        </Row>\r\n        <Row>\r\n          <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n            <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.state\")}</Form.Label>\r\n            <Form.Select name=\"insurance.stateCodeId\" value={formik.values.insurance?.stateCodeId || 0}\r\n              onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"insurance.stateCodeId\", +e.target.value)}\r\n              isInvalid={!!insuranceErrors?.stateCodeId && insuranceTouched?.stateCodeId} >\r\n              {props.configuration.states.map(state => <option key={state.id} value={state.id}>{state.name}</option>)}\r\n            </Form.Select>\r\n            <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.stateCodeId}</Form.Control.Feedback>\r\n          </Col>\r\n          <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n            <Form.Label className=\"col-form-label fw-bold\">{t(\"registration.demographics.zipCode\")}</Form.Label>\r\n            <Form.Control type=\"text\" name=\"insurance.zip\"\r\n              onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.insurance?.zip || \"\"}\r\n              maxLength={10} minLength={5}\r\n              isInvalid={!!insuranceErrors?.zip && insuranceTouched?.zip} ></Form.Control>\r\n            <Form.Control.Feedback type=\"invalid\">{insuranceErrors?.zip}</Form.Control.Feedback>\r\n          </Col>\r\n        </Row>\r\n        <Row>\r\n          <Col sm={12} md={6} lg={4} className=\"mt-2\">\r\n            <PhoneNumber fieldId=\"insurancePhone\" initialPhone={initialInsurancePhone.current}\r\n              title={t(\"registration.demographics.insurancePhone\")} countries={props.countries}\r\n              onChange={handleInsurancePhoneChange} skipFocus skipFeedback />\r\n            {!!insuranceErrors?.phone && insuranceTouched?.phone && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{insuranceErrors?.phone}</Form.Control.Feedback>}\r\n          </Col>\r\n        </Row>\r\n      </>}\r\n    </>}\r\n    {guardianRequired && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <Form.Check type=\"checkbox\" id=\"performedByAdult\" label={t(\"registration.demographics.collectionPerformedByAdult\")}\r\n          checked={formik.values.performedByAdult}\r\n          onChange={formik.handleChange} />\r\n        {!!formik.errors.performedByAdult && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{formik.errors.performedByAdult}</Form.Control.Feedback>}\r\n      </Col>\r\n    </Row>}\r\n    {!wellness && <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <span>*</span>&nbsp;{t(\"registration.demographics.stateRequiredInformation\")}\r\n      </Col>\r\n    </Row>}\r\n    {showMessage && message.current && <MessageModal message={message.current} onHide={() => setShowMessage(false)} />}\r\n  </Form >\r\n}\r\n","import React, { useEffect, useState } from \"react\"\r\nimport { Spinner } from \"react-bootstrap\"\r\nimport { toast } from \"react-toastify\"\r\nimport Country from \"../../api/models/Country\"\r\nimport BarcodeResponse from \"../../api/models/registration/BarcodeResponse\"\r\nimport DemographicsConfigurationResponse from \"../../api/models/registration/DemographicsConfigurationResponse\"\r\nimport DemographicsDonorData from \"../../api/models/registration/DemographicsDonorData\"\r\nimport DonorData from \"../../api/models/registration/DonorData\"\r\nimport EmployeeResponse from \"../../api/models/registration/EmployeeResponse\"\r\nimport { BLUESTONE, Implementation } from \"../../api/models/registration/Implementation\"\r\nimport InsuranceDonorData from \"../../api/models/registration/InsuranceDonorData\"\r\nimport VerifyResponse from \"../../api/models/registration/VerifyResponse\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { getConfiguration, getDonorData } from \"../../api/Registration\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\nimport DonorForm from \"./DonorForm\"\r\n\r\nexport interface DonorProps {\r\n  implementation?: Implementation\r\n  barcode: BarcodeResponse\r\n  onSubmit: (donor: DemographicsDonorData) => void\r\n  submitting: boolean\r\n  verifyResponse?: VerifyResponse\r\n  employeeResponse?: EmployeeResponse\r\n  employeeIdCancelled: boolean\r\n  dateOfBirth?: string\r\n  mobile?: string\r\n  countries: Country[]\r\n}\r\n\r\nconst emptyInsuranceDonorData: InsuranceDonorData = {\r\n  planId: -1,\r\n  otherPlanName: undefined,\r\n  policyGroup: undefined,\r\n  policyIdNumber: undefined,\r\n  name: undefined,\r\n  address: undefined,\r\n  city: undefined,\r\n  stateCodeId: 0,\r\n  zip: undefined,\r\n  phone: undefined,\r\n  relationshipId: 0,\r\n  useInsuranceOtherForPrePopulation: false\r\n}\r\n\r\nconst emptyDonorData: DonorData = {\r\n  firstName: undefined,\r\n  lastName: undefined,\r\n  address1: undefined,\r\n  address2: undefined,\r\n  city: undefined,\r\n  stateCodeId: 0,\r\n  zip: undefined,\r\n  employeeId: undefined,\r\n  countryAbbreviation: undefined,\r\n  mobile: undefined,\r\n  phoneCode: undefined,\r\n  acceptTextMessages: true,\r\n  email: undefined,\r\n  dateOfBirth: undefined,\r\n  genderId: 0,\r\n  genderIdentityId: 0,\r\n  sexualOrientationId: 0,\r\n  raceId: 0,\r\n  ethnicityId: 0,\r\n  guardianRelationshipId: 0,\r\n  guardianCountryAbbreviation: undefined,\r\n  guardianPhone: undefined,\r\n  guardianPhoneCode: undefined,\r\n  guardianFirstName: undefined,\r\n  guardianLastName: undefined\r\n}\r\n\r\nexport default function Donor(props: DonorProps) {\r\n  const [translationRef] = useTranslationWithRef()\r\n\r\n  const [loading, setLoading] = useState<boolean>(!!props.verifyResponse)\r\n  const [loadingConfiguration, setLoadingConfiguration] = useState<boolean>(true)\r\n  const [donorData, setDonorData] = useState<DonorData | undefined>(undefined)\r\n  const [configuration, setConfiguration] = useState<DemographicsConfigurationResponse | undefined>(undefined)\r\n\r\n  useEffect(() => {\r\n    if (!props.verifyResponse) {\r\n      return\r\n    }\r\n\r\n    const { donorId, donorHash } = props.verifyResponse\r\n    const { displayInsuranceSection } = props.barcode\r\n\r\n    const subscription = getDonorData({ donorId, donorHash, displayInsuranceSection }).subscribe({\r\n      next: (result: DonorData) => {\r\n        const insurance = { ...emptyInsuranceDonorData, ...result.insurance }\r\n        setDonorData({ ...emptyDonorData, ...result, insurance })\r\n        setLoading(false)\r\n      },\r\n      error: (e: APIError) => {\r\n        setLoading(false)\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [props.verifyResponse, props.barcode, translationRef])\r\n\r\n  useEffect(() => {\r\n    const subscription = getConfiguration({ account: props.barcode.account }).subscribe({\r\n      next: (result) => {\r\n        setLoadingConfiguration(false)\r\n        setConfiguration(result)\r\n      },\r\n      error: (e: APIError) => {\r\n        setLoadingConfiguration(false)\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n\r\n    return () => subscription.unsubscribe()\r\n  }, [props.barcode, translationRef])\r\n\r\n  const disableEmployeeId = props.barcode.displayEmployeeId && props.barcode.requireEmployeeId && !props.employeeIdCancelled\r\n  const bluestone = props.implementation === BLUESTONE\r\n\r\n  return <>\r\n    {(loading || loadingConfiguration) && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n    {!loading && configuration &&\r\n      <DonorForm donorData={donorData || { ...emptyDonorData, employeeId: props.employeeResponse?.employeeId, mobile: props.mobile, dateOfBirth: props.dateOfBirth, insurance: { ...emptyInsuranceDonorData } }}\r\n        verified={!!props.verifyResponse} implementation={props.implementation} configuration={configuration}\r\n        displayEmployeeId={props.barcode.displayEmployeeId} employeeIdLabel={props.barcode.employeeIdLabel} disableEmployeeId={disableEmployeeId && !bluestone}\r\n        requireEmployeeId={props.barcode.employeeIdRequired || bluestone}\r\n        needToSpecifyEmployeeType={props.barcode.needToSpecifyEmployeeType} barcodeType={props.barcode.barcodeType}\r\n        displayInsuranceSection={props.barcode.displayInsuranceSection}\r\n        onSubmit={props.onSubmit} countries={props.countries} />}\r\n  </>\r\n}","import React, { useEffect, useReducer, useRef, useState } from \"react\"\r\nimport { Button, Col, Row, Spinner } from \"react-bootstrap\"\r\nimport { searchEmployee, verifyEmployee } from \"../../api/Registration\"\r\nimport Employee from \"./Employee\"\r\nimport EmployeeRequest from \"../../api/models/registration/EmployeeRequest\"\r\nimport { toast } from \"react-toastify\"\r\nimport BarcodeResponse from \"../../api/models/registration/BarcodeResponse\"\r\nimport { Implementation } from \"../../api/models/registration/Implementation\"\r\nimport Verification from \"./Verification\"\r\nimport VerifyResponse from \"../../api/models/registration/VerifyResponse\"\r\nimport Donor from \"./Donor\"\r\nimport EmployeeResponse from \"../../api/models/registration/EmployeeResponse\"\r\nimport DemographicsDonorData from \"../../api/models/registration/DemographicsDonorData\"\r\nimport UnableFindEmployeeIdModal from \"./Modals/UnableFindEmployeeIdModal\"\r\nimport { useHistory } from \"react-router\"\r\nimport { AppRoute } from \"../../AppRoute\"\r\nimport MessageModal, { MessageType } from \"./Modals/MessageModal\"\r\nimport EscapePhoneNumber from \"../../formatters/EscapePhoneNumber\"\r\nimport DataLoader from \"../DataLoader\"\r\nimport Country from \"../../api/models/Country\"\r\nimport { getCountries } from \"../../api/Countries\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\nimport { FormatToLocalDateString } from \"../../formatters/FormatLocalISODateString\"\r\n\r\nenum DemographicsStep {\r\n  Employee,\r\n  Verification,\r\n  Demographics\r\n}\r\n\r\ninterface DemographicsStepProps {\r\n  title?: string\r\n  onPrev: () => void\r\n  onNext: (donor: DemographicsDonorData) => void\r\n  implementation?: Implementation\r\n  barcode: BarcodeResponse\r\n  submitting: boolean\r\n}\r\n\r\nconst MAX_EMPLOYEE_NUMBER_ATTEMPTS = 4\r\n\r\nexport default function Demographics(props: DemographicsStepProps) {\r\n  const [transaltionRef, t] = useTranslationWithRef()\r\n  const history = useHistory()\r\n  const [currentStep, setCurrentStep] = useState<DemographicsStep>(props.barcode.donorId ? DemographicsStep.Demographics : DemographicsStep.Employee)\r\n  const [submitting, setSubmitting] = useState<boolean>(false)\r\n  const employeeRequestRef = useRef<EmployeeRequest | undefined>(undefined)\r\n  const employeeResponseRef = useRef<EmployeeResponse | undefined>(undefined)\r\n  const verifyResponseRef = useRef<VerifyResponse | undefined>(props.barcode.donorId ? ({ donorId: props.barcode.donorId!, donorHash: props.barcode.donorHash! }) : undefined)\r\n  const attempts = useRef<number>(0)\r\n  const [showUnableFindEmployeeId, setShowUnableFindEmployeeId] = useState<boolean>(false)\r\n  const [showInvalidEmployeeId, setShowInvalidEmployeeId] = useState<boolean>(false)\r\n  const employeeIdCancelled = useRef<boolean>(false)\r\n  const [countries, setCountries] = useReducer((state: DataLoader<Country>, newState: Partial<DataLoader<Country>>) => ({ ...state, ...newState }), { loading: true, loaded: false, data: [] })\r\n\r\n  useEffect(() => {\r\n    const subscription = getCountries().subscribe({\r\n      next: (result: Country[]) => {\r\n        setCountries({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setCountries({ loading: false })\r\n        toast.error(transaltionRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [transaltionRef])\r\n\r\n  const handleEmployeeSubmit = (employeeRequest: EmployeeRequest) => {\r\n    if (submitting) {\r\n      return\r\n    }\r\n\r\n    setSubmitting(true)\r\n    employeeRequestRef.current = employeeRequest\r\n\r\n    searchEmployee(employeeRequest).subscribe({\r\n      next: (result) => {\r\n        setSubmitting(false)\r\n        if (result.skipVerification) {\r\n          if (props.barcode.requireEmployeeId && !result.employeeId) {\r\n            attempts.current = attempts.current + 1\r\n            if (attempts.current >= MAX_EMPLOYEE_NUMBER_ATTEMPTS) {\r\n              return setShowUnableFindEmployeeId(true)\r\n            }\r\n            return setShowInvalidEmployeeId(true)\r\n          }\r\n          setCurrentStep(DemographicsStep.Demographics)\r\n        } else {\r\n          setCurrentStep(DemographicsStep.Verification)\r\n        }\r\n      },\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  const handleCodeSubmit = (code: string) => {\r\n    setSubmitting(true)\r\n\r\n    const { countryAbbreviation, mobileNumber, dateOfBirth, employeeId } = employeeRequestRef.current!\r\n\r\n    verifyEmployee({ countryAbbreviation, mobileNumber, dateOfBirth, employeeId, verificationCode: code }).subscribe({\r\n      next: (result) => {\r\n        setSubmitting(false)\r\n        if (result) {\r\n          verifyResponseRef.current = result\r\n          setCurrentStep(DemographicsStep.Demographics)\r\n        }\r\n      },\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  const handleCodeSkip = () => {\r\n    setCurrentStep(DemographicsStep.Demographics)\r\n  }\r\n\r\n  const handleCodeResend = () => {\r\n    if (employeeRequestRef.current) {\r\n      handleEmployeeSubmit(employeeRequestRef.current)\r\n    }\r\n  }\r\n\r\n  const handleDonorSubmit = (donor: DemographicsDonorData) => {\r\n    if (donor.insurance?.planId === -1) {\r\n      donor.insurance = undefined\r\n    }\r\n    donor.requireEmployeeId = props.barcode.requireEmployeeId\r\n    donor.employeeIdCancelled = employeeIdCancelled.current\r\n    donor.mobile = EscapePhoneNumber(donor.mobile ?? \"\")\r\n    donor.guardianPhone = EscapePhoneNumber(donor.guardianPhone ?? \"\")\r\n    if (donor.insurance) {\r\n      donor.insurance.phone = EscapePhoneNumber(donor.insurance.phone ?? \"\")\r\n    }\r\n\r\n\r\n    props.onNext(donor)\r\n  }\r\n\r\n  const handleUnableFindEmployeeIdNoResponse = () => {\r\n    history.push(AppRoute.Results)\r\n  }\r\n\r\n  const handleUnableFindEmployeeIdYesResponse = () => {\r\n    setShowUnableFindEmployeeId(false)\r\n    employeeIdCancelled.current = true\r\n    setCurrentStep(DemographicsStep.Demographics)\r\n  }\r\n\r\n  const loading = countries.loading\r\n  const processing = submitting || props.submitting\r\n\r\n  return (\r\n    <>\r\n      <Row>\r\n        <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n      </Row>\r\n      {loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      {!loading && currentStep === DemographicsStep.Employee &&\r\n        <Employee requireEmployeeId={props.barcode.requireEmployeeId} implementation={props.implementation}\r\n          onSubmit={handleEmployeeSubmit} submitting={false} countries={countries.data} />}\r\n      {!loading && currentStep === DemographicsStep.Verification && <Verification onSubmit={handleCodeSubmit} submitting={submitting} onCodeSkip={handleCodeSkip} onCodeResend={handleCodeResend} />}\r\n      {!loading && currentStep === DemographicsStep.Demographics && <Donor onSubmit={handleDonorSubmit} submitting={submitting} countries={countries.data}\r\n        dateOfBirth={FormatToLocalDateString(employeeRequestRef.current?.dateOfBirth)}\r\n        mobile={employeeRequestRef.current?.mobileNumber}\r\n        implementation={props.implementation} barcode={props.barcode} employeeIdCancelled={employeeIdCancelled.current}\r\n        verifyResponse={verifyResponseRef.current} employeeResponse={employeeResponseRef.current} />}\r\n      {!loading && currentStep !== DemographicsStep.Verification && <div className=\"px-0 my-2\">\r\n        <Button variant=\"secondary\" onClick={() => props.onPrev && props.onPrev()}>{t(\"registration.button.back\")}</Button>&nbsp;\r\n        <Button variant=\"primary\" type=\"submit\" form={(currentStep === DemographicsStep.Employee) ? \"employeeForm\" : \"donorForm\"} disabled={processing}>\r\n          {processing && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n          <span>{t(\"registration.button.next\")}</span>\r\n        </Button>\r\n      </div>}\r\n      {showUnableFindEmployeeId && <UnableFindEmployeeIdModal onNo={handleUnableFindEmployeeIdNoResponse} onYes={handleUnableFindEmployeeIdYesResponse} />}\r\n      {showInvalidEmployeeId && <MessageModal onHide={() => setShowInvalidEmployeeId(false)}\r\n        message={{ body: t(\"registration.employee.invalidEmployeeId\"), type: MessageType.Text }} />}\r\n    </>\r\n  )\r\n}\r\n","import React from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nexport interface UnableFindEmployeeIdModalProps {\r\n  onNo: () => void\r\n  onYes: () => void\r\n}\r\n\r\nexport default function UnableFindEmployeeIdModal(props: UnableFindEmployeeIdModalProps) {\r\n  const { t } = useTranslation()\r\n  const { onNo, onYes } = props\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\" onHide={onNo}>\r\n      <Modal.Header closeButton />\r\n      <Modal.Body>\r\n        {t(\"registration.employee.unableToFindYourEmployeeID\")}\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={onNo} variant=\"secondary\">{t(\"registration.button.no\")}</Button>\r\n        <Button onClick={onYes} variant=\"primary\">{t(\"registration.button.yes\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","import React from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport interface AccountCustomMessageProps {\r\n  message: string\r\n  onNext: () => void\r\n}\r\n\r\nexport default function AccountCustomMessage(props: AccountCustomMessageProps) {\r\n  const { t } = useTranslation()\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\">\r\n      <Modal.Body>\r\n        <div dangerouslySetInnerHTML={{ __html: sanitize(props.message) }} />\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={props.onNext}>{t(\"registration.button.next\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","import React from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport AccountMessage from \"../../../api/models/registration/AccountMessage\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport interface AccountMessageModalProps {\r\n  accountMessage: AccountMessage\r\n  onHide: () => void\r\n}\r\n\r\nexport default function AccountMessageModal(props: AccountMessageModalProps) {\r\n  const { t } = useTranslation()\r\n  const { accountMessage, onHide } = props\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\" onHide={onHide}>\r\n      <Modal.Header closeButton>\r\n        {accountMessage.title && <Modal.Title>{accountMessage.title}</Modal.Title>}\r\n      </Modal.Header>\r\n      <Modal.Body>\r\n        <div dangerouslySetInnerHTML={{ __html: sanitize(accountMessage.body ?? \"\") }} />\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={onHide}>{t(\"registration.button.close\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","import React from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport interface ExpiredBarcodeProps {\r\n  onHide: () => void\r\n}\r\n\r\nexport default function ExpiredBarcode(props: ExpiredBarcodeProps) {\r\n  const { t } = useTranslation()\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\" onHide={props.onHide}>\r\n      <Modal.Header closeButton>\r\n        <Modal.Title>{t(\"registration.barcode.expired.title\")}</Modal.Title>\r\n      </Modal.Header>\r\n      <Modal.Body>\r\n        <div dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.barcode.expired.body\", { link: \"https://order.crlcorp.com/\" })) }} />\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={props.onHide}>{t(\"registration.button.ok\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","import { useFormikContext } from \"formik\"\r\nimport React, { useState } from \"react\"\r\nimport { Button, Col, Form, Modal, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport PhysicalMeasurements from \"../../api/models/registration/PhysicalMeasurements\"\r\n\r\nexport const HeightRange = [48, 96]\r\nexport const WeightRange = [80, 450]\r\nexport const SystolicRange = [0, 139]\r\nexport const DiastolicRange = [61, 89]\r\n\r\nexport type PhysicalMeasurementsWithConfirmation = PhysicalMeasurements & {\r\n  heightConfirmed: boolean\r\n  weightConfirmed: boolean\r\n  bloodPressureConfirmed: boolean\r\n}\r\n\r\nexport default function PhysicalMeasurementsForm() {\r\n  const { t } = useTranslation()\r\n  const { values, errors, touched, handleChange, handleBlur, setFieldValue, setFieldTouched } = useFormikContext<PhysicalMeasurementsWithConfirmation>()\r\n  const [displayHeigthConfirmed, setDisplayHeigthConfirmed] = useState<boolean>(false)\r\n  const [displayWeigthConfirmed, setDisplayWeigthConfirmed] = useState<boolean>(false)\r\n  const [displayBloodPressureConfirmed, setDisplayBloodPressureConfirmed] = useState<boolean>(false)\r\n  const [showConfirmation, setShowConfirmation] = useState<boolean>(false)\r\n  const [confirmationMessage, setConfirmationMessage] = useState<string[]>([])\r\n\r\n  const handleNumberChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    var value = e.target.value\r\n    if (value === \"\") {\r\n      setFieldValue(e.target.id, \"\")\r\n      return\r\n    }\r\n    if (/^[0-9]*$/.test(value)) {\r\n      setFieldValue(e.target.id, +value)\r\n    }\r\n    setFieldValue(`${e.target.id}Confirmed`, false)\r\n  }\r\n\r\n  const handleBloodPressureChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n    var value = e.target.value\r\n    if (/^[0-9/]*$/.test(value)) {\r\n      setFieldValue(e.target.id, value)\r\n    }\r\n    setFieldValue(\"bloodPressureConfirmed\", false)\r\n  }\r\n\r\n  const formattedValue = (value?: number) => {\r\n    if (value === 0) {\r\n      return value\r\n    }\r\n    return value || \"\"\r\n  }\r\n\r\n  const validateHeight = (value: string) => {\r\n    let displayConfirm = false\r\n    if (value !== \"\") {\r\n      const intValue = +value\r\n      if (intValue < HeightRange[0] || intValue > HeightRange[1]) {\r\n        displayConfirm = true\r\n      }\r\n    }\r\n    if (displayConfirm && !displayHeigthConfirmed) {\r\n      setFieldValue(\"heightConfirmed\", false)\r\n      setConfirmationMessage([t(\"registration.measurements.heightConfirmation\", { from: HeightRange[0], to: HeightRange[1] })])\r\n      setShowConfirmation(true)\r\n    }\r\n    setDisplayHeigthConfirmed(displayConfirm)\r\n  }\r\n\r\n  const handleHeightBlur = (e: React.FocusEvent<HTMLInputElement>) => {\r\n    setFieldTouched(e.target.id, true)\r\n    validateHeight(e.target.value ?? \"\")\r\n  }\r\n\r\n  const validateWeight = (value: string) => {\r\n    let displayConfirm = false\r\n    if (value !== \"\") {\r\n      const intValue = +value\r\n      if (intValue < WeightRange[0] || intValue > WeightRange[1]) {\r\n        displayConfirm = true\r\n      }\r\n    }\r\n    if (displayConfirm && !displayWeigthConfirmed) {\r\n      setFieldValue(\"weightConfirmed\", false)\r\n      setConfirmationMessage([t(\"registration.measurements.weightConfirmation\", { from: WeightRange[0], to: WeightRange[1] })])\r\n      setShowConfirmation(true)\r\n    }\r\n    setDisplayWeigthConfirmed(displayConfirm)\r\n  }\r\n\r\n  const handleWeightBlur = (e: React.FocusEvent<HTMLInputElement>) => {\r\n    setFieldTouched(e.target.id, true)\r\n    validateWeight(e.target.value ?? \"\")\r\n  }\r\n\r\n  const validateBloodPressure = (value: string) => {\r\n    setFieldTouched(\"bloodPressure\", true)\r\n    let displayConfirm = false\r\n    const messages: string[] = []\r\n    if (value !== \"\") {\r\n      const groups = /^(\\d{1,3})\\/(\\d{1,3})$/.exec(value ?? \"\")\r\n      if (groups && groups.length === 3) {\r\n        const systolic = +groups![1]\r\n        const diastolic = +groups![2]\r\n\r\n        if (systolic < SystolicRange[0] || systolic > SystolicRange[1]) {\r\n          displayConfirm = true\r\n          messages.push(t(\"registration.measurements.systolicConfirmation\", { from: SystolicRange[0], to: SystolicRange[1] }))\r\n        }\r\n\r\n        if (diastolic < DiastolicRange[0] || diastolic > DiastolicRange[1]) {\r\n          displayConfirm = true\r\n          messages.push(t(\"registration.measurements.diastolicConfirmation\", { from: DiastolicRange[0], to: DiastolicRange[1] }))\r\n        }\r\n      }\r\n    }\r\n    if (displayConfirm && !displayBloodPressureConfirmed) {\r\n      setFieldValue(\"bloodPressureConfirmed\", false)\r\n      setConfirmationMessage(messages)\r\n      setShowConfirmation(true)\r\n    }\r\n    setDisplayBloodPressureConfirmed(displayConfirm)\r\n  }\r\n\r\n  const handleBloodPressureBlur = (e: React.FocusEvent<HTMLInputElement>) => {\r\n    validateBloodPressure(e.target.value ?? \"\")\r\n    setFieldTouched(\"bloodPressure\", true)\r\n  }\r\n\r\n  const handleHeightKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n    if (e.key === \"Enter\") {\r\n      validateHeight(values.height?.toString() ?? \"\")\r\n    }\r\n  }\r\n\r\n  const handleWeightKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n    if (e.key === \"Enter\") {\r\n      validateWeight(values.weight?.toString() ?? \"\")\r\n    }\r\n  }\r\n\r\n  const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n    if (e.key === \"Enter\") {\r\n      validateBloodPressure(values.bloodPressure ?? \"\")\r\n    }\r\n  }\r\n\r\n  return <>\r\n    <h5 className=\"my-3\">{t(\"registration.measurements.title\")}</h5>\r\n    <Form.Group as={Row} className=\"my-3\" controlId=\"height\">\r\n      <Col xs={6} md={5} lg={4} >\r\n        <Form.Label className=\"col-form-label\">{t(\"registration.measurements.height\")}</Form.Label></Col>\r\n      <Col className=\"col-auto\" >\r\n        <Form.Control type=\"text\" inputMode=\"numeric\" value={formattedValue(values.height)} maxLength={2}\r\n          onChange={handleNumberChange} onBlur={handleHeightBlur} onKeyDown={handleHeightKeyDown}\r\n          isInvalid={!!errors.height && touched.height} />\r\n        <Form.Control.Feedback type=\"invalid\">{errors.height}</Form.Control.Feedback>\r\n        {displayHeigthConfirmed && <Form.Check label={t(\"registration.measurements.heightConfirmed\")}\r\n          checked={values.heightConfirmed}\r\n          className=\"\"\r\n          id=\"heightConfirmed\"\r\n          type=\"checkbox\"\r\n          onBlur={handleBlur} onChange={handleChange} />}\r\n      </Col>\r\n    </Form.Group>\r\n    <Form.Group as={Row} className=\"my-3\" controlId=\"weight\">\r\n      <Col xs={6} md={5} lg={4} >\r\n        <Form.Label className=\"col-form-label\">{t(\"registration.measurements.weight\")}</Form.Label></Col>\r\n      <Col className=\"col-auto\" >\r\n        <Form.Control type=\"text\" inputMode=\"numeric\" value={formattedValue(values.weight)} maxLength={3}\r\n          onChange={handleNumberChange} onBlur={handleWeightBlur} onKeyDown={handleWeightKeyDown}\r\n          isInvalid={!!errors.weight && touched.weight} />\r\n        <Form.Control.Feedback type=\"invalid\">{errors.weight}</Form.Control.Feedback>\r\n        {displayWeigthConfirmed && <Form.Check label={t(\"registration.measurements.weightConfirmed\")}\r\n          checked={values.weightConfirmed}\r\n          className=\"\"\r\n          id=\"weightConfirmed\"\r\n          type=\"checkbox\"\r\n          onBlur={handleBlur} onChange={handleChange} />}\r\n      </Col>\r\n    </Form.Group>\r\n    <Form.Group as={Row} className=\"my-3\" controlId=\"waistCircumference\">\r\n      <Col xs={6} md={5} lg={4} >\r\n        <Form.Label className=\"col-form-label\">{t(\"registration.measurements.waistCircumference\")}</Form.Label></Col>\r\n      <Col className=\"col-auto\" >\r\n        <Form.Control type=\"text\" inputMode=\"numeric\" value={formattedValue(values.waistCircumference)} maxLength={3} onChange={handleNumberChange} onBlur={handleBlur}\r\n          isInvalid={!!errors.waistCircumference && touched.waistCircumference} />\r\n        <Form.Control.Feedback type=\"invalid\">{errors.waistCircumference}</Form.Control.Feedback>\r\n      </Col>\r\n    </Form.Group>\r\n    <Form.Group as={Row} className=\"my-3\" controlId=\"bloodPressure\">\r\n      <Col xs={6} md={5} lg={4} >\r\n        <Form.Label className=\"col-form-label\">{t(\"registration.measurements.bloodPressure\")}</Form.Label></Col>\r\n      <Col className=\"col-auto\" >\r\n        <Form.Control type=\"text\" value={values.bloodPressure || \"\"} maxLength={10} onChange={handleBloodPressureChange} onBlur={handleBloodPressureBlur}\r\n          isInvalid={!!errors.bloodPressure && touched.bloodPressure} onKeyDown={handleKeyDown} />\r\n        <Form.Control.Feedback type=\"invalid\">{errors.bloodPressure}</Form.Control.Feedback>\r\n        {displayBloodPressureConfirmed && <Form.Check label={t(\"registration.measurements.bloodPressureConfirmed\")}\r\n          checked={values.bloodPressureConfirmed}\r\n          className=\"\"\r\n          id=\"bloodPressureConfirmed\"\r\n          type=\"checkbox\"\r\n          onBlur={handleBlur} onChange={handleChange} />}\r\n      </Col>\r\n    </Form.Group>\r\n    <Modal show={showConfirmation} centered size=\"lg\">\r\n      <Modal.Body>{confirmationMessage.map((message, index) => <p key={index}>{message}</p>)}</Modal.Body>\r\n      <Modal.Footer>\r\n        <Button variant=\"primary\" onClick={() => setShowConfirmation(false)}>{t(\"registration.button.ok\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport { ChangeEvent, useEffect, useState } from \"react\";\r\nimport { Button, Col, Form, Modal, Row, Spinner } from \"react-bootstrap\";\r\nimport { toast } from \"react-toastify\";\r\nimport { getQuestions } from \"../../api/Registration\";\r\nimport { APIError } from \"../../api/ObservableFromFetch\";\r\nimport QuestionResponse from \"../../api/models/registration/QuestionResponse\";\r\nimport QuestionAnswer from \"../../api/models/registration/QuestionAnswer\";\r\nimport { Implementation } from \"../../api/models/registration/Implementation\";\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\";\r\nimport { sanitize } from \"../../formatters/Sanitize\";\r\nimport PhysicalMeasurementsForm, { DiastolicRange, HeightRange, PhysicalMeasurementsWithConfirmation, SystolicRange, WeightRange } from \"./PhysicalMeasurementsForm\"\r\nimport PhysicalMeasurements from \"../../api/models/registration/PhysicalMeasurements\";\r\nimport { FormikProvider, useFormik } from \"formik\"\r\nimport * as Yup from \"yup\"\r\n\r\ninterface QuestionsProps {\r\n  title?: string\r\n  implementation?: Implementation\r\n  accountNumber?: string\r\n  testCode?: string\r\n  onNext: (answers: QuestionAnswer[], physicalMeasurements?: PhysicalMeasurements) => void\r\n  submitting: boolean\r\n  requireSymptomQuestions: boolean\r\n  displayPhysicalMeasurements: boolean\r\n}\r\n\r\nconst separator = (index: number) => <Row className=\"my-2\" key={`separator-${index}`}>\r\n  <Col xs={1} />\r\n  <Col md={5} sm={6} xs={10}><hr className=\"my-auto\" /></Col>\r\n  <Col md={6} sm={5} xs={1} />\r\n</Row>\r\n\r\ninterface ExtendedQuestionResponse extends QuestionResponse {\r\n  parentId?: number\r\n}\r\n\r\nexport default function Questions(props: QuestionsProps) {\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const [loading, setLoading] = useState(false)\r\n  const [recommendation, setRecommendation] = useState(\"\")\r\n  const [questions, setQuestions] = useState<ExtendedQuestionResponse[]>()\r\n  const [answers, setAnswers] = useState<QuestionAnswer[]>([])\r\n  const [displayPhysicalMeasurementsAnswer, setDisplayPhysicalMeasurementsAnswer] = useState<boolean | undefined>(undefined)\r\n\r\n  const { accountNumber, testCode, implementation, requireSymptomQuestions, displayPhysicalMeasurements } = props\r\n\r\n  useEffect(() => {\r\n    if (!requireSymptomQuestions) {\r\n      return\r\n    }\r\n\r\n    setLoading(true)\r\n    const subscription = getQuestions({ accountNumber, testCode, implementation }).subscribe({\r\n      next: (result: QuestionResponse[]) => {\r\n        var questions = result.map(question => {\r\n          const match = question.description.match(/data-parent-id='(\\d+)'/i)\r\n          const parentId = match ? +match[1] : undefined\r\n          return { ...question, parentId }\r\n        })\r\n        setQuestions(questions)\r\n        setAnswers(result.map(r => { return { id: r.id, answer: \"\" } }))\r\n        setLoading(false)\r\n      },\r\n      error: (e: APIError) => {\r\n        setLoading(false)\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [requireSymptomQuestions, accountNumber, testCode, implementation, translationRef])\r\n\r\n  function handleChange(e: ChangeEvent, question: QuestionResponse, on: boolean) {\r\n    const div = document.querySelector(`div[data-id=\"${question.id}\"]`) as HTMLElement | null\r\n    const text = div ? on ? div.dataset.recommendationYes : div.dataset.recommendationNo : null\r\n    setRecommendation(text ?? \"\")\r\n    const showVaccine = div?.dataset.vaccine === (on ? \"yes\" : \"no\")\r\n    const el = document.querySelector(`#question-${question.id}-option`) as HTMLInputElement | null\r\n    if (el) {\r\n      el.style.display = showVaccine ? \"\" : \"none\"\r\n    }\r\n\r\n    setAnswers(current => current.map(answer => {\r\n      if (answer.id === question.id) {\r\n        return { ...answer, answer: showVaccine ? el?.value ?? \"\" : on ? \"1\" : \"0\" }\r\n      }\r\n      return answer\r\n    })\r\n    )\r\n  }\r\n\r\n  function vaccineChange(e: ChangeEvent<HTMLSelectElement>, question: QuestionResponse) {\r\n    const vaccine = e.target.value\r\n    setAnswers(current => current.map(answer => {\r\n      if (answer.id === question.id) {\r\n        return { ...answer, answer: vaccine }\r\n      }\r\n      return answer\r\n    })\r\n    )\r\n  }\r\n\r\n  const displayQuestion = (question: ExtendedQuestionResponse) => {\r\n    if (!question.parentId) {\r\n      return true\r\n    }\r\n    var parentAnswer = answers.find(answer => answer.id === question.parentId)?.answer\r\n    if (parentAnswer && parentAnswer !== \"0\") {\r\n      return true\r\n    }\r\n    return false\r\n  }\r\n\r\n  const questionsAnswered = useMemo(() => {\r\n    if (displayPhysicalMeasurements && displayPhysicalMeasurementsAnswer === undefined) {\r\n      return false\r\n    }\r\n\r\n    return answers.every(answer => {\r\n      if (!!answer.answer) {\r\n        return true\r\n      }\r\n      var question = questions?.find(question => question.id === answer.id)\r\n      if (!question?.parentId) {\r\n        return false\r\n      }\r\n      var parentAnswer = answers.find(answer => answer.id === question?.parentId)?.answer\r\n      return !(parentAnswer && parentAnswer !== \"0\")\r\n    })\r\n  }, [answers, questions, displayPhysicalMeasurementsAnswer, displayPhysicalMeasurements])\r\n\r\n  const validationSchema = useMemo(() => {\r\n    const invalidValueMessage = t(\"shared.validation.invalidValue\")\r\n    return Yup.object().shape({\r\n      height: Yup.lazy((value) => (value === undefined || value === \"\") ? Yup.string().nullable() :\r\n        Yup.number().typeError(invalidValueMessage).min(0, invalidValueMessage).max(100, invalidValueMessage)\r\n          .test(\"height\", \" \", (value, context) => {\r\n            return context.parent.heightConfirmed || ((value ?? 0) >= HeightRange[0] && (value ?? 0) <= HeightRange[1])\r\n          })),\r\n      weight: Yup.lazy((value) => (value === undefined || value === \"\") ? Yup.string().nullable() :\r\n        Yup.number().typeError(invalidValueMessage).min(0, invalidValueMessage).max(1000, invalidValueMessage)\r\n          .test(\"weight\", \" \", (value, context) => {\r\n            return context.parent.weightConfirmed || ((value ?? 0) >= WeightRange[0] && (value ?? 0) <= WeightRange[1])\r\n          })),\r\n      waistCircumference: Yup.number().typeError(invalidValueMessage).min(0, invalidValueMessage).max(1000, invalidValueMessage),\r\n      bloodPressure: Yup.string().matches(/^\\d{1,3}\\/\\d{1,3}$/, invalidValueMessage)\r\n        .test(\"bloodPressure\", \" \", (value, context) => {\r\n          if (!value || context.parent.bloodPressureConfirmed) {\r\n            return true\r\n          }\r\n          const groups = /^(\\d{1,3})\\/(\\d{1,3})$/.exec(value ?? \"\")\r\n          if (groups?.length !== 3) {\r\n            return true\r\n          }\r\n          const systolic = +groups![1]\r\n          const diastolic = +groups![2]\r\n          if (systolic < SystolicRange[0] || systolic > SystolicRange[1]) {\r\n            return false\r\n          }\r\n\r\n          if (diastolic < DiastolicRange[0] || diastolic > DiastolicRange[1]) {\r\n            return false\r\n          }\r\n          return true\r\n        })\r\n    })\r\n  }, [t])\r\n\r\n  const formik = useFormik<PhysicalMeasurementsWithConfirmation>({\r\n    initialValues: { heightConfirmed: false, weightConfirmed: false, bloodPressureConfirmed: false },\r\n    validationSchema: validationSchema,\r\n    onSubmit: (values) => {\r\n      const { height, weight, waistCircumference, bloodPressure } = values\r\n      props.onNext(answers, { height, weight, waistCircumference, bloodPressure })\r\n    }\r\n  })\r\n\r\n  const handlePhysicalMeasurementQuestionYes = () => {\r\n    setDisplayPhysicalMeasurementsAnswer(true)\r\n  }\r\n\r\n  const handlePhysicalMeasurementQuestionNo = () => {\r\n    setDisplayPhysicalMeasurementsAnswer(false)\r\n    formik.resetForm()\r\n  }\r\n\r\n  return (\r\n    <FormikProvider value={formik}>\r\n      <Form id=\"questionsForm\" onSubmit={formik.handleSubmit}>\r\n        <Row key=\"header\">\r\n          <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n        </Row>\r\n        {loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n        {requireSymptomQuestions && <Row className=\"my-3\"><Col>{t(\"registration.questions.haveYouHadAnyOfTheFollowingSymptoms\")}</Col></Row>}\r\n        {!loading && questions && questions.map((question, index) => <div key={index} className={displayQuestion(question) ? \"\" : \"d-none\"}>\r\n          {index > 0 && separator(index)}\r\n          <Row key={`row-${question.id}`}>\r\n            <Col lg={5} md={5} sm={6} className=\"mt-1\">\r\n              <div dangerouslySetInnerHTML={{ __html: sanitize(question.description) }} />\r\n            </Col>\r\n            <Col sm={6}>\r\n              <Form.Check key={`question-${question.id}-yes`} inline type=\"radio\" name={`question-${question.id}`} radioGroup={`question-${question.id}`} id={`question-${question.id}-yes`} label={t(\"yes\")} onChange={(e) => handleChange(e, question, true)} />\r\n              <Form.Check key={`question-${question.id}-no`} inline type=\"radio\" name={`question-${question.id}`} radioGroup={`question-${question.id}`} id={`question-${question.id}-no`} label={t(\"no\")} onChange={(e) => handleChange(e, question, false)} />\r\n              <select id={`question-${question.id}-option`} name={`question-${question.id}-option`} required={false} style={{ display: \"none\" }} onChange={(e) => vaccineChange(e, question)}>\r\n                <option disabled={true} value=\"\">--- Please select vaccine ---</option>\r\n                <option value=\"Pfizer-BioNTech\">Pfizer-BioNTech</option>\r\n                <option value=\"Moderna\">Moderna</option>\r\n                <option value=\"Janssen (Johnson &amp; Johnson)\">Janssen (Johnson &amp; Johnson)</option>\r\n                <option value=\"Other\">Other</option>\r\n              </select>\r\n            </Col>\r\n          </Row>\r\n        </div>)}\r\n        {displayPhysicalMeasurements && <Row className=\"mt-3\">\r\n          <Col sm={6} md={5} >{t(\"registration.measurements.question\")}</Col>\r\n          <Col>\r\n            <Form.Check inline type=\"radio\" name=\"question-physical-measurements\" id=\"question-physical-measurements-yes\"\r\n              label={t(\"yes\")} onChange={handlePhysicalMeasurementQuestionYes} />\r\n            <Form.Check inline type=\"radio\" name=\"question-physical-measurements\" id=\"question-physical-measurements-no\"\r\n              label={t(\"no\")} onChange={handlePhysicalMeasurementQuestionNo} />\r\n          </Col>\r\n        </Row>}\r\n        {displayPhysicalMeasurementsAnswer && <PhysicalMeasurementsForm />}\r\n\r\n        <div className=\"px-0 my-2\">\r\n          <Button variant=\"primary\" type=\"submit\" form=\"questionsForm\" disabled={!questionsAnswered || loading || props.submitting} >\r\n            {props.submitting && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n            <span>{t(\"registration.button.next\")}</span>\r\n          </Button>\r\n        </div>\r\n        <Modal show={!!recommendation} variant=\"info\">\r\n          <Modal.Body>{recommendation}</Modal.Body>\r\n          <Modal.Footer>\r\n            <Button variant=\"primary\" onClick={() => setRecommendation(\"\")}>OK</Button>\r\n          </Modal.Footer>\r\n        </Modal>\r\n      </Form>\r\n    </FormikProvider>\r\n  )\r\n}\r\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport enum StepType {\r\n  Unknown = \"unknown\",\r\n  Barcode = \"barcode\",\r\n  Consent = \"consent\",\r\n  ///Employee = 3,\r\n  //Verification = 4,\r\n  EmployeeID = \"employeeId\",\r\n  Demographics = \"demographics\",\r\n  Questions = \"questions\",\r\n  Instruction = \"instruction\",\r\n  Shipping = \"shipping\",\r\n  Finish = \"finish\"\r\n}\r\n\r\nexport interface Step {\r\n  current?: boolean\r\n  done?: boolean\r\n  enabled?: boolean\r\n  number: number\r\n  type: StepType\r\n}\r\n\r\nexport interface StepIndicationProps {\r\n  steps: Step[]\r\n  implemenation?: string\r\n}\r\n\r\nexport default function StepIndication(props: StepIndicationProps) {\r\n  const { t } = useTranslation()\r\n\r\n  return (\r\n    <>\r\n      <div className=\"text-center\">\r\n        <div className=\"steps clearfix d-inline-block\">\r\n          {props.steps.filter(t => t.enabled && t.type !== StepType.Finish).map((item: Step) =>\r\n            <div key={`step_${item.type}`} className={`step ${item.done ? \"done\" : item.current ? \"current\" : \"\"}`}>\r\n              <span>{item.number}.&nbsp;{t([`registration.step.${item.type}_${props.implemenation}`, `registration.step.${item.type}`])}</span>\r\n            </div>\r\n          )}\r\n        </div>\r\n      </div>\r\n    </>\r\n  )\r\n}\r\n","import * as React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Button, Col, Row, Spinner } from \"react-bootstrap\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nimport { getInstructions } from \"../../api/Registration\";\r\nimport { APIError } from \"../../api/ObservableFromFetch\";\r\nimport { StepProps } from \"./Barcode\";\r\nimport InstructionResponse from \"../../api/models/registration/InstructionResponse\";\r\nimport InstructionModel from \"../../api/models/registration/Instruction\";\r\nimport { sanitize } from \"../../formatters/Sanitize\";\r\n\r\ninterface InstructionProps extends StepProps {\r\n  stepNumber: number\r\n  collectionType?: string\r\n  implementation?: string\r\n}\r\n\r\nexport default function Instruction(props: InstructionProps) {\r\n  const { t } = useTranslation()\r\n  const [loading, setLoading] = useState(true)\r\n  const [instructions, setInstructions] = useState<InstructionModel[]>([])\r\n  const [video, setVideo] = useState<string | undefined>(undefined)\r\n  const [currentStep, setCurrentStep] = useState<number>(1)\r\n  const [showInstructions, setShowInstructions] = useState(false)\r\n  const [showVideo, setShowVideo] = useState<boolean>(false)\r\n\r\n  const { collectionType, implementation } = props\r\n\r\n  useEffect(() => {\r\n    const subscription = getInstructions({ collectionType, implementation }).subscribe({\r\n      next: (result: InstructionResponse) => {\r\n        setInstructions(result.instructions)\r\n        setVideo(result.video)\r\n        setLoading(false)\r\n      },\r\n      error: (e: APIError) => {\r\n        setLoading(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n    return () => subscription.unsubscribe()\r\n  }, [collectionType, implementation])\r\n\r\n  const steps = instructions.filter(i => i.step === currentStep)\r\n  const finalStep = Math.max(...instructions.map(i => i.step))\r\n\r\n  const handleVideoClick = () => {\r\n    setShowVideo((prev) => !prev)\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <Row>\r\n        <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n      </Row>\r\n      {loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"mx-1\" />}\r\n      <Row>\r\n        <Col sm={12}>\r\n          <div className=\"d-flex justify-content-center instruction-steps\">\r\n            {instructions.filter(i => i.headerRow).map((i, index) =>\r\n              <div key={`header-step-${index}`} className=\"px-3\">\r\n                <div className={`step ${currentStep === i.step ? \"current\" : currentStep > i.step ? \"done\" : \"\"}`} data-step={index + 1}>{props.stepNumber}{String.fromCharCode(65 + index)}</div>\r\n                <div style={{ display: \"table-cell\" }}>{i.header}</div>\r\n              </div>\r\n            )}\r\n            {!loading && instructions.length === 0 && <div className=\"text-primary h5 m-5 text-center\">\r\n              <p>{t(\"registration.instructions.followSteps\")}</p>\r\n              <p>{t(\"registration.instructions.whenCompleted\")}</p>\r\n            </div>}\r\n          </div>\r\n          {steps.map(s => <div key={`step-${s.instructionId}`} className=\"m-1\">\r\n            <Row className=\"mt-05\">\r\n              <Col className={`${s.headerRow ? \"text-primary\" : \"ps-5\"}`}><div dangerouslySetInnerHTML={{ __html: sanitize(s.body) }} /></Col>\r\n              <Col md={4} sm={5}>{s.image && <img src={s.image.replace(\"~\", \"\")} alt=\"instruction\" />}</Col>\r\n            </Row>\r\n          </div>)}\r\n        </Col>\r\n      </Row>\r\n      {showVideo && <Row>\r\n        <Col lg={10} className=\"text-center\">\r\n          <div className=\"video-container\">\r\n            <iframe className=\"youtube-video\" title=\"player\"\r\n              width=\"100%\" height=\"100%\" src={`${video}?enablejsapi=1`}\r\n              allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowFullScreen frameBorder={0} />\r\n          </div>\r\n        </Col>\r\n      </Row>}\r\n      {!loading && <Row>\r\n        <Col sm={3} className=\"my-3\">\r\n          {video && <Button onClick={handleVideoClick}>{t(\"registration.button.watchVideo\")}</Button>}\r\n        </Col>\r\n        <Col sm={6} className=\"text-center px-0 my-3\">\r\n          {currentStep > 1 && <Button className=\"mx-2\" onClick={() => setCurrentStep(currentStep - 1)}>{t(\"registration.button.back\")}</Button>}\r\n          {currentStep < finalStep && <Button className=\"mx-2\" onClick={() => setCurrentStep(currentStep + 1)}>{t(\"registration.button.continue\")}</Button>}\r\n          {currentStep === finalStep && <Button variant=\"primary\" type=\"submit\" onClick={() => props.onNext && props.onNext()}>{t(\"registration.button.next\")}</Button>}\r\n          {instructions.length === 0 && <Button variant=\"primary\" type=\"submit\" onClick={() => props.onNext && props.onNext()}>{t(\"registration.button.continue\")}</Button>}\r\n        </Col>\r\n        {instructions.length !== 0 &&\r\n          <Col sm={3} className=\"my-3\"><Button onClick={() => setShowInstructions(!showInstructions)}>{t(\"registration.button.instructions\")}</Button></Col>}\r\n      </Row>}\r\n      {showInstructions && <Row>\r\n        <Col className=\"my-3\">\r\n          {instructions.map(s => <div key={`instruction-${s.instructionId}`} className=\"m-1\">\r\n            <Row className=\"mt-05\">\r\n              <Col className={`${s.headerRow ? \"text-primary\" : \"ps-5\"}`}><div dangerouslySetInnerHTML={{ __html: sanitize(s.body) }} /></Col>\r\n            </Row>\r\n          </div>)}\r\n          <Button variant=\"primary\" type=\"submit\" onClick={() => props.onNext && props.onNext()}>{t(\"registration.button.next\")}</Button>\r\n        </Col>\r\n      </Row>}\r\n    </>\r\n  )\r\n}\r\n","import React from \"react\"\r\nimport { Button, Modal } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nexport interface UnsupportedStateModalProps {\r\n  onHide: () => void\r\n}\r\n\r\nexport default function UnsupportedStateModal(props: UnsupportedStateModalProps) {\r\n  const { t } = useTranslation()\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\" onHide={props.onHide}>\r\n      <Modal.Body>\r\n        <h3>{t(\"registration.demographics.unsupportedState\")}</h3>\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={props.onHide}>{t(\"registration.button.close\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","export const DBS = \"DBS\"\r\nexport const SALIVA = \"SALIVA\"\r\nexport const SERUM = \"SERUM\"\r\nexport const WELLNESS_DBS = \"WDBS\"\r\nexport const WELLNESS = \"WELL\"","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport default function BluestoneInstruction() {\r\n  const { t } = useTranslation()\r\n\r\n  return <>\r\n    <Row>\r\n      <Col md={8} lg={9}>\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.bluestone1\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-1 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/Saliva_Ship1.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport default function DbsInstruction() {\r\n  const { t } = useTranslation()\r\n\r\n  return <>\r\n    <Row>\r\n      <Col md={8} lg={9}>\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.dbs1\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-1 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/DBS_Ship1.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col md={8} lg={9} className=\"mt-3\">\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.dbs2\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-3 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/DBS_Ship2.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport default function HealthConfirmInstruction() {\r\n  const { t } = useTranslation()\r\n\r\n  return <>\r\n    <Row>\r\n      <Col md={8} lg={9}>\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.healthconfirm1\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-1 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/Instruction/HealthConfirm/Ship1.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col md={8} lg={9} className=\"mt-3\">\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.healthconfirm2\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-3 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/Instruction/HealthConfirm/Ship2.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport default function SalivaInstruction() {\r\n  const { t } = useTranslation()\r\n\r\n  return <>\r\n    <Row>\r\n      <Col md={8} lg={9}>\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.saliva1\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-1 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/Saliva_Ship1.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col md={8} lg={9} className=\"mt-3\">\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.saliva2\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-3 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/Saliva_Ship2.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport default function SerumInstruction() {\r\n  const { t } = useTranslation()\r\n\r\n  return <>\r\n    <Row>\r\n      <Col xs={12}>\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.serum1\")) }} />\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { sanitize } from \"../../../formatters/Sanitize\"\r\n\r\nexport default function WellnessDbsInstruction() {\r\n  const { t } = useTranslation()\r\n\r\n  return <>\r\n    <Row>\r\n      <Col md={8} lg={9}>\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.wellnessdbs1\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-1 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/WDBS_Ship1.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col md={8} lg={9} className=\"mt-3\">\r\n        <ul className=\"shipping\" dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.instruction.wellnessdbs2\")) }} />\r\n      </Col>\r\n      <Col md={3} lg={2} className=\"mt-3 text-center\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/WDBS_Ship2.png`} alt=\"\" width=\"200\" />\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { BLUESTONE, HEALTH_CONFIRM, Implementation } from \"../../api/models/registration/Implementation\"\r\nimport { DBS, SALIVA, SERUM, WELLNESS_DBS } from \"../../api/models/registration/KitType\"\r\nimport BluestoneInstruction from \"./ShippingInstructions/BluestoneInstruction\"\r\nimport DbsInstruction from \"./ShippingInstructions/DbsInstruction\"\r\nimport HealthConfirmInstruction from \"./ShippingInstructions/HealthConfirmInstruction\"\r\nimport SalivaInstruction from \"./ShippingInstructions/SalivaInstruction\"\r\nimport SerumInstruction from \"./ShippingInstructions/SerumInstruction\"\r\nimport WellnessDbsInstruction from \"./ShippingInstructions/WellnessDbsInstruction\"\r\n\r\ninterface ShippingInstructionProps {\r\n  implementation?: Implementation\r\n  businessType?: string\r\n}\r\n\r\nexport default function ShippingInstruction(props: ShippingInstructionProps) {\r\n\r\n  const findImplementationInstruction = () => {\r\n    switch (props.implementation) {\r\n      case BLUESTONE:\r\n        if (props.businessType === SALIVA || props.businessType === WELLNESS_DBS) {\r\n          return <BluestoneInstruction />\r\n        }\r\n        break\r\n      case HEALTH_CONFIRM:\r\n        if (props.businessType === WELLNESS_DBS) {\r\n          return <HealthConfirmInstruction />\r\n        }\r\n        break\r\n    }\r\n\r\n    return undefined\r\n  }\r\n\r\n  const selectInstruction = () => {\r\n    const implementationInstruction = findImplementationInstruction()\r\n    if (implementationInstruction) {\r\n      return implementationInstruction\r\n    }\r\n\r\n    switch (props.businessType) {\r\n      case DBS: return <DbsInstruction />\r\n      case SALIVA: return <SalivaInstruction />\r\n      case SERUM: return <SerumInstruction />\r\n      case WELLNESS_DBS: return <WellnessDbsInstruction />\r\n      default: return undefined\r\n    }\r\n  }\r\n\r\n  return <>\r\n    {selectInstruction()}\r\n  </>\r\n}","import React, { useState, ChangeEvent, useMemo } from \"react\"\r\nimport { Button, Col, Form, Row, Spinner } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { BLUESTONE } from \"../../api/models/registration/Implementation\"\r\nimport { SALIVA, SERUM, WELLNESS, WELLNESS_DBS } from \"../../api/models/registration/KitType\"\r\nimport { sanitize } from \"../../formatters/Sanitize\"\r\nimport { ShippingProps } from \"./Shipping\"\r\nimport ShippingInstruction from \"./ShippingInstruction\"\r\n\r\ninterface ActivationProps extends ShippingProps {\r\n  onNext: () => void\r\n  submitting: boolean\r\n}\r\n\r\nexport default function Activation(props: ActivationProps) {\r\n  const { t } = useTranslation()\r\n  const [confirmed, setConfirmed] = useState<boolean>(false)\r\n  const [written, setWritten] = useState<boolean>(false)\r\n\r\n  const handleConfirmedChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n    setConfirmed(e.target.checked)\r\n  }\r\n\r\n  const handleWrittenChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n    setWritten(e.target.checked)\r\n  }\r\n\r\n  const showKansasNote = ![SERUM, WELLNESS_DBS].includes(props.businessType ?? \"\") && props.implementation !== BLUESTONE\r\n  const note = useMemo(() => {\r\n    const params = { barcode: props.originalBarcode, firstName: props.firstName, lastName: props.lastName, collectionDevice: t(\"registration.shipping.collectionDevice\") }\r\n    return props.businessType === SERUM\r\n      ? t(\"registration.shipping.noteUnlessTheLabelSerum\", params)\r\n      : t(\"registration.shipping.noteUnlessTheLabel\", params)\r\n  }, [props.businessType, props.originalBarcode, props.firstName, props.lastName, t])\r\n\r\n  const covid = ![WELLNESS, WELLNESS_DBS].includes(props.businessType ?? \"\")\r\n\r\n  const confirmedLabel = useMemo(() => {\r\n    if (props.businessType === SERUM) {\r\n      return t(\"registration.shipping.appliedTheLabelSerum\", { barcode: props.originalBarcode })\r\n    }\r\n\r\n    if (props.businessType === WELLNESS_DBS) {\r\n      return t(\"registration.shipping.appliedTheLabelWDBS\", { barcode: props.originalBarcode })\r\n    }\r\n\r\n    return t(\"registration.shipping.appliedTheLabel\", { barcode: props.originalBarcode, collectionDevice: t(\"registration.shipping.collectionDevice\") })\r\n  }, [props.businessType, props.originalBarcode, t])\r\n\r\n  const writtenLabel = useMemo(() => {\r\n    return t(\"registration.shipping.writtenTheName\", { firstName: props.firstName, lastName: props.lastName, collectionDevice: t(\"registration.shipping.collectionDevice\") })\r\n  }, [props.firstName, props.lastName, t])\r\n\r\n  return <>\r\n    <Row key=\"header\">\r\n      <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n    </Row>\r\n    <ShippingInstruction implementation={props.implementation} businessType={props.businessType} />\r\n    {showKansasNote && <Row>\r\n      <Col xs={12} className=\"fw-bold mt-3\">\r\n        <div dangerouslySetInnerHTML={{ __html: sanitize(t(\"registration.shipping.ifYouLiveInTheKansas\")) }} />\r\n      </Col>\r\n    </Row>}\r\n    <div className=\"border border-primary p-3 rounded-3 my-3\">\r\n      <Row>\r\n        <Col xs={12} className=\"mb-1\">{t(\"registration.shipping.pleaseMakeSureYouCompleted\")}</Col>\r\n      </Row>\r\n      <Row>\r\n        <Col xs={12}>\r\n          <Form.Group className=\"mb-1 fw-bold\" controlId=\"confirmed\" key=\"confirmed\">\r\n            <Form.Check id=\"confirmed\" type=\"checkbox\" label={confirmedLabel}\r\n              checked={confirmed} onChange={handleConfirmedChange} />\r\n          </Form.Group>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col xs={12}>\r\n          <Form.Group className=\"mb-3 fw-bold\" controlId=\"written\" key=\"written\">\r\n            <Form.Check id=\"written\" type=\"checkbox\" label={writtenLabel}\r\n              checked={written} onChange={handleWrittenChange} />\r\n          </Form.Group>\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col xs={12}>\r\n          <Button variant=\"primary\" type=\"button\" disabled={!confirmed || !written || props.submitting} onClick={() => props.onNext()}>\r\n            {props.submitting && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n            {t(\"registration.button.activate\")}\r\n          </Button>\r\n        </Col>\r\n      </Row>\r\n    </div>\r\n    <Row>\r\n      <Col xs={12} className=\"fw-bold mb-3\">{note}</Col>\r\n    </Row>\r\n    {props.businessType === SALIVA && <Row>\r\n      <Col xs={12} className=\"mb-3 fst-italic\">{t(\"registration.shipping.thisTestHasNotBeenFDAClearedOrApproved\")}</Col>\r\n    </Row>}\r\n    {covid && <Row>\r\n      <Col xs={12} className=\"mb-3 fst-italic\">{t(\"registration.shipping.thePerformanceOfThisTest\")}</Col>\r\n    </Row>}\r\n  </>\r\n}","import React, { useState } from \"react\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { Implementation } from \"../../api/models/registration/Implementation\"\r\nimport { activate } from \"../../api/Registration\"\r\nimport Activation from \"./Activation\"\r\n\r\nexport interface ShippingProps {\r\n  title: string\r\n  implementation?: Implementation\r\n  businessType?: string\r\n  originalBarcode: string\r\n  firstName?: string\r\n  lastName?: string\r\n  testEventId: number\r\n  testEventHash: string\r\n  onNext: () => void\r\n}\r\n\r\nexport default function Shipping(props: ShippingProps) {\r\n  const { t } = useTranslation()\r\n  const [submitting, setSubmitting] = useState<boolean>(false)\r\n\r\n  const handleActivationNext = () => {\r\n    setSubmitting(true)\r\n\r\n    activate({ testEventId: props.testEventId, testEventHash: props.testEventHash, implementation: props.implementation }).subscribe({\r\n      next: () => {\r\n        setSubmitting(false)\r\n        props.onNext()\r\n      },\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  return <>\r\n    <Activation {...props} onNext={handleActivationNext} submitting={submitting} />\r\n  </>\r\n}","import EscapePhoneNumber from \"./EscapePhoneNumber\"\r\n\r\nexport function formatPhone(value?: string): string {\r\n  const phone = EscapePhoneNumber(value ?? \"\")\r\n\r\n  if (phone.length === 10) {\r\n    return phone.replace(/(\\d{3})(\\d{3})(\\d{4})/, \"$1-$2-$3\")\r\n  }\r\n\r\n  return phone\r\n}\r\n","import React from \"react\"\r\nimport { Button, Col, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { useHistory } from \"react-router\"\r\nimport { BLUESTONE, HEALTH_CONFIRM, Implementation } from \"../../api/models/registration/Implementation\"\r\nimport { SERUM, WELLNESS_DBS } from \"../../api/models/registration/KitType\"\r\nimport { AppRoute } from \"../../AppRoute\"\r\nimport { formatPhone } from \"../../formatters/FormatPhone\"\r\nimport { sanitize } from \"../../formatters/Sanitize\"\r\nimport { useAuthStore } from \"../../stores/StoreProvider\"\r\n\r\ninterface FinishProps {\r\n  title: string\r\n  implementation?: Implementation\r\n  businessType?: string\r\n  mobile?: string\r\n  phoneCode?: string\r\n}\r\n\r\nexport default function Finish(props: FinishProps) {\r\n  const { t } = useTranslation()\r\n  const history = useHistory()\r\n  const authStore = useAuthStore()\r\n\r\n  const serum_wellness_dbs = [SERUM, WELLNESS_DBS].includes(props.businessType ?? \"\")\r\n\r\n  const note = serum_wellness_dbs\r\n    ? t(\"registration.finish.crlWillForward\")\r\n    : t(\"registration.finish.crlWillContactYou\", { phone: formatPhone(props.mobile) })\r\n\r\n  const retainText = props.implementation === HEALTH_CONFIRM\r\n    ? t(\"registration.finish.pleaseRetainYourUniqueBarcode_healthconfirm\")\r\n    : t(serum_wellness_dbs ? \"registration.finish.pleaseRetainYourUniqueBarcode\" : \"registration.finish.pleaseRetainTheInstructionSheet\")\r\n\r\n  const handleResultClick = (e: React.FormEvent<HTMLAnchorElement>) => {\r\n    e.preventDefault()\r\n    if (authStore.authToken) {\r\n      history.push(AppRoute.Results)\r\n      return\r\n    }\r\n    const fullPhone = `${props.phoneCode ?? \"\"}${props.mobile ?? \"\"}`\r\n    history.push(`${AppRoute.Login}?phone=${fullPhone}`)\r\n  }\r\n  const handleAnotherTestClick = () => history.replace(AppRoute.Registration)\r\n  const handleClose = () => history.push(AppRoute.Results)\r\n\r\n  return <>\r\n    <Row key=\"header\">\r\n      <Col><h2 className=\"text-primary\">{props.title}</h2></Col>\r\n    </Row>\r\n    <Row>\r\n      <Col md={7} className=\"mb-3\">\r\n        <p className=\"mb-1\">{t(props.businessType === SERUM ? \"registration.finish.allDoneSerum\" : \"registration.finish.allDone\")}</p>\r\n        <div className=\"py-1\" dangerouslySetInnerHTML={{ __html: sanitize(note) }} />\r\n        <p className=\"fw-bold mb-1\">{retainText}</p>\r\n        {!serum_wellness_dbs && <>\r\n          <p className=\"mb-3\">{t(props.implementation === BLUESTONE ? \"registration.finish.youMayAlsoReturn_bluestone\" : \"registration.finish.youMayAlsoReturn\")}</p>\r\n          <div className=\"text-center\">\r\n            <a href=\"#/\" onClick={handleResultClick} className=\"text-primary\">\r\n              <img src={`${process.env.PUBLIC_URL}/images/Icon/results.png`} alt={t(\"registration.finish.results\")} height={40} />\r\n              {t(\"registration.finish.results\")}\r\n            </a>\r\n          </div>\r\n        </>}\r\n      </Col>\r\n      <Col md={5} className=\"text-center mb-3\">\r\n        <img src={`${process.env.PUBLIC_URL}/images/Finish${props.implementation ? `_${props.implementation}` : \"\"}.jpg`} alt={props.title} />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col className=\"mb-3\">\r\n        <Button variant=\"primary\" type=\"button\" onClick={handleAnotherTestClick}>{t(\"registration.button.activateAnotherTest\")}</Button>&nbsp;\r\n        <Button variant=\"primary\" type=\"button\" onClick={handleClose}>{t(\"registration.button.close\")}</Button>\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React from \"react\"\r\nimport { Button, Col, Modal, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport PostponeResult from \"../../../api/models/registration/PostponeResult\"\r\nimport { ConvertToDate } from \"../../../formatters/ConvertToDate\"\r\nimport FormatDate, { FormatDateTime } from \"../../../formatters/FormatDate\"\r\n\r\nexport interface PostponeProps {\r\n  onHide: () => void\r\n  postpone: PostponeResult\r\n}\r\n\r\nexport default function Postpone(props: PostponeProps) {\r\n  const { t } = useTranslation()\r\n  const postpone = props.postpone\r\n\r\n  const resultDate = ConvertToDate(postpone?.resultDate)\r\n  const eligibleDate = resultDate ? FormatDate(new Date(resultDate.setDate(resultDate.getDate() + 90))) : \"\"\r\n\r\n  return (<>\r\n    <Modal show size=\"lg\" fullscreen=\"sm-down\" centered backdrop=\"static\" onHide={props.onHide}>\r\n      <Modal.Body>\r\n        <h3>{t(\"registration.postpone.title\")}</h3>\r\n        <p className=\"fw-bold\">{t(\"registration.postpone.message\", { date: eligibleDate })}</p>\r\n        <p className=\"fw-bold\">Most Recent Test Result</p>\r\n        <Row>\r\n          <Col xs={12} md={6} className=\"fw-bold\">\r\n            {`${postpone.lastName},${postpone.firstName}`}\r\n          </Col>\r\n        </Row>\r\n        <Row>\r\n          <Col xs={5} sm={3}>{t(\"registration.postpone.currentTestStatus\")}</Col>\r\n          <Col xs={7} sm={9}>Completed</Col>\r\n        </Row>\r\n        <Row>\r\n          <Col xs={5} sm={3}>{t(\"registration.postpone.result\")}</Col>\r\n          <Col xs={7} sm={9}>{postpone.resultDescription}</Col>\r\n        </Row>\r\n        <Row>\r\n          <Col xs={5} sm={3}>{t(\"registration.postpone.collectionDate\")}</Col>\r\n          <Col xs={7} sm={9}>{FormatDateTime(postpone.dateOfRegistration)}</Col>\r\n        </Row>\r\n        <Row>\r\n          <Col xs={5} sm={3}>{t(\"registration.postpone.reportedTime\")}</Col>\r\n          <Col xs={7} sm={9}>{FormatDateTime(postpone.resultDate)}</Col>\r\n        </Row>\r\n        <Row>\r\n          <Col xs={12} className=\"small mt-3\">\r\n            <div className=\"bg-info\">\r\n              <b>You are automatically postponed from testing at an LA County Employee Testing Site for 90 days.</b><br />\r\n              This is because during the 90-day period, ongoing viral shedding is likely to cause a positive test even after\r\n              symptoms have resolved and you are no longer infectious. If you return to test at an LA County Employee\r\n              Testing Site before the 90-day period expires, you will be turned away from testing.\r\n            </div>\r\n          </Col>\r\n        </Row>\r\n      </Modal.Body>\r\n      <Modal.Footer>\r\n        <Button onClick={props.onHide}>{t(\"registration.button.close\")}</Button>\r\n      </Modal.Footer>\r\n    </Modal>\r\n  </>)\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { useState, useMemo, useRef } from \"react\";\r\nimport { Col, Container, Row } from \"react-bootstrap\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\"\r\nimport AccountMessage from \"../api/models/registration/AccountMessage\";\r\nimport BarcodeResponse from \"../api/models/registration/BarcodeResponse\";\r\nimport DemographicsDonorData from \"../api/models/registration/DemographicsDonorData\";\r\nimport { ALL_IMPLEMENTATIONS } from \"../api/models/registration/Implementation\";\r\nimport { getBarcode, finalize, getDonor } from \"../api/Registration\";\r\nimport { useQuery } from \"../hooks/useQuery\";\r\nimport Barcode from \"./Registration/Barcode\";\r\nimport Consent from \"./Registration/Consent\";\r\nimport Demographics from \"./Registration/Demographics\";\r\nimport AccountCustomMessage from \"./Registration/Modals/AccountCustomMessage\";\r\nimport AccountMessageModal from \"./Registration/Modals/AccountMessageModal\";\r\nimport ExpiredBarcode from \"./Registration/Modals/ExpiredBarcode\"\r\nimport Questions from \"./Registration/Questions\";\r\nimport Instruction from \"./Registration/Instruction\";\r\nimport StepIndication, { Step, StepType } from \"./Registration/StepIndication\";\r\nimport QuestionAnswer from \"../api/models/registration/QuestionAnswer\";\r\nimport MessageModal, { MessageType } from \"./Registration/Modals/MessageModal\";\r\nimport { useHistory } from \"react-router\";\r\nimport { AppRoute } from \"../AppRoute\";\r\nimport UnsupportedStateModal from \"./Registration/Modals/UnsupportedStateModal\";\r\nimport Shipping from \"./Registration/Shipping\";\r\nimport SaveResponse from \"../api/models/registration/SaveResponse\";\r\nimport Finish from \"./Registration/Finish\";\r\nimport { useAuthStore, useRegistrationStore } from \"../stores/StoreProvider\";\r\nimport PostponeResult from \"../api/models/registration/PostponeResult\";\r\nimport Postpone from \"./Registration/Modals/Postpone\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport PhysicalMeasurements from \"../api/models/registration/PhysicalMeasurements\";\r\n\r\nconst defaultSteps: Step[] = [\r\n  { number: 1, type: StepType.Barcode, enabled: true, current: true },\r\n  { number: 2, type: StepType.Consent, enabled: true },\r\n  { number: 3, type: StepType.Demographics, enabled: true },\r\n  { number: 4, type: StepType.Questions, enabled: false },\r\n  { number: 5, type: StepType.Instruction, enabled: true },\r\n  { number: 6, type: StepType.Shipping, enabled: true },\r\n  { number: 7, type: StepType.Finish, enabled: true }\r\n]\r\n\r\nexport function Registration() {\r\n  const { t } = useTranslation()\r\n  const authStore = useAuthStore()\r\n  const registrationStore = useRegistrationStore()\r\n  const query = useQuery()\r\n  const history = useHistory()\r\n\r\n  const fromQuery = useMemo(() => {\r\n    return query.get(\"impl\") || ALL_IMPLEMENTATIONS.find(implementation => query.get(implementation))\r\n  }, [query])\r\n\r\n  const implementation = useMemo(() => {\r\n    if (!fromQuery) {\r\n      return registrationStore.implementation\r\n    }\r\n    let result = ALL_IMPLEMENTATIONS.find((implementation => query.get(implementation) === \"1\"))\r\n    if (result) {\r\n      return result\r\n    }\r\n    result = ALL_IMPLEMENTATIONS.find((implementation => query.get(\"impl\")?.toLowerCase() === implementation))\r\n    return result\r\n  }, [query, fromQuery, registrationStore.implementation])\r\n\r\n  const [showExpiredBarcode, setShowExpiredBarcode] = useState(false)\r\n  const [accountMessage, setAccountMessage] = useState<AccountMessage | undefined>(undefined)\r\n  const [labAccountMessage, setLabAccountMessage] = useState<string | undefined>(undefined)\r\n  const [useTwelve, setUseTwelve] = useState<boolean>(false)\r\n  const [barcodeData, setBarcodeData] = useState<BarcodeResponse | undefined>(undefined)\r\n  const [submitting, setSubmitting] = useState<boolean>(false)\r\n  const [showUnconformableKit, setShowUnconformableKit] = useState<boolean>(false)\r\n  const [showUnsupportedState, setShowUnsupportedState] = useState<boolean>(false)\r\n  const [postpone, setPostpone] = useState<PostponeResult | undefined>(undefined)\r\n  const answersRef = useRef<QuestionAnswer[]>([])\r\n  const physicalMeasurementsRef = useRef<PhysicalMeasurements | undefined>()\r\n  const barcodeScannedRef = useRef<boolean>(false)\r\n  const originalBarcodeRef = useRef<string>(\"\")\r\n  const consentIdRef = useRef<number | undefined>(undefined)\r\n  const donorRef = useRef<DemographicsDonorData>()\r\n  const saveResponseRef = useRef<SaveResponse | undefined>(undefined)\r\n\r\n  const [steps, setSteps] = useState<Step[]>(defaultSteps)\r\n  const currentStep = steps.find(s => s.current)\r\n\r\n  useEffect(() => {\r\n    if (fromQuery) {\r\n      registrationStore.setInitial(implementation)\r\n    }\r\n  }, [query, fromQuery, registrationStore, implementation, useTwelve])\r\n\r\n  const tuneSteps = (barcodeData: BarcodeResponse) => {\r\n    setSteps((steps) => {\r\n      const updatedSteps = steps.map(step => { return { ...step } })\r\n      updatedSteps.find(step => step.type === StepType.Consent)!.enabled = !barcodeData.requireSuppressConsent\r\n      updatedSteps.find(step => step.type === StepType.Questions)!.enabled = barcodeData.requireSymptomQuestions || barcodeData.displayPhysicalMeasurements\r\n\r\n      let number = 1\r\n      updatedSteps.forEach(step => {\r\n        if (step.enabled) {\r\n          step.number = number\r\n          number++\r\n        }\r\n      })\r\n      return updatedSteps\r\n    })\r\n  }\r\n\r\n  const getNextStep = () => {\r\n    const currentIndex = steps.findIndex(step => step.current)\r\n    if (currentIndex === -1) {\r\n      return StepType.Barcode\r\n    }\r\n\r\n    const currentStep = steps[currentIndex]\r\n    const nextStep = steps.find(step => step.number > currentStep.number && step.enabled)\r\n    if (nextStep) {\r\n      return nextStep.type\r\n    }\r\n    return StepType.Barcode\r\n  }\r\n\r\n  const moveToNextStep = () => {\r\n    setSteps((steps) => {\r\n      const currentIndex = steps.findIndex(step => step.current)\r\n      if (currentIndex === -1) {\r\n        return steps\r\n      }\r\n      const currentStep = steps[currentIndex]\r\n      const nextStepIndex = steps.findIndex(step => step.number > currentStep.number && step.enabled)\r\n      if (nextStepIndex === -1) {\r\n        return steps\r\n      }\r\n\r\n      const updatedSteps = steps.map((step, index) => { return { ...step, done: index < nextStepIndex } })\r\n      updatedSteps[currentIndex].current = false\r\n      updatedSteps[nextStepIndex].current = true\r\n\r\n      return updatedSteps\r\n    })\r\n  }\r\n\r\n  const moveToPrevStep = () => {\r\n    setSteps((steps) => {\r\n      const currentIndex = steps.findIndex(step => step.current)\r\n      if (currentIndex === -1) {\r\n        return steps\r\n      }\r\n\r\n      let prevStepIndex = 0\r\n      for (let i = currentIndex - 1; i >= 0; i--) {\r\n        if (steps[i].enabled) {\r\n          prevStepIndex = i\r\n          break\r\n        }\r\n      }\r\n\r\n      const updatedSteps = steps.map((step, index) => { return { ...step, done: index < prevStepIndex } })\r\n      updatedSteps[currentIndex].current = false\r\n      updatedSteps[prevStepIndex].current = true\r\n\r\n      return updatedSteps\r\n    })\r\n  }\r\n\r\n  const handleBarcodeNext = (barcode: string, scanned: boolean) => {\r\n    originalBarcodeRef.current = barcode\r\n    barcodeScannedRef.current = scanned\r\n\r\n    setSubmitting(true)\r\n\r\n    getBarcode({ barcode, twelveDigitBarcode: useTwelve, implementation: implementation }).subscribe({\r\n      next: (response) => {\r\n        setSubmitting(false)\r\n        setUseTwelve(response.twelveDigitBarcodeRequired)\r\n        if (response.twelveDigitBarcodeRequired) {\r\n          return\r\n        }\r\n        if (response.expired) {\r\n          return setShowExpiredBarcode(true)\r\n        }\r\n        if (response.accountMessage) {\r\n          return setAccountMessage(response.accountMessage)\r\n        }\r\n        tuneSteps(response)\r\n        setBarcodeData(response)\r\n        if (response.labAccountMessage) {\r\n          return setLabAccountMessage(response.labAccountMessage)\r\n        }\r\n\r\n        if (authStore.authToken) {\r\n          getAuthDonor()\r\n          return\r\n        }\r\n        moveToNextStep()\r\n      },\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  const getAuthDonor = () => {\r\n    setSubmitting(true)\r\n    getDonor().subscribe({\r\n      next: (response => {\r\n        setSubmitting(false)\r\n        setBarcodeData((current) => {\r\n          if (!current) {\r\n            return undefined\r\n          }\r\n          return ({ ...current, ...response })\r\n        })\r\n\r\n        moveToNextStep()\r\n      }),\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  const handleCustomMessageNext = () => {\r\n    setLabAccountMessage(undefined)\r\n    moveToNextStep()\r\n  }\r\n\r\n  const handleConsentNext = (consentId: number) => {\r\n    consentIdRef.current = consentId\r\n    moveToNextStep()\r\n  }\r\n\r\n  const handleConsentBack = () => {\r\n    setBarcodeData(undefined)\r\n    consentIdRef.current = undefined\r\n    moveToPrevStep()\r\n  }\r\n\r\n  const handleDemograhicsNext = (donor: DemographicsDonorData) => {\r\n    donorRef.current = donor\r\n    const nextStep = getNextStep()\r\n    save(nextStep !== StepType.Instruction)\r\n  }\r\n\r\n  const handleQuestionsNext = (answers: QuestionAnswer[], physicalMeasurements?: PhysicalMeasurements) => {\r\n    answersRef.current = answers\r\n    physicalMeasurementsRef.current = physicalMeasurements\r\n    save(false)\r\n  }\r\n\r\n  const save = (validateOnly: boolean) => {\r\n    setSubmitting(true)\r\n\r\n    const request = {\r\n      answers: answersRef.current ?? [],\r\n      measurements: physicalMeasurementsRef.current,\r\n      barcode: barcodeData!,\r\n      barcodeScanned: barcodeScannedRef.current,\r\n      consentId: consentIdRef.current ?? 0,\r\n      donor: donorRef.current!,\r\n      implementation: implementation,\r\n      validateOnly: validateOnly\r\n    }\r\n\r\n    finalize(request).subscribe({\r\n      next: (response) => {\r\n        setSubmitting(false)\r\n        if (response.unconformableKit) {\r\n          setShowUnconformableKit(true)\r\n          return\r\n        }\r\n        if (response.stateUnsupported) {\r\n          setShowUnsupportedState(true)\r\n          return\r\n        }\r\n        if (response.postpone) {\r\n          setPostpone(response.postpone)\r\n          return\r\n        }\r\n        saveResponseRef.current = response\r\n        moveToNextStep()\r\n      },\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  const goHome = () => {\r\n    history.push(AppRoute.Results)\r\n  }\r\n\r\n  const allowKitRegistration = authStore.domain?.allowKitRegistration ?? false\r\n  if (!allowKitRegistration) {\r\n    return <Container>\r\n      <Row>\r\n        <Col sm={12} className=\"my-3\">{t(\"clientOrder.programInactive\")}</Col>\r\n      </Row>\r\n    </Container>\r\n  }\r\n\r\n  return (\r\n    <Container>\r\n      {showExpiredBarcode && <ExpiredBarcode onHide={() => setShowExpiredBarcode(false)} />}\r\n      {accountMessage && <AccountMessageModal accountMessage={accountMessage} onHide={() => setAccountMessage(undefined)} />}\r\n      {labAccountMessage && <AccountCustomMessage message={labAccountMessage} onNext={handleCustomMessageNext} />}\r\n      {showUnconformableKit && <MessageModal onHide={goHome} message={{ body: t(\"registration.questions.basedUponYourResponses\"), type: MessageType.Text }} />}\r\n      {showUnsupportedState && <UnsupportedStateModal onHide={goHome} />}\r\n      {postpone && <Postpone postpone={postpone} onHide={goHome} />}\r\n      <Row>\r\n        <Col sm={12}><StepIndication steps={steps} implemenation={implementation} /></Col>\r\n      </Row>\r\n      <Row>\r\n        <Col sm={12}>\r\n          {currentStep?.type === StepType.Barcode && <Barcode title={` ${currentStep.number}. ${t(\"registration.barcode.scanBarcode\")} `} onNext={handleBarcodeNext} implementation={implementation} useTwelve={useTwelve} submitting={submitting} />}\r\n          {currentStep?.type === StepType.Consent &&\r\n            <Consent title={` ${currentStep.number}. ${t([`registration.step.${currentStep.type}_${implementation}`, `registration.step.${currentStep.type}`])} `}\r\n              onPrev={handleConsentBack} onNext={handleConsentNext} barcode={barcodeData!} implementation={implementation}\r\n              initialAccepted={consentIdRef.current !== undefined} />}\r\n          {currentStep?.type === StepType.Demographics &&\r\n            <Demographics title={` ${currentStep.number}. ${t([`registration.step.${currentStep.type}_${implementation}`, `registration.step.${currentStep.type}`])} `}\r\n              onPrev={moveToPrevStep} onNext={handleDemograhicsNext} implementation={implementation} barcode={barcodeData!} submitting={submitting} />}\r\n          {currentStep?.type === StepType.Questions && <Questions title={` ${currentStep.number}. ${t(`registration.step.${currentStep.type}`)} `}\r\n            onNext={handleQuestionsNext} implementation={implementation}\r\n            requireSymptomQuestions={barcodeData!.requireSymptomQuestions} displayPhysicalMeasurements={barcodeData!.displayPhysicalMeasurements}\r\n            accountNumber={barcodeData?.account} testCode={barcodeData?.testCode} submitting={submitting} />}\r\n          {currentStep?.type === StepType.Instruction && <Instruction title={` ${currentStep.number}. ${t(`registration.step.${currentStep.type}`)} `} stepNumber={currentStep.number}\r\n            onPrev={moveToPrevStep} onNext={moveToNextStep}\r\n            collectionType={barcodeData?.collectionType} implementation={implementation} />}\r\n          {currentStep?.type === StepType.Shipping && <Shipping title={` ${currentStep.number}. ${t(`registration.shipping.title`)} `}\r\n            implementation={implementation} businessType={barcodeData?.businessType} originalBarcode={originalBarcodeRef.current}\r\n            firstName={donorRef.current?.firstName} lastName={donorRef.current?.lastName}\r\n            testEventId={saveResponseRef.current!.testEventId!} testEventHash={saveResponseRef.current!.testEventHash!} onNext={moveToNextStep} />}\r\n          {currentStep?.type === StepType.Finish && <Finish title={t(`registration.finish.title`)} businessType={barcodeData?.businessType}\r\n            mobile={donorRef.current?.mobile} phoneCode={donorRef.current?.phoneCode} implementation={implementation} />}\r\n        </Col>\r\n      </Row>\r\n    </Container>\r\n  )\r\n}\r\n\r\nexport default observer(Registration)\r\n","import React, { useMemo, useState } from \"react\"\r\nimport { useFormik } from \"formik\"\r\nimport * as Yup from 'yup'\r\nimport { Col, Form, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport OrderRequest from \"../../api/models/clientorder/OrderRequest\"\r\nimport State from \"../../api/models/State\"\r\nimport PhoneNumber from \"../Login/PhoneNumber\"\r\nimport DateOfBirth from \"../Login/DateOfBirth\"\r\nimport { ConvertToDate } from \"../../formatters/ConvertToDate\"\r\nimport FormatLocalISODateString from \"../../formatters/FormatLocalISODateString\"\r\nimport ProgramService from \"../../api/models/clientorder/ProgramService\"\r\n\r\ninterface OrderFormProps {\r\n  order: OrderRequest\r\n  states: State[]\r\n  programServices: ProgramService[]\r\n  onSubmit: (order: OrderRequest) => void\r\n}\r\n\r\nfunction range(start: number, end: number) {\r\n  const result = []\r\n  for (let i = start; i <= end; i++) {\r\n    result.push(i)\r\n  }\r\n  return result\r\n}\r\n\r\nexport default function OrderForm(props: OrderFormProps) {\r\n  const { t } = useTranslation()\r\n  const initialProgramService = props.programServices.length ? props.programServices[0] : undefined\r\n  const [selectedProgramService, setSelectedProgramService] = useState<ProgramService | undefined>(initialProgramService)\r\n\r\n  const validationSchema = useMemo(() => {\r\n    const fieldRequiredMessage = t(\"shared.validation.fieldRequired\")\r\n    return Yup.object().shape({\r\n      firstName: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      lastName: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      address1: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      address2: Yup.string().nullable(true),\r\n      city: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      stateCodeId: Yup.number().test(\"stateCodeId\", fieldRequiredMessage, (value) => (value ?? 0) > 0),\r\n      zip: Yup.string().nullable(true).required(fieldRequiredMessage)\r\n        .min(5, t(\"shared.validation.minLength\", { count: 5 }))\r\n        .matches(/^\\d{5}([-]?\\d{4})?$/, t(\"shared.validation.zip\")),\r\n      mobile: Yup.string().nullable(true).test(\"mobile\", t(\"shared.validation.invalidPhoneNumber\"), (value, context) => context.parent.phoneValid && !!value),\r\n      dateOfBirth: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      programServiceId: Yup.number().test(\"programServiceId\", fieldRequiredMessage, (value) => (value ?? 0) > 0),\r\n      quantity: Yup.number().test(\"quantity\", fieldRequiredMessage, (value) => (value ?? 0) > 0)\r\n    })\r\n  }, [t])\r\n\r\n  const formik = useFormik<OrderRequest & { phoneValid: boolean }>({\r\n    initialValues: { ...props.order, programServiceId: initialProgramService?.programServiceId ?? 0, quantity: initialProgramService?.minQuantity || 0, phoneValid: true },\r\n    validationSchema: validationSchema,\r\n    onSubmit: (values) => { props.onSubmit(values) }\r\n  })\r\n\r\n  const handlePhoneChange = (valid: boolean, mobileNumber: string, country: string) => {\r\n    formik.setFieldValue(\"phoneValid\", valid)\r\n    formik.setFieldTouched(\"phoneValid\", true, true).then(\r\n      () => {\r\n        formik.setFieldValue(\"mobile\", mobileNumber)\r\n        formik.setFieldTouched(\"mobile\", true, true)\r\n        formik.setFieldValue(\"countryAbbreviation\", country)\r\n      }\r\n    )\r\n  }\r\n\r\n  const handleBirthDateChange = (date: Date | null) => {\r\n    formik.setFieldValue(\"dateOfBirth\", FormatLocalISODateString(date)).then(() => {\r\n      formik.setFieldTouched(\"dateOfBirth\", true, true)\r\n    })\r\n  }\r\n\r\n  const handleProgramServiceChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n    const programServiceId = +e.target.value\r\n    formik.setFieldValue(\"programServiceId\", programServiceId).then(() => {\r\n      const selected = props.programServices.find(service => service.programServiceId === programServiceId)\r\n      setSelectedProgramService(selected)\r\n      formik.setFieldValue(\"quantity\", selected?.minQuantity)\r\n    })\r\n  }\r\n\r\n  return <Form id=\"orderForm\" onSubmit={formik.handleSubmit}>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.firstName\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"firstName\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.firstName || \"\"}\r\n          maxLength={20}\r\n          isInvalid={!!formik.errors.firstName && formik.touched.firstName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.firstName}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.lastName\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"lastName\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.lastName || \"\"}\r\n          maxLength={25}\r\n          isInvalid={!!formik.errors.lastName && formik.touched.lastName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.lastName}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} lg={8} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.addressLine1\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"address1\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.address1 || \"\"}\r\n          maxLength={60}\r\n          isInvalid={!!formik.errors.address1 && formik.touched.address1} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.address1}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} lg={8} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.addressLine2\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"address2\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.address2 || \"\"}\r\n          maxLength={60}\r\n          isInvalid={!!formik.errors.address2 && formik.touched.address2} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.address2}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} lg={8} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.city\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"city\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.city || \"\"}\r\n          maxLength={40}\r\n          isInvalid={!!formik.errors.city && formik.touched.city} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.city}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.state\")}</Form.Label>\r\n        <Form.Select name=\"stateCodeId\" value={formik.values.stateCodeId}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"stateCodeId\", +e.target.value)}\r\n          isInvalid={!!formik.errors.stateCodeId && formik.touched.stateCodeId} >\r\n          <option key={0} value={0}></option>\r\n          {props.states.map(state => <option key={state.id} value={state.id}>{state.name}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.stateCodeId}</Form.Control.Feedback>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-1\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.zip\")}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"zip\"\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.zip || \"\"}\r\n          maxLength={10} minLength={5}\r\n          isInvalid={!!formik.errors.zip && formik.touched.zip} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.zip}</Form.Control.Feedback>\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <PhoneNumber initialPhone={`${props.order.phoneCode ?? \"\"}${props.order.mobile ?? \"\"}`}\r\n          title={t(\"clientOrder.mobilePhoneNumber\")}\r\n          onChange={handlePhoneChange} skipFocus skipFeedback />\r\n        {!!formik.errors.mobile && formik.touched.mobile && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{formik.errors.mobile}</Form.Control.Feedback>}\r\n        <div>\r\n          {t(\"clientOrder.whichMayBeUsed\")}\r\n        </div>\r\n      </Col>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-2\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.testToOrder\")}</Form.Label>\r\n        <Form.Select name=\"programServiceId\" value={formik.values.programServiceId || 0}\r\n          onBlur={formik.handleBlur} onChange={handleProgramServiceChange}\r\n          isInvalid={!!formik.errors.programServiceId && formik.touched.programServiceId} >\r\n          {props.programServices.map(service => <option key={service.programServiceId} value={service.programServiceId}>{service.serviceDescription}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.programServiceId}</Form.Control.Feedback>\r\n        {selectedProgramService && (selectedProgramService.maxQuantity === 0) &&\r\n          <Form.Control.Feedback type=\"invalid\" className=\"d-block\">{selectedProgramService.message || t(\"clientOrder.maximumMet\")}</Form.Control.Feedback>}\r\n      </Col>\r\n      {selectedProgramService && selectedProgramService.maxQuantity !== 0 && <Col sm={12} md={4} lg={2} className=\"mt-2\">\r\n        <Form.Label className=\"col-form-label fw-bold\">{t(\"clientOrder.numberOfKits\")}</Form.Label>\r\n        <Form.Select name=\"quantity\" value={formik.values.quantity || 0}\r\n          onBlur={formik.handleBlur} onChange={(e) => formik.setFieldValue(\"quantity\", +e.target.value)}\r\n          isInvalid={!!formik.errors.quantity && formik.touched.quantity} >\r\n          {range(selectedProgramService.minQuantity, selectedProgramService.maxQuantity).map(index => <option key={index} value={index}>{index}</option>)}\r\n        </Form.Select>\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.quantity}</Form.Control.Feedback>\r\n      </Col>}\r\n    </Row>\r\n    <Row>\r\n      <Col sm={12} md={6} lg={4} className=\"mt-3\">\r\n        <Form.Group controlId=\"dateOfBirth\">\r\n          <DateOfBirth title={t(\"clientOrder.dateOfBirth\")}\r\n            initialDate={ConvertToDate(props.order.dateOfBirth)} onChange={handleBirthDateChange} skipFeedback />\r\n        </Form.Group>\r\n        {!!formik.errors.dateOfBirth && formik.touched.dateOfBirth &&\r\n          <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{t(\"shared.validation.invalidDate\")}</Form.Control.Feedback>}\r\n      </Col>\r\n      {selectedProgramService?.moreDetailLink && <Col sm={12} md={6} lg={8} className=\"mt-2\">\r\n        {t(\"clientOrder.moreDetails\")}: &nbsp;<a href={selectedProgramService?.moreDetailLink} target=\"_blank\" rel=\"noreferrer\">{selectedProgramService?.moreDetailLink}</a>\r\n      </Col>}\r\n    </Row>\r\n    <Row className=\"border border-primary mt-3 p-2 small\">\r\n      <Col xs={12}>{t(\"clientOrder.kitsOrdered\")}</Col>\r\n    </Row>\r\n  </Form>\r\n}\r\n","import React, { useEffect, useReducer, useState } from \"react\"\r\nimport { Button, Spinner } from \"react-bootstrap\"\r\nimport { toast } from \"react-toastify\"\r\nimport { Subscription } from \"rxjs\"\r\nimport { createOrder, getProgramServices, getParticipantData } from \"../../api/ClientOrder\"\r\nimport OrderRequest from \"../../api/models/clientorder/OrderRequest\"\r\nimport Participant from \"../../api/models/clientorder/Participant\"\r\nimport ParticipantIdentifier from \"../../api/models/clientorder/ParticipantIdentifier\"\r\nimport ProgramService from \"../../api/models/clientorder/ProgramService\"\r\nimport State from \"../../api/models/State\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport { getStates } from \"../../api/States\"\r\nimport EscapePhoneNumber from \"../../formatters/EscapePhoneNumber\"\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\"\r\nimport DataLoader, { DatumLoader } from \"../DataLoader\"\r\nimport OrderForm from \"./OrderForm\"\r\n\r\ninterface OrderProps {\r\n  participant: ParticipantIdentifier\r\n  onNext: () => void\r\n}\r\n\r\nconst emptyOrder: OrderRequest = {\r\n  firstName: undefined,\r\n  lastName: undefined,\r\n  address1: undefined,\r\n  address2: undefined,\r\n  city: undefined,\r\n  stateCodeId: 0,\r\n  zip: undefined,\r\n  countryAbbreviation: undefined,\r\n  mobile: undefined,\r\n  phoneCode: undefined,\r\n  dateOfBirth: undefined,\r\n  participantId: 0,\r\n  programServiceId: 0,\r\n  quantity: 0\r\n}\r\n\r\nexport default function Order(props: OrderProps) {\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const [states, setStates] = useReducer((state: DataLoader<State>, newState: Partial<DataLoader<State>>) => ({ ...state, ...newState }), { loading: true, loaded: false, data: [] })\r\n  const [programServices, setProgramServices] = useReducer((state: DataLoader<ProgramService>, newState: Partial<DataLoader<ProgramService>>) => ({ ...state, ...newState }), { loading: true, loaded: false, data: [] })\r\n  const [participantData, setParticipantData] = useReducer((state: DatumLoader<Participant>, newState: Partial<DatumLoader<Participant>>) => ({ ...state, ...newState }), { loading: true, loaded: false })\r\n  const loading = states.loading || programServices.loading || participantData.loading\r\n  const loaded = states.loaded && programServices.loaded && participantData.loaded\r\n  const [submitting, setSubmitting] = useState<boolean>(false)\r\n\r\n  useEffect(() => {\r\n    const subscriptions = new Subscription()\r\n\r\n    subscriptions.add(getStates().subscribe({\r\n      next: (result: State[]) => {\r\n        setStates({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setStates({ loading: false })\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    }))\r\n\r\n    subscriptions.add(getParticipantData(props.participant).subscribe({\r\n      next: (result: Participant) => {\r\n        setParticipantData({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setParticipantData({ loading: false })\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    }))\r\n\r\n    subscriptions.add(getProgramServices({ participantId: props.participant.participantId }).subscribe({\r\n      next: (result: ProgramService[]) => {\r\n        setProgramServices({ loading: false, loaded: true, data: result })\r\n      },\r\n      error: (e: APIError) => {\r\n        setProgramServices({ loading: false })\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    }))\r\n\r\n    return () => subscriptions.unsubscribe()\r\n  }, [translationRef, props.participant])\r\n\r\n  const handleSubmit = (order: OrderRequest) => {\r\n    order.mobile = EscapePhoneNumber(order.mobile ?? \"\")\r\n\r\n    setSubmitting(true)\r\n\r\n    createOrder(order).subscribe({\r\n      next: () => {\r\n        setSubmitting(false)\r\n        props.onNext()\r\n      },\r\n      error: e => {\r\n        setSubmitting(false)\r\n        toast.error(t(e.message, { data: e.data }))\r\n      }\r\n    })\r\n  }\r\n\r\n  return <>\r\n    {loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"d-block mx-1\" />}\r\n    {loaded && <OrderForm order={{ ...emptyOrder, ...participantData.data }} states={states.data} programServices={programServices.data} onSubmit={handleSubmit} />}\r\n    <Button variant=\"primary\" type=\"submit\" form=\"orderForm\" disabled={submitting || loading} className=\"mt-3\">\r\n      {submitting && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n      <span>{t(\"shared.button.submit\")}</span>\r\n    </Button>\r\n  </>\r\n}\r\n","import OrderRequest from \"./models/clientorder/OrderRequest\"\r\nimport Participant from \"./models/clientorder/Participant\"\r\nimport ParticipantIdentifier from \"./models/clientorder/ParticipantIdentifier\"\r\nimport ParticipantRequest from \"./models/clientorder/ParticipantRequest\"\r\nimport ParticipantResponse from \"./models/clientorder/ParticipantResponse\"\r\nimport Program from \"./models/clientorder/Program\"\r\nimport ProgramRequest from \"./models/clientorder/ProgramRequest\"\r\nimport ProgramService from \"./models/clientorder/ProgramService\"\r\nimport ProgramServicesRequest from \"./models/clientorder/ProgramServicesRequest\"\r\nimport VerificationRequest from \"./models/clientorder/VerificationRequest\"\r\nimport VerificationResponse from \"./models/clientorder/VerificationResponse\"\r\nimport { ObservableFromFetch } from \"./ObservableFromFetch\"\r\n\r\nexport const getProgram = (params: ProgramRequest) => ObservableFromFetch<Program>(\"ClientOrder/Programs\", JSON.stringify(params))\r\nexport const getProgramServices = (params: ProgramServicesRequest) => ObservableFromFetch<ProgramService[]>(\"ClientOrder/ProgramServices\", JSON.stringify(params))\r\nexport const getParticipant = (params: ParticipantRequest) => ObservableFromFetch<ParticipantResponse>(\"ClientOrder/Participants\", JSON.stringify(params))\r\nexport const createOrder = (params: OrderRequest) => ObservableFromFetch<boolean>(\"ClientOrder/Orders\", JSON.stringify(params))\r\nexport const verifyParticipant = (params: VerificationRequest) => ObservableFromFetch<VerificationResponse>(\"ClientOrder/Participants/Verify\", JSON.stringify(params))\r\nexport const getParticipantData = (params: ParticipantIdentifier) => ObservableFromFetch<Participant>(\"ClientOrder/Participants/Data\", JSON.stringify(params))\r\n","import React from \"react\"\r\nimport { Col, Form, Row } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { useAuthStore } from \"../stores/StoreProvider\"\r\n\r\nexport default function LanguageSelector() {\r\n  const authStore = useAuthStore()\r\n  const [t] = useTranslation()\r\n\r\n  return <Form.Group className=\"mb-3\" controlId=\"language\" as={Row}>\r\n    <Form.Label as={Col} className=\"fw-bold text-uppercase pt-2\">{t(\"login.language\")}</Form.Label>\r\n    <Col><Form.Select value={authStore.language} onChange={(e) => authStore.changeLanguage(e.target.value)}>\r\n      <option value=\"en\">{t(\"menu.language.en\")}</option>\r\n      <option value=\"es\">{t(\"menu.language.es\")}</option>\r\n    </Form.Select></Col>\r\n  </Form.Group>\r\n}\r\n","import React, { useMemo, useRef } from \"react\"\r\nimport { useFormik } from \"formik\"\r\nimport * as Yup from 'yup'\r\nimport { Col, Form, Row } from \"react-bootstrap\"\r\nimport ParticipantRequest from \"../../api/models/clientorder/ParticipantRequest\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport Program from \"../../api/models/clientorder/Program\"\r\nimport DateOfBirth from \"../Login/DateOfBirth\"\r\nimport FormatLocalISODateString from \"../../formatters/FormatLocalISODateString\"\r\nimport PhoneNumber from \"../Login/PhoneNumber\"\r\n\r\ninterface ParticipantFormProps {\r\n  program: Program\r\n  request: ParticipantRequest\r\n  onSubmit?: (request: ParticipantRequest) => void\r\n}\r\n\r\nexport default function ParticipantForm(props: ParticipantFormProps) {\r\n  const { t } = useTranslation()\r\n\r\n  const validationSchema = useMemo(() => {\r\n    const fieldRequiredMessage = t(\"shared.validation.fieldRequired\")\r\n    return Yup.object().shape({\r\n      lastName: Yup.string().nullable(true).required(fieldRequiredMessage),\r\n      dateOfBirth: Yup.date().when(\"showDOB\", {\r\n        is: () => props.program.requireDOB,\r\n        then: Yup.date().required(fieldRequiredMessage)\r\n      }),\r\n      email: Yup.string().email().when(\"showEmail\", {\r\n        is: () => props.program.requireEmail,\r\n        then: Yup.string().required(fieldRequiredMessage)\r\n      }),\r\n      mobile: Yup.string().when(\"showMobile\", {\r\n        is: () => props.program.requireMobile,\r\n        then: Yup.string().nullable(true).test(\"mobile\", t(\"shared.validation.invalidPhoneNumber\"), (value, context) => context.parent.phoneValid && !!value)\r\n      }),\r\n      referenceID: Yup.string().when(\"requireReferenceID\", {\r\n        is: () => props.program.requireReferenceID,\r\n        then: Yup.string().required(fieldRequiredMessage)\r\n      }),\r\n      offerCode: Yup.string().when(\"requireOfferCode\", {\r\n        is: () => props.program.requireParticipantOfferCode || props.program.requireProgramOfferCode,\r\n        then: Yup.string().required(fieldRequiredMessage)\r\n      })\r\n    })\r\n  }, [t, props.program])\r\n\r\n  const form = useRef<HTMLFormElement>(null)\r\n\r\n  const formik = useFormik<ParticipantRequest & { phoneValid: boolean }>({\r\n    initialValues: { ...props.request, phoneValid: true },\r\n    validationSchema: validationSchema,\r\n    onSubmit: (values) => {\r\n      props.onSubmit && props.onSubmit(values)\r\n    }\r\n  })\r\n\r\n  const handleBirthDateChange = (date: Date | null) => {\r\n    formik.setFieldValue(\"dateOfBirth\", FormatLocalISODateString(date)).then(() => {\r\n      formik.setFieldTouched(\"dateOfBirth\", true, true)\r\n    })\r\n  }\r\n\r\n  const handlePhoneChange = (valid: boolean, mobileNumber: string, country: string) => {\r\n    formik.setFieldValue(\"phoneValid\", valid)\r\n    formik.setFieldTouched(\"phoneValid\", true, true).then(\r\n      () => {\r\n        formik.setFieldValue(\"mobile\", mobileNumber)\r\n        formik.setFieldTouched(\"mobile\", true, true)\r\n        formik.setFieldValue(\"countryAbbreviation\", country)\r\n      }\r\n    )\r\n  }\r\n\r\n  return <Form id=\"participantForm\" ref={form} onSubmit={formik.handleSubmit}>\r\n    <Form.Group className=\"mb-3\" controlId=\"lastName\" as={Row}>\r\n      <Col>\r\n        <Form.Label className=\"fw-bold text-uppercase pt-2\">{t(`clientOrder.lastName`)}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"lastName\" maxLength={25}\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.lastName || \"\"}\r\n          isInvalid={!!formik.errors.lastName && formik.touched.lastName} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.lastName}</Form.Control.Feedback>\r\n      </Col>\r\n    </Form.Group>\r\n    {props.program.requireDOB && <Form.Group className=\"mb-3\" controlId=\"dateOfBirth\" as={Row}>\r\n      <Col>\r\n        <DateOfBirth onChange={handleBirthDateChange} initialDate={formik.values.dateOfBirth} title={t(`clientOrder.dateOfBirth`)}\r\n          onSubmit={() => form.current && form.current.dispatchEvent(new Event(\"submit\"))} skipFeedback />\r\n        {!!formik.errors.dateOfBirth && formik.touched.dateOfBirth &&\r\n          <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{t(\"shared.validation.invalidDate\")}</Form.Control.Feedback>}\r\n      </Col>\r\n    </Form.Group>}\r\n    {props.program.requireEmail && <Form.Group className=\"mb-3\" controlId=\"email\" as={Row}>\r\n      <Col>\r\n        <Form.Label className=\"fw-bold text-uppercase pt-2\">{t(`clientOrder.email`)}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"email\" maxLength={100}\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.email || \"\"}\r\n          isInvalid={!!formik.errors.email && formik.touched.email} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.email}</Form.Control.Feedback>\r\n      </Col>\r\n    </Form.Group>}\r\n    {props.program.requireMobile && <Form.Group className=\"mb-3\" controlId=\"mobile\" as={Row}>\r\n      <Col>\r\n        <PhoneNumber\r\n          title={t(\"clientOrder.mobilePhoneNumber\")}\r\n          onChange={handlePhoneChange} skipFocus skipFeedback />\r\n        {!!formik.errors.mobile && formik.touched.mobile\r\n          && <Form.Control.Feedback className=\"d-block\" type=\"invalid\">{formik.errors.mobile}</Form.Control.Feedback>}\r\n      </Col>\r\n    </Form.Group>}\r\n    {props.program.requireReferenceID && <Form.Group className=\"mb-3\" controlId=\"referenceID\" as={Row}>\r\n      <Col>\r\n        <Form.Label className=\"fw-bold text-uppercase pt-2\">{props.program.referenceIdLabel || t(`clientOrder.referenceID`)}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"referenceID\" maxLength={50}\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.referenceID || \"\"}\r\n          isInvalid={!!formik.errors.referenceID && formik.touched.referenceID} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.referenceID}</Form.Control.Feedback>\r\n      </Col>\r\n    </Form.Group>}\r\n    {(props.program.requireParticipantOfferCode || props.program.requireProgramOfferCode) && <Form.Group className=\"mb-3\" controlId=\"offerCode\" as={Row}>\r\n      <Col>\r\n        <Form.Label className=\"fw-bold text-uppercase pt-2\">{t(`clientOrder.offerCode`)}</Form.Label>\r\n        <Form.Control type=\"text\" name=\"offerCode\" maxLength={50}\r\n          onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.offerCode || \"\"}\r\n          isInvalid={!!formik.errors.offerCode && formik.touched.offerCode} />\r\n        <Form.Control.Feedback type=\"invalid\">{formik.errors.offerCode}</Form.Control.Feedback>\r\n      </Col>\r\n    </Form.Group>}\r\n  </Form>\r\n}\r\n","import React, { useState } from \"react\"\r\nimport { Button, Col, Row, Spinner } from \"react-bootstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport { toast } from \"react-toastify\"\r\nimport { Subscription } from \"rxjs\"\r\nimport { getParticipant } from \"../../api/ClientOrder\"\r\nimport ParticipantRequest from \"../../api/models/clientorder/ParticipantRequest\"\r\nimport ParticipantResponse from \"../../api/models/clientorder/ParticipantResponse\"\r\nimport Program from \"../../api/models/clientorder/Program\"\r\nimport { APIError } from \"../../api/ObservableFromFetch\"\r\nimport EscapePhoneNumber from \"../../formatters/EscapePhoneNumber\"\r\nimport LanguageSelector from \"../LanguageSelector\"\r\nimport ParticipantForm from \"./ParticipantForm\"\r\n\r\ninterface ParticipantProps {\r\n  program: Program\r\n  onSubmit: (result: ParticipantResponse) => void\r\n}\r\n\r\nconst emptyParticipant: ParticipantRequest = {\r\n  programId: 0,\r\n  lastName: undefined,\r\n  dateOfBirth: undefined,\r\n  email: undefined,\r\n  mobile: undefined,\r\n  referenceID: undefined,\r\n  offerCode: undefined,\r\n}\r\n\r\nexport default function ParticipantWraper(props: ParticipantProps) {\r\n  const { t } = useTranslation()\r\n  const [processing, setProcessing] = useState(false)\r\n\r\n  const handleSubmit = (request: ParticipantRequest) => {\r\n    request.mobile = EscapePhoneNumber(request.mobile ?? \"\")\r\n    setProcessing(true)\r\n\r\n    const subscriptions = new Subscription()\r\n    subscriptions.add(getParticipant(request).subscribe({\r\n      next: (result: ParticipantResponse) => {\r\n        setProcessing(false)\r\n        if (!result.participantId) {\r\n          toast.error(t(result.message || \"clientOrder.programInactive\"))\r\n          return\r\n        }\r\n        props.onSubmit(result)\r\n      },\r\n      error: (e: APIError) => {\r\n        toast.error(t(e.message, { data: e.data }))\r\n        setProcessing(false)\r\n      }\r\n    }))\r\n\r\n    return () => subscriptions.unsubscribe()\r\n  }\r\n\r\n  return <>\r\n    <Row>\r\n      <Col lg={5}>\r\n        <LanguageSelector />\r\n      </Col>\r\n    </Row>\r\n    <Row>\r\n      <Col xs={12}>{props.program.participantInformationMsg || t(\"clientOrder.participantInformation\")}</Col>\r\n      <Col lg={5}>\r\n        <ParticipantForm program={props.program} request={{ ...emptyParticipant, programId: props.program.programId! }} onSubmit={handleSubmit} />\r\n        <Button variant=\"primary\" type=\"submit\" form=\"participantForm\" disabled={processing} className=\"mt-3\">\r\n          {processing && <Spinner as=\"span\" animation=\"border\" size=\"sm\" role=\"status\" aria-hidden=\"true\" className=\"me-2\" />}\r\n          <span>{t(\"shared.button.continue\")}</span>\r\n        </Button>\r\n      </Col>\r\n    </Row>\r\n  </>\r\n}\r\n","import React, { useEffect, useReducer, useState } from \"react\"\r\nimport { Col, Container, Row, Spinner } from \"react-bootstrap\"\r\nimport Order from \"./ClientOrder/Order\"\r\nimport { toast } from \"react-toastify\"\r\nimport { Subscription } from \"rxjs\"\r\nimport { getProgram } from \"../api/ClientOrder\"\r\nimport Program from \"../api/models/clientorder/Program\"\r\nimport { APIError } from \"../api/ObservableFromFetch\"\r\nimport { useTranslationWithRef } from \"../hooks/useTranslationWithRef\"\r\nimport Participant from \"./ClientOrder/Participant\"\r\nimport { AppRoute } from \"../AppRoute\"\r\nimport { useHistory } from \"react-router\"\r\nimport Verification from \"./ClientOrder/Verification\"\r\nimport { DatumLoader } from \"./DataLoader\"\r\nimport ParticipantResponse from \"../api/models/clientorder/ParticipantResponse\"\r\nimport ParticipantIdentifier from \"../api/models/clientorder/ParticipantIdentifier\"\r\n\r\nenum OrderStep {\r\n  ProgramInactive,\r\n  Participant,\r\n  ParticipantInactive,\r\n  Verification,\r\n  Order,\r\n  //Finish,\r\n}\r\n\r\nexport default function ClientOrder() {\r\n  const history = useHistory()\r\n\r\n  const [step, setStep] = useState<OrderStep>(OrderStep.ProgramInactive)\r\n  const [participant, setParticipant] = useState<ParticipantIdentifier>()\r\n  const [translationRef, t] = useTranslationWithRef()\r\n  const [program, setProgram] = useReducer((state: DatumLoader<Program>, newState: Partial<DatumLoader<Program>>) => ({ ...state, ...newState }), { loading: true, loaded: false, data: undefined })\r\n  const [message, setMessage] = useState<string | undefined>()\r\n\r\n  useEffect(() => {\r\n    const subscriptions = new Subscription()\r\n\r\n    subscriptions.add(getProgram({ host: window.location.hostname }).subscribe({\r\n      next: (result: Program) => {\r\n        if (!result.programId) {\r\n          setMessage(result.message || translationRef.current(\"clientOrder.programInactive\"))\r\n          setProgram({ loading: false })\r\n          setStep(OrderStep.ProgramInactive)\r\n        } else {\r\n          setProgram({ loading: false, loaded: true, data: result })\r\n          setStep(OrderStep.Participant)\r\n        }\r\n      },\r\n      error: (e: APIError) => {\r\n        setProgram({ loading: false })\r\n        toast.error(translationRef.current(e.message, { data: e.data }))\r\n      }\r\n    }))\r\n\r\n    return () => subscriptions.unsubscribe()\r\n  }, [translationRef])\r\n\r\n  const handleParticipantSubmit = (participant: ParticipantResponse) => {\r\n    if (!participant?.participantId || !program.data) {\r\n      return\r\n    }\r\n    setParticipant(participant)\r\n    if (program.data.validateEmail || program.data.validateMobile || !participant.participantHash) {\r\n      setStep(OrderStep.Verification)\r\n    } else {\r\n      setStep(OrderStep.Order)\r\n    }\r\n  }\r\n\r\n  const handleOrderNext = () => {\r\n    toast.success(t(\"clientOrder.registered\"))\r\n    history.push(AppRoute.ClientOrder)\r\n  }\r\n\r\n  const handleParticipantVerification = (participant: ParticipantIdentifier) => {\r\n    setParticipant(participant)\r\n    setStep(OrderStep.Order)\r\n  }\r\n\r\n  return <Container>\r\n    <Row>\r\n      <Col sm={12} className=\"my-3\">\r\n        {program.loading && <Spinner animation=\"border\" role=\"status\" size=\"sm\" className=\"d-block mx-1\" />}\r\n        {step === OrderStep.ProgramInactive && <>{message}</>}\r\n        {step === OrderStep.Participant && !!program.data && <Participant program={program.data} onSubmit={handleParticipantSubmit} />}\r\n        {step === OrderStep.ParticipantInactive && <>{message}</>}\r\n        {step === OrderStep.Verification && participant?.participantId\r\n          && <Verification onNext={handleParticipantVerification} participantId={participant.participantId} program={program.data!} />}\r\n        {step === OrderStep.Order && participant && <Order participant={participant} onNext={handleOrderNext} />}\r\n      </Col>\r\n    </Row>\r\n  </Container>\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\"\r\nimport { Button, Card, Form } from \"react-bootstrap\";\r\nimport { toast } from \"react-toastify\";\r\nimport { verifyParticipant } from \"../../api/ClientOrder\";\r\nimport ParticipantIdentifier from \"../../api/models/clientorder/ParticipantIdentifier\";\r\nimport Program from \"../../api/models/clientorder/Program\";\r\nimport VerificationResponse from \"../../api/models/clientorder/VerificationResponse\";\r\nimport { APIError } from \"../../api/ObservableFromFetch\";\r\nimport { useTranslationWithRef } from \"../../hooks/useTranslationWithRef\";\r\n\r\ninterface VerificationProps {\r\n  participantId: number\r\n  program: Program\r\n  onNext: (participant: ParticipantIdentifier) => void\r\n}\r\n\r\nexport default function Verification(props: VerificationProps) {\r\n  const [, t] = useTranslationWithRef()\r\n  const [code, setCode] = useState(\"\")\r\n  const [codeTouched, setCodeTouched] = useState(false)\r\n  const [submitting, setSubmitting] = useState(false)\r\n  const form = useRef<HTMLFormElement>(null)\r\n  const verificationInputRef = useRef<HTMLInputElement>(null)\r\n  const validCode = /^\\d{6}$/.test(code)\r\n\r\n  useEffect(() => {\r\n    verificationInputRef.current?.focus()\r\n  }, [])\r\n\r\n  const handleFormSubmit = (e: React.FormEvent<HTMLFormElement>) => {\r\n    e.preventDefault()\r\n    setSubmitting(true)\r\n    verify()\r\n  }\r\n\r\n  const verify = () => {\r\n    verifyParticipant({\r\n      participantId: props.participantId,\r\n      verificationCode: code,\r\n    }).subscribe({\r\n      next: (result: VerificationResponse) => {\r\n        setSubmitting(false)\r\n        props.onNext && props.onNext(result)\r\n      },\r\n      error: (e: APIError) => {\r\n        toast.error(t(e.message, { data: e.data }))\r\n        setSubmitting(false)\r\n      }\r\n    })\r\n  }\r\n\r\n  return <div className=\"d-flex flex-column justify-content-center align-items-center min-vh-60\">\r\n    <Form onSubmit={handleFormSubmit} ref={form}>\r\n      <Card>\r\n        <Card.Body>\r\n          <Form.Group className=\"mb-3\" controlId=\"verification\">\r\n            <p>{t(props.program.validateMobile ? \"login.verification.sent_mobile\" : \"login.verification.sent_email\")}</p>\r\n            <Form.Label className=\"fw-bold text-uppercase\">{t(\"login.verification.title\")}</Form.Label>\r\n            <Form.Control type=\"text\" ref={verificationInputRef} value={code} minLength={6} maxLength={6}\r\n              onBlur={() => setCodeTouched(true)} onChange={(e) => { setCodeTouched(true); setCode(e.target.value) }}\r\n              autoComplete=\"one-time-code\" className={!validCode && codeTouched ? \"is-invalid\" : \"\"} />\r\n            {!validCode && codeTouched && <Form.Control.Feedback className=\"order-last\" type=\"invalid\">{t(\"login.verification.invalid\")}</Form.Control.Feedback>}\r\n          </Form.Group>\r\n          <Form.Group>\r\n            <Button type=\"submit\" className=\"mx-1\" disabled={!validCode || submitting}>{t(\"login.save\")}</Button>\r\n          </Form.Group>\r\n        </Card.Body>\r\n      </Card>\r\n    </Form>\r\n  </div>\r\n}\r\n","import * as React from \"react\";\r\n\r\nexport default function FAQ() {\r\n  return (<>\r\n    <article className=\"faq\">\r\n      <h1 className=\"h5 text-center text-primary mt-3 mb-0\">AccessMyHealth&trade;</h1>\r\n      <h5 className=\"text-center text-primary mb-0\">FAQ</h5>\r\n\r\n      <p className=\"question\">I have not received a text.</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>Check that you provided a cell phone number – a landline number will NOT receive a text message but will receive a voice message if there is an answering machine.</li>\r\n          <li>If you provided a cell phone number, enable the SMS function on your phone.</li>\r\n          <li>Your carrier may not participate in the receipt of SMS text. Please check with your service provider.</li>\r\n          <li>Contact your service provider for questions about your text and data service plan</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">Why are my results not available?</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>There are several reasons your laboratory report may not be available on AccessMyHealth&trade;.</li>\r\n          <li>The sponsor/insurance company does not participate in the AccessMyHealth&trade; program.</li>\r\n          <li>The phone number you entered does not match our records.</li>\r\n          <li>The date of birth you entered does not match our records.</li>\r\n          <li>The sample has not been received at CRL.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">How can I change my date of birth/ gender/ spelling of my name (or other demographic info)?</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>If your sample was for an insurance application, please contact your agent or the home \r\n            office of the insurance company. Some insurance companies will provide us with \r\n            information to update our records; other insurance companies may send you a copy of your \r\n            laboratory report.</li>\r\n          <li>If the sample was collected for any other reason, please contact:<br></br>\r\n            <a href=\"accessmyhealth@crlcorp.com\">accessmyhealth@crlcorp.com</a>.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">My phone number is an international phone number.</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>AccessMyHealth&trade; does not have the ability to call international phone numbers.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">After I enter my date of birth, nothing happens.</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>Please accept the “Terms of Use” below the birth date (you may have to scroll down) and \r\n            click “Submit”.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">When I click on the link in my text my page just refreshes.</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>Some browsers require a double click on the link to open.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">I have entered my phone # and date of birth and am being told a verification code has been sent. \r\n        Why am I not receiving my verification code?</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>If your phone number is associated with a cell phone, you will receive a text from 88792. \r\n            You may need to click on the text to view the six-digit verification code. </li>\r\n          <li>If your phone number is associated with a land line, the automated system will call your \r\n            phone with the six-digit verification within a few seconds after you click on “Submit”. Please \r\n            answer the phone when it rings to hear the incoming message with the verification code.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">I received my Verification Code, why can’t I see my laboratory report when I click on the link.</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>Some browsers require a double click on the link to open.</li>\r\n          <li>\r\n            It is possible the PDF file is downloading somewhere on your computer or device that you \r\n            are not aware of. Please check your download files.\r\n          </li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">I’m receiving a message stating I’m locked out because I’ve tried too many times.</p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>You have attempted to access your results 5 times or more with the incorrect number. The \r\n            site will be locked for 15 minutes; please try again after that time.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">\r\n        Why are my HIV results not included?\r\n      </p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>If your collection was for an insurance application, HIV results are not available on \r\n            AccessMyHealth&trade;</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">\r\n        Can you email or fax my results?\r\n      </p>\r\n      <div className=\"answer\">\r\n        There are multiple options to obtain your laboratory report:\r\n        <ul>\r\n          <li>Obtain the report through AccessMyHealth&trade;</li>\r\n          <li>If your collection was for an insurance application, please contact your insurance agent for \r\n            assistance in obtaining your report from the insurance company.</li>\r\n          <li>If your collection was for any other reason, please contact the sponsor company.</li>\r\n          <li>Requesting a copy of your laboratory report through CRL’s Privacy Office\r\n            <ul>\r\n              <li className=\"alpha-dot\">Go to CRL’s corporate website at: <a href=\"https://www.crlcorp.com/\">www.crlcorp.com</a></li>\r\n              <li className=\"alpha-dot\">Click on “Notice of Privacy Practices” at the bottom of the page.</li>\r\n              <li className=\"alpha-dot\">Click on” Privacy Notice.”</li>\r\n              <li className=\"alpha-dot\">Click link for “Right to Access” under Rights Regarding Your Information</li>\r\n              <li className=\"alpha-dot\">Print the form</li>\r\n              <li className=\"alpha-dot\">Complete and follow the instructions on the form</li>\r\n            </ul>\r\n          </li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">\r\n        How do I print my laboratory report?\r\n      </p>\r\n      <div className=\"answer\">\r\n        From the graphical report:\r\n        <ul>\r\n          <li>Click on “text report” on the menu bar at the top.</li>\r\n          <li>Click on the download icon at the top right corner of the report.</li>\r\n        </ul>\r\n      </div>\r\n\r\n      <p className=\"question\">\r\n        How long will my results be available on this site?\r\n      </p>\r\n      <div className=\"answer\">\r\n        <ul>\r\n          <li>If your collection was for an insurance application, your laboratory report will be available \r\n            for 12 months from the date the sample was received at the laboratory. </li>\r\n          <li>If your sample was collected for any other reason, your laboratory report will be available \r\n            for 24 months from the date the sample was received at the laboratory.</li>\r\n        </ul>\r\n      </div>\r\n\r\n\r\n    </article>\r\n  </>)\r\n}","import React, { Suspense, useLayoutEffect } from 'react';\r\nimport { Redirect, Route, Switch, useLocation } from 'react-router';\r\nimport Layout from './components/Layout';\r\nimport Login from './components/Login';\r\nimport LifeAge from './components/LifeAge';\r\nimport OrderTesting from './components/OrderTesting';\r\nimport Results from './components/Results';\r\nimport { AppRoute } from './AppRoute';\r\nimport { StoreProvider, useAuthStore } from './stores/StoreProvider';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { toast } from 'react-toastify';\r\nimport LoadingOverlay from './components/LoadingOverlay';\r\nimport Registration from './components/Registration';\r\nimport ClientOrder from './components/ClientOrder';\r\nimport \"./App.scss\";\r\nimport FAQ from './components/FAQ';\r\nimport serviceWorkerStore from \"./stores/ServiceWorkerStore\"\r\n\r\ntoast.configure({\r\n  position: \"top-right\",\r\n  autoClose: 5000,\r\n  hideProgressBar: true,\r\n  newestOnTop: true,\r\n  closeOnClick: true,\r\n  rtl: false,\r\n  pauseOnFocusLoss: true,\r\n  draggable: true,\r\n  pauseOnHover: true,\r\n  theme: \"colored\"\r\n})\r\n\r\nexport function App() {\r\n  const authStore = useAuthStore()\r\n  const isAuthenticated = !!authStore.authToken\r\n  const useLifeAgeCalculator = authStore.domain?.useLifeAgeCalculator ?? false\r\n  const useClientOrder = authStore.domain?.useClientOrder ?? false\r\n  const location = useLocation()\r\n\r\n  useLayoutEffect(() => {\r\n    if (serviceWorkerStore.reloadRequired) {\r\n      window.location.reload()\r\n    }\r\n  }, [location])\r\n\r\n  let collection = document.getElementsByTagName(\"iframe\");\r\n\r\n  Array.from(collection).forEach(function (element) {\r\n      element.removeAttribute(\"allowtransparency\");\r\n      element.removeAttribute(\"frameborder\");\r\n      element.removeAttribute(\"scrolling\");\r\n  });\r\n\r\n  return (\r\n    <Layout loading={authStore.translationLoading}>\r\n      <Switch>\r\n        {useClientOrder && <Route exact path={AppRoute.Landing} component={ClientOrder} />}\r\n        <Route exact path={AppRoute.Login} component={Login} />\r\n        <Route exact path={AppRoute.Registration} component={Registration} key={location.key} />\r\n        <Route exact path={AppRoute.RegistrationAlt} component={Registration} key={location.key} />\r\n        <Route exact path={AppRoute.ClientOrder} component={ClientOrder} key={location.key} />\r\n        {isAuthenticated && <Route path={AppRoute.Results} component={Results} />}\r\n        {isAuthenticated && useLifeAgeCalculator && <Route path={AppRoute.LifeAge} component={LifeAge} />}\r\n        {isAuthenticated && <Route path={AppRoute.OrderTesting} component={OrderTesting} />}\r\n        <Route path={AppRoute.FAQ} component={FAQ} />\r\n        <Route path=\"*\">\r\n          <Redirect to={isAuthenticated ? AppRoute.Results : AppRoute.Login} />\r\n        </Route>\r\n      </Switch>\r\n    </Layout>\r\n  )\r\n}\r\n\r\nconst AppWithStore = observer(App);\r\n\r\nexport default function WrappedApp() {\r\n  return (\r\n    <Suspense fallback={<LoadingOverlay />}>\r\n      <StoreProvider>\r\n        <AppWithStore />\r\n      </StoreProvider>\r\n    </Suspense>\r\n  );\r\n}","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n    // [::1] is the IPv6 localhost address.\r\n    window.location.hostname === '[::1]' ||\r\n    // 127.0.0.0/8 are considered localhost for IPv4.\r\n    window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Let's check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl, config);\r\n\r\n        // Add some additional logging to localhost, pointing developers to the\r\n        // service worker/PWA documentation.\r\n        navigator.serviceWorker.ready.then(() => {\r\n          console.log(\r\n            'This web app is being served cache-first by a service ' +\r\n              'worker. To learn more, visit https://cra.link/PWA'\r\n          );\r\n        });\r\n      } else {\r\n        // Is not localhost. Just register service worker\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then((registration) => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        if (installingWorker == null) {\r\n          if (registration.waiting === null) {\r\n            return;\r\n          }\r\n          if (config && config.onUpdate) {\r\n            config.onUpdate(registration);\r\n          }\r\n          return;\r\n        }\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the updated precached content has been fetched,\r\n              // but the previous service worker will still serve the older\r\n              // content until all client tabs are closed.\r\n\r\n              // Execute callback\r\n              if (config && config.onUpdate) {\r\n                config.onUpdate(registration);\r\n              }\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n\r\n              // Execute callback\r\n              if (config && config.onSuccess) {\r\n                config.onSuccess(registration);\r\n              }\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch((error) => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl, {\r\n    headers: { 'Service-Worker': 'script' },\r\n  })\r\n    .then((response) => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      const contentType = response.headers.get('content-type');\r\n      if (\r\n        response.status === 404 ||\r\n        (contentType != null && contentType.indexOf('javascript') === -1)\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then((registration) => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log('No internet connection found. App is running in offline mode.');\r\n    });\r\n}\r\n\r\nexport function unregister() {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready\r\n      .then((registration) => {\r\n        registration.unregister();\r\n      })\r\n      .catch((error) => {\r\n        console.error(error.message);\r\n      });\r\n  }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport serviceWorkerStore from \"./stores/ServiceWorkerStore\"\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n  <BrowserRouter basename={baseUrl || \"\"}>\r\n    <App />\r\n  </BrowserRouter>,\r\n  rootElement);\r\n\r\nserviceWorkerRegistration.register({\r\n  onUpdate: (registration: any) => {\r\n    const waitingServiceWorker = registration.waiting\r\n    if (waitingServiceWorker) {\r\n      waitingServiceWorker.addEventListener(\"statechange\", (event: Event) => {\r\n        const serviceWorker = event?.target as ServiceWorker\r\n        if (serviceWorker.state === \"activated\") {\r\n          if (serviceWorkerStore.softReload) {\r\n            serviceWorkerStore.reloadRequired = true\r\n          } else {\r\n            window.location.reload()\r\n          }\r\n        }\r\n      })\r\n      waitingServiceWorker.postMessage({ type: \"SKIP_WAITING\" })\r\n    }\r\n  }\r\n})\r\n"],"names":["module","exports","self","ReferenceError","__esModule","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","result","Super","NewTarget","this","constructor","Reflect","construct","arguments","apply","_getPrototypeOf","o","setPrototypeOf","__proto__","subClass","superClass","create","value","sham","Proxy","Boolean","valueOf","call","e","_typeof","assertThisInitialized","_setPrototypeOf","p","obj","Symbol","iterator","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","isHTMLElement","offsetParentIsScaled","element","rect","getBoundingClientRect","scaleX","width","offsetWidth","scaleY","height","offsetHeight","isElementScaled","documentElement","getDocumentElement","scroll","scrollLeft","scrollTop","offsets","x","y","getNodeName","isScrollParent","node","getWindow","getWindowScroll","getNodeScroll","clientLeft","clientTop","getWindowScrollBarX","left","top","order","modifiers","map","Map","visited","Set","sort","modifier","add","name","concat","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","debounce","fn","pending","Promise","resolve","then","undefined","DEFAULT_OPTIONS","placement","strategy","areValidElements","_len","args","Array","_key","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","popper","options","state","orderedModifiers","assign","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","isElement","listScrollParents","contextElement","modifierPhases","acc","phase","filter","orderModifiers","merged","reduce","current","existing","data","keys","mergeByName","m","enabled","_ref3","_ref3$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","rects","getOffsetParent","getLayoutRect","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","destroy","onFirstUpdate","contains","parent","child","rootNode","getRootNode","isShadowRoot","next","isSameNode","parentNode","host","includeScale","right","bottom","getComputedStyle","ownerDocument","document","window","clientRect","Math","abs","offsetLeft","offsetTop","nodeName","toLowerCase","isTableElement","indexOf","getTrueOffsetParent","position","isFirefox","navigator","userAgent","currentNode","getParentNode","css","transform","perspective","contain","willChange","getContainingBlock","assignedSlot","toString","defaultView","win","pageXOffset","pageYOffset","Element","HTMLElement","ShadowRoot","_getComputedStyle","overflow","overflowX","overflowY","test","getScrollParent","body","list","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","auto","basePlacements","start","end","clippingParents","viewport","variationPlacements","placements","_ref","_state$modifiersData$","arrowElement","arrow","popperOffsets","basePlacement","getBasePlacement","axis","getMainAxisFromPlacement","len","paddingObject","padding","mergePaddingObject","expandToHashMap","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","min","max","center","offset","within","axisProp","centerOffset","_ref2","_options$element","querySelector","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","dpr","devicePixelRatio","round","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","getVariation","passive","_options$scroll","_options$resize","resize","addEventListener","removeEventListener","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","_skip","_options$mainAxis","mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","boundary","rootBoundary","altBoundary","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","detectOverflow","a","b","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","slice","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","elementContext","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","computeOffsets","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","getFreshSideObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","mathMin","mathMax","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","commonX","commonY","rectToClientRect","getClientRectFromMixedType","clippingParent","html","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingRect","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","_options$altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","hashMap","split","React","createCommonjsModule","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","propName","componentName","location","propFullName","secret","err","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","propTypes","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","isArray","_s","_e","_arr","_n","_d","done","_arrayLikeToArray","n","from","arr2","usePrevious","ref","useRef","useEffect","isUnknownObject","raw","isPromise","isStripe","createToken","createPaymentMethod","confirmCardPayment","PLAIN_OBJECT_STR","isEqual","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","l","r","pred","extractAllowedOptionsUpdates","prevOptions","immutableKeys","newOptions","isUpdated","includes","console","warn","INVALID_STRIPE_ERROR","validateStripe","maybeStripe","parseStripeProp","tag","stripePromise","stripe","ElementsContext","createContext","displayName","parseElementsContext","ctx","useCase","Elements","rawStripeProp","children","parsed","useMemo","_React$useState2","useState","setContext","isMounted","safeSetContext","prevStripe","updates","anyStripe","_registerWrapper","registerAppInfo","version","url","createElement","Provider","useElementsContextWithUseCase","useCaseMessage","useContext","useElements","useStripe","ElementsConsumer","useCallbackReference","cb","noop","capitalized","str","charAt","toUpperCase","createElementComponent","type","isServer","id","className","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","onClick","elementRef","domNode","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","useLayoutEffect","mount","on","__elementType","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","PaymentRequestButtonElement","LinkAuthenticationElement","ShippingAddressElement","AffirmMessageElement","AfterpayClearpayMessageElement","factory","require","t","s","h","c","d","g","return","u","f","parseInt","isColorHex","shadeHexColor","shadeRGBColor","isObject","extend","is","clone","log","LN10","pow","floor","log10","parseFloat","toPrecision","random","substring","String","Number","paddingTop","paddingBottom","paddingLeft","paddingRight","match","RegExp","join","PI","sin","cos","splice","parentElement","classList","style","isNaN","appVersion","w","setEasingFunctions","globals","easing","config","chart","animations","attr","animate","afterAll","cx","cy","el","realIndex","j","fill","pathFrom","pathTo","speed","delay","animateGradually","dynamicAnimation","dataChanged","morphSVG","comboCharts","delayedElements","remove","animationEnded","showDelayedElements","events","animationEnd","gridHeight","shouldAnimate","plot","isNumber","series","maxValsInArrayIndex","animationCompleted","v","unfilter","SVG","Filter","size","states","normal","applyFilter","dropShadow","intensity","addShadow","componentTransfer","rgb","slope","intercept","filterer","setAttribute","_scaleFilterSize","addNormalFilter","addLightenFilter","addDarkenFilter","blur","color","opacity","flood","composite","sourceAlpha","gaussianBlur","merge","blend","noUserSpaceOnUse","isIE","isSafari","selectedDataPoints","active","sqrt","origPoint","k","dom","Paper","line","x1","y1","x2","y2","stroke","rx","ry","polygon","circle","strokeWidth","fillOpacity","strokeOpacity","classes","strokeLinecap","strokeDashArray","lineCap","path","class","group","animationDelay","initialSpeed","dataChangeSpeed","shouldClipToGrid","bindEventsOnPaths","drawShadow","A","S","C","L","P","I","resized","M","T","dashArray","X","drawPath","cuid","getDefaultFilter","enabledOnSeries","z","pathMouseEnter","bind","pathMouseLeave","pathMouseDown","E","animatePathsGradually","pattern","hexToRgba","gradient","at","gridWidth","gradientUnits","fx","fy","to","text","maxWidth","fontSize","fontFamily","getTextRects","textAnchor","fontWeight","foreColor","cssClass","isPlainText","getTextBasedOnMaxWidth","tspan","newLine","plain","pSize","pRadius","drawRect","pointFillColor","pointFillOpacity","pointStrokeColor","pointStrokeWidth","pointStrokeOpacity","drawCircle","getAttribute","dataPointMouseEnter","seriesIndex","dataPointIndex","fireEvent","hover","isTouchDevice","dataPointMouseLeave","allowMultipleDataPointsSelection","select","members","dataPointSelection","getBBox","drawText","bbox","getComputedTextLength","textContent","getSubStringLength","xaxis","convertedCatToNumeric","labels","formatter","minX","markers","discrete","sizeOffset","largestSize","seriesTotals","seriesX","seriesPercent","stackedSeriesTotals","yRange","isMultipleYAxis","minYArr","maxYArr","minY","maxY","xRange","maxX","zRange","maxZ","minZ","initialMaxX","initialMinX","MIN_VALUE","hasNegs","yRatio","invertedYRatio","zRatio","xRatio","initialXRatio","invertedXRatio","baseLineInvertedY","baseLineY","baseLineX","seriesLog","yaxis","logarithmic","getLogVal","logBase","invalidLogScale","getBaseLog","yLogRatio","logYRange","MAX_VALUE","comboBarCount","extendYAxis","annotations","extendYAxisAnnotations","extendXAxisAnnotations","points","extendPointAnnotations","annoCtx","label","orientation","baseEl","graphics","rotateAroundCenter","trim","barPadForNumericAxis","borderRadius","background","borderWidth","borderColor","addBackgroundToAnno","insertBefore","mouseEnter","mouseLeave","click","invertAxis","categoryLabels","yAxisIndex","marker","reversed","inversedReversedAxis","dataFormatXNumeric","getStringX","helpers","getX1X2","drawLine","offsetX","offsetY","appendChild","fillColor","rel","setOrientations","addXaxisAnnotation","getY1Y2","_getYAxisAnnotationWidth","addYaxisAnnotation","strokeColor","radius","drawMarker","customSVG","innerHTML","image","addImage","appendTo","addPointAnnotation","months","shortMonths","days","shortDays","toolbar","exportToSVG","exportToPNG","exportToCSV","menu","selection","selectionZoom","zoomIn","zoomOut","pan","yAxis","show","showAlways","showForNullSeries","seriesName","opposite","tickAmount","forceNiceScale","floating","decimalsInFloat","minWidth","align","rotate","colors","axisBorder","axisTicks","title","tooltip","crosshairs","pointAnnotation","yAxisAnnotation","xAxisAnnotation","backgroundColor","texts","images","shapes","locales","defaultLocale","beforeMount","mounted","updated","mouseMove","xAxisLabelClick","legendClick","markerClick","beforeZoom","beforeResetZoom","zoomed","scrolled","brushScrolled","parentHeightOffset","redrawOnParentResize","redrawOnWindowResize","sparkline","brush","autoScaleYaxis","targets","stacked","stackType","tools","download","zoom","zoomin","zoomout","customIcons","export","csv","filename","columnDelimiter","headerCategory","headerValue","dateFormatter","Date","toDateString","png","svg","autoSelected","zoomedArea","plotOptions","area","fillTo","bar","horizontal","columnWidth","barHeight","distributed","borderRadiusApplication","borderRadiusWhenStacked","rangeBarOverlap","rangeBarGroupRows","hideZeroBarsWhenGrouped","isDumbbell","dumbbellColors","isFunnel","isFunnel3d","ranges","backgroundBarColors","backgroundBarOpacity","backgroundBarRadius","dataLabels","maxItems","hideOverflowingLabels","total","bubble","zScaling","minBubbleRadius","maxBubbleRadius","candlestick","upward","downward","wick","useFillColor","boxPlot","upper","lower","heatmap","enableShades","shadeIntensity","reverseNegativeShade","useFillColorAsStroke","colorScale","inverse","treemap","format","radialBar","inverseOrder","startAngle","endAngle","hollow","margin","imageWidth","imageHeight","imageOffsetX","imageOffsetY","imageClipped","track","pie","customScale","expandOnClick","minAngleToShowLabel","donut","polarArea","rings","spokes","connectorColors","radar","polygons","strokeColors","shade","gradientToColors","inverseColors","opacityFrom","opacityTo","stops","colorStops","src","forecastDataPoints","count","grid","lines","row","column","legend","showForSingleSeries","showForZeroSeries","horizontalAlign","tooltipHoverFormatter","customLegendItems","useSeriesColors","fillColors","customHTML","itemMargin","vertical","onItemClick","toggleDataSeries","onItemHover","highlightDataSeries","onDblClick","showNullDataPoints","noData","verticalAlign","responsive","subtitle","curve","shared","followCursor","intersect","custom","fillSeriesColor","theme","onDatasetHover","items","display","fixed","categories","overwriteCategories","rotateAlways","hideOverlappingLabels","minHeight","maxHeight","showDuplicates","datetimeUTC","datetimeFormatter","year","month","day","hour","minute","second","groups","tickPlacement","range","colorFrom","colorTo","mode","palette","monochrome","shadeTo","isBarHorizontal","xAxisAnnotations","yAxisAnnotations","pointsAnnotations","xDivision","dataPoints","axisCharts","drawYAxisAnnotations","drawXAxisAnnotations","drawPointAnnotations","elGraphical","annotationsBackground","addText","move","addAnnotationExternal","params","pushToMemory","context","contextMethod","childNodes","memory","methodsToExec","randomId","method","querySelectorAll","listToArray","firstChild","removeChild","months31","months30","daysCntOfYear","parseDate","parse","toISOString","substr","getTime","toUTCString","getTimeStamp","locale","getUTCFullYear","getFullYear","getUTCMonth","getMonth","getUTCDate","getDate","getUTCHours","getHours","getUTCMinutes","getMinutes","getUTCSeconds","getSeconds","getUTCMilliseconds","getMilliseconds","getTimezoneOffset","getUTCDay","getDay","formatDate","minMillisecond","maxMillisecond","minSecond","maxSecond","minMinute","maxMinute","minHour","maxHour","minDate","maxDate","minMonth","maxMonth","minYear","maxYear","determineDaysOfMonths","isLeapYear","monthMod","tooltipKeyFormat","yValueDecimal","toFixed","xaxisTooltipFormatter","defaultGeneralFormatter","ttKeyFormatter","ttZFormatter","legendFormatter","xLabelFormatter","ttVal","yLabelFormatters","xyCharts","defaultYFormatter","yAxisScale","seriesNames","niceMax","niceMin","isTimeline","seriesRangeStart","seriesRangeEnd","xLabelFormat","isFinite","startVal","endVal","ylabel","tooltipLabels","getFormatters","yLbFormatter","opts","hideYAxis","_getBoxTooltip","seriesCandleO","seriesCandleH","seriesCandleM","seriesCandleL","seriesCandleC","responsiveOverride","chartType","extendAnnotations","init","funnel","stackedBars","stacked100","dumbbell","checkForDarkTheme","Apex","checkForCatToNumericXAxis","handleUserInputErrors","convertCatToNumeric","extendArray","Y","seriesRange","seriesGoals","seriesZ","seriesColors","seriesXvalues","seriesYvalues","hasXaxisGroups","hasSeriesGroups","seriesGroups","timescaleLabels","noLabelsProvided","resizeTimer","selectionResizeTimer","pointsArray","dataLabelsRects","isXNumeric","skipLastTimelinelabel","skipFirstTimelinelabel","isDataXYZ","isMultiLineX","minXDiff","xAxisScale","xAxisTicksPositions","yLabelsCoords","yTitleCoords","padHorizontal","xTickAmount","chartID","clicked","clientX","clientY","radarPolygons","msMaxTouchPoints","isDirty","isExecCalled","initialConfig","initialSeries","lastXAxis","lastYAxis","columnSeries","allSeriesCollapsed","collapsedSeries","collapsedSeriesIndices","ancillaryCollapsedSeries","ancillaryCollapsedSeriesIndices","risingSeries","capturedSeriesIndex","capturedDataPointIndex","goldenPadding","ignoreYAxisIndexes","yAxisSameScaleIndices","radialSize","zoomEnabled","panEnabled","selectionEnabled","mousedown","lastClientPosition","visibleXRange","SVGNS","svgWidth","svgHeight","previousPaths","allSeriesHasEqualX","lastDrawnDataLabelsIndexes","hasNullValues","rotateXLabels","defaultLabels","LINE_HEIGHT_RATIO","xAxisLabelsHeight","xAxisGroupLabelsHeight","xAxisLabelsWidth","yAxisLabelsWidth","translateX","translateY","translateYAxisX","yAxisWidths","translateXAxisY","translateXAxisX","globalVars","initGlobalVars","F","R","createElementNS","setAttrs","patternID","patternUnits","setAttributeNS","xlink","preserveAspectRatio","elDefs","seriesNumber","getSeriesIndex","getFillColors","fillType","getFillType","getOpacityFromRGBA","handlePatternFill","fillConfig","patternFill","defaultColor","handleGradientFill","clippedImgArea","solid","drawPattern","shadeColor","rgb2hex","gradientFrom","gradientTo","drawGradient","H","getMarkerConfig","setSelectionFilter","addEvents","finishRadius","getMarkerStyle","pointShape","pointStrokeDashArray","D","initialAnim","dynamicAnim","pointsPos","elParent","drawPoint","fillPath","animateMarker","setTimeout","animateCircle","O","textRects","drawnextLabel","pos","isRangeStart","centerTextInBubble","plotDataLabelsText","offsetCorrection","dataLabelsConfig","alwaysDrawDataLabel","dataLabelsCorrection","addBackgroundToDataLabel","nextSibling","N","legendInactiveClass","getElementsByClassName","escapeString","getSeriesByName","isHidden","isSeriesHidden","legendHelpers","emptyCollapsedSeries","updateHelpers","revertDefaultAxisMinMax","_updateSeries","paths","hasAttribute","handlePrevBubbleScatterPaths","filteredSeriesX","W","twoDSeries","threeDSeries","twoDSeriesX","coreUtils","isFormatXY","isFormat2DArray","activeSeriesIndex","getActiveConfigSeriesIndex","parseNumber","goals","isValidDate","isRangeData","fallbackToCategory","handleRangeDataFormat","rangeUniques","overlaps","rangeName","handleCandleStickBoxDataFormat","findIndex","isRangeBar","error","isComboCharts","handleRangeData","isMultiFormat","handleFormat2DArray","handleFormatXY","handleCandleStickBoxData","JSON","stringify","convertCatToNumericXaxis","_generateExternalLabels","excludeCollapsedSeriesInYAxis","core","resetGlobals","isMultipleY","parseDataAxisCharts","getLargestSeries","parseDataNonAxisCharts","setNullSeriesToZeroValues","getSeriesTotals","getStackedSeriesTotals","getPercentSeries","handleExternalLabelsData","getCategoryLabels","B","unit","timeScale","textRect","isBold","reverse","isSeriesNull","pushExtraColors","G","getAttributeNS","isIE11","cloneNode","scaleSvgNode","XMLSerializer","serializeToString","fixSvgStringForIe11","cleanup","getSvgString","Blob","URL","createObjectURL","scale","elWrap","getContext","fillStyle","fillRect","canvg","Canvg","fromString","ignoreClear","ignoreDimensions","msToBlob","stop","blob","encodeURIComponent","Image","crossOrigin","onload","drawImage","toDataURL","imgURI","triggerDownload","svgUrl","dataURI","msSaveOrOpenBlob","fileName","lineDelimiter","getLabel","pop","href","V","elgrid","axesUtils","xaxisLabels","drawnLabels","drawnLabelsRects","offY","isCategoryBarHorizontal","xaxisFontSize","xaxisFontFamily","xaxisForeColors","xaxisBorderWidth","xaxisBorderHeight","drawXAxisLabelAndGroup","cols","elGridBorders","checkLabelBasedOnTickamount","checkForOverflowingLabels","xAxisHeight","labelIndex","getYAxisForeColor","drawYAxisTicks","placeTextWithEllipsis","renderGrid","drawGridArea","elGridRectMask","elGridRectMarkerMask","elForecastMask","elNonForecastMask","elGridRect","elGridRectMarker","xCount","_drawGridLine","drawXaxisTicks","elg","xC","_drawGridLines","elgridLinesV","elgridLinesH","hide","_drawXYLines","_drawInvertedXYLines","drawGridBands","xAxisTickWidth","_drawGridBandRect","_","_adjustTicksForSmallRange","linearScale","ceil","stripNumber","logarithmicScale","logarithmicScaleNice","niceScale","similarIndex","alreadyExists","setYScaleForIndex","sameScaleInMultipleAxes","U","scales","setYRange","setXRange","setZRange","isFloat","noExponents","lowestY","highestY","getMinYMaxY","_setStackedMinMax","setMultipleYScales","setXScale","_handleSingleDataPoint","_getMinXDiff","setUTCDate","setDate","entries","q","axisFontFamily","xAxisoffX","isYAxisHidden","checkForReversedLabels","inversedYAxisTitleText","inversedYAxisBorder","xPaddingForYAxisTitle","xPos","padd","multipleYs","Z","documentEvent","chartClass","eventList","which","capture","setupBrushHandler","touches","$","J","drawYaxisInversed","drawXaxisInversed","drawXaxis","drawYaxis","Q","K","breakpoint","innerWidth","screen","extendArrayProps","overrideResponsiveOptions","tt","isColorFn","isHeatmapDistributed","isBarDistributed","setDefaultColors","predefined","et","drawTitleSubtitle","it","dCtx","elLegendWrap","lgRect","getxAxisTimeScaleLabelsCoords","lgWidthForSideLegends","getLargestStringFromArr","dimHelpers","getLargestStringFromMultiArr","yAxisWidth","gridPad","overlappingXLabels","yAxisWidthRight","yAxisWidthLeft","xPadRight","xPadLeft","st","rt","isSparkline","getTitleSubtitleCoords","ot","dimYAxis","dimXAxis","dimGrid","getLegendsRect","setDimensionsForAxisCharts","setDimensionsForNonAxisCharts","gridPadFortitleSubtitle","gridPadForColumnsInNumericAxis","getyAxisLabelsCoords","getyAxisTitleCoords","getTotalYAxisWidth","getxAxisLabelsCoords","getxAxisGroupLabelsCoords","getxAxisTitleCoords","conditionalChecksForAxisCoords","xAxisWidth","additionalPaddingXLabels","setGridXPosForDualYAxis","setYAxisXPosition","nt","lgCtx","createTextNode","clwh","clww","elLegendForeign","getLegendStyles","cs","csi","riseCollapsedSeries","hideSeries","seriesEl","printDataLabelsInner","fire","baseVal","_getSeriesBasedOnCollapsedState","lt","onLegendClick","onLegendHovered","isBarsDistributed","drawLegends","getElementsByTagName","appendToForeignObject","legendAlignHorizontal","legendAlignVertical","setProperty","getSeriesTotalByIndex","seriesHaveSameValues","getLegendBBox","setLegendWrapXY","highlightRangeInSeries","toggleSeriesOnHover","ht","ev","selectedClass","localeValues","elZoom","elZoomIn","elZoomOut","elPan","elSelection","elZoomReset","elMenuIcon","elMenu","elCustomIcons","icon","moveIndexInArray","_createHamburgerMenu","addToolbarEventListeners","elMenuItems","handleZoomReset","toggleZoomSelection","handleZoomIn","handleZoomOut","togglePanning","toggleMenu","handleDownload","getSyncedCharts","toggleOtherControls","getToolbarIconsReference","_getNewMinXMaxX","disableZoomIn","zoomUpdateOptions","disableZoomOut","getBeforeZoomRange","autoScaleY","_updateOptions","zoomCallback","exportToPng","ct","dragged","startX","endX","dragX","startY","endY","dragY","moveDirection","xyRatios","zoomRect","selectionRect","gridRect","slDraggableRect","draggable","selectionDragging","preselectedSelection","hoverArea","svgMouseEvents","off","shiftKey","shiftWasPressed","enableZoomPanFromToolbar","changedTouches","panDragging","zoomtype","selectionDrawing","selectionDrawn","delayedPanScrolled","hideSelectionRect","makeSelectionRectDraggable","selectize","pointSize","pointType","constraint","drawSelectionRect","clearTimeout","panScrolled","updateScrolledChart","dt","ttCtx","elGrid","hasBars","getElGrid","closestInMultiArray","closestInArray","capturedSeries","hoverX","hoverY","getFirstActiveXArray","getElMarkers","getElBars","allTooltipSeriesGroups","gt","tooltipUtil","ttItems","handleCustomTooltip","toggleActiveInactiveSeries","getValuesToPrint","printLabels","values","getElTooltip","tooltipRect","ttWidth","ttHeight","xVal","zVal","xAxisTTVal","getSeriesName","yLbTitleFormatter","attrs","val","DOMHandling","goalVals","pColor","showTooltipTitle","tooltipTitle","isXAxisTooltipEnabled","xaxisTooltipText","toggleAllTooltipSeriesGroups","ut","getElXCrosshairs","xcrosshairsWidth","moveXAxisTooltip","ycrosshairs","ycrosshairsHidden","xaxisTooltip","xaxisOffY","yaxisTTEls","resetPointsSize","enlargeCurrentPoint","moveDynamicPointOnHover","getHoverMarkerSize","moveXCrosshairs","fixedTooltip","moveTooltip","getAllMarkers","dataPointsDividedWidth","pt","tooltipPosition","newPointSize","oldPointSize","lastChild","ft","isVerticalGroupedRangeBar","opt","getAttr","drawSeriesTexts","findAncestor","showOnIntersect","getBarTooltipXY","dataPointsDividedHeight","barWidth","xt","yaxisOffX","yaxisTooltip","yaxisTooltipText","yaxisTooltips","moveYCrosshairs","moveYAxisTooltip","bt","tConfig","axesTooltip","isBarShared","lastHoverTime","now","drawXaxisTooltip","drawYaxisTooltip","setXCrosshairWidth","handleYCrosshair","getXAxisTicksPositions","drawDynamicPoints","legendLabels","createTTElements","addSVGEvents","seriesBound","tooltipEl","tooltipY","tooltipX","addPathsEventListeners","addDatapointEventsListeners","onSeriesHover","seriesHover","seriesHoverTimeout","getGroupedCharts","seriesHoverByContext","chartCtx","drawFixedTooltipRect","axisChartsTooltips","nonAxisChartsTooltips","handleMouseOut","handleStickyTooltip","handleHeatTreeTooltip","handleBarTooltip","hasMarkers","handleMarkerTooltip","drawYaxisTooltipText","decodeURIComponent","getNearestValues","handleStickyCapturedSeries","isXoverlap","isInitialSeriesSameLen","deactivateHoverFilter","enlargePoints","moveDynamicPointsOnHover","barSeriesHeight","getBarsHeight","moveStickyTooltipOverBars","moveMarkers","vt","barCtx","totalFormatter","groupIndex","barXPosition","barYPosition","visibleSeries","renderedPath","barOptions","bcx","bcy","dataLabelsX","dataLabelsY","barDataLabelsConfig","barTotalDataLabelsConfig","offX","isHorizontal","calculateBarsDataLabelsPosition","calculateColumnsDataLabelsPosition","drawCalculatedDataLabels","drawTotalDataLabels","totalDataLabelsX","totalDataLabelsY","totalDataLabelsAnchor","getStackedTotalDataLabel","totalDataLabels","isReversed","lastActiveBarSerieIndex","mt","totalItems","seriesLen","visibleI","visibleItems","zeroSerieses","checkZeroSeries","yaxisIndex","yDivision","zeroH","zeroW","prevY","prevX","prevYF","prevXF","prevYVal","prevXVal","xArrj","xArrjF","xArrjVal","yArrj","yArrjF","yArrjVal","isNullValue","elSeries","seriesGroup","columnWidthOffset","getPreviousPath","shouldApplyRadius","roundPathCorners","barHeightOffset","getXForValue","getYForValue","strokeHeight","strokeLineCap","goalX","goalY","prevPaths","currPaths","yt","pathArr","getBarSeriesIndices","barHelpers","getLogSeries","getLogYRatios","initVariables","addCollapsedClassToSeries","initialPositions","getStrokeWidth","indexes","bc","drawBarPaths","drawColumnPaths","getPathFillColor","drawBarShadow","drawGoalLine","renderSeries","pathFill","elDataLabelsWrap","elGoalsMarkers","elBarShadows","lineFill","renderPaths","handleBarDataLabels","getBarpaths","barBackground","getGoalValues","getColumnPaths","wt","initializeStackedPrevVars","groupCtx","initializeStackedXYVars","drawStackedBarPaths","drawStackedColumnPaths","kt","candlestickOptions","boxOptions","isBoxPlot","drawHorizontalBoxPaths","drawVerticalBoxPaths","getOHLCValue","At","determineColor","percent","colorProps","St","rectRadius","negRange","checkColorRange","getShadeColor","addListeners","animateHeatMap","animateHeatColor","calculateDataLabels","unshift","animateRect","Ct","Lt","animBeginArr","animDur","donutDataLabels","lineColorArr","defaultSize","centerY","centerX","fullAngle","initialAngle","donutSize","sliceLabels","sliceSizes","prevSectorAngleArr","ret","negToZero","drawPolarElements","drawArcs","renderInnerDataLabels","hollowSize","getChangedPath","polarToCartesian","animatePaths","prevStartAngle","prevEndAngle","animateStartingPos","shouldSetPrevPaths","dur","pieClicked","revertDataLabelsInner","animateArc","getPiePath","me","angle","during","isTrack","drawYAxisTexts","drawSpokes","printInnerLabels","makeSliceOut","printLabel","Pt","isLog","maxValue","minValue","dataRadiusOfPercent","dataRadius","angleArr","yaxisLabelsTextsPos","dataPointsLen","disAngle","yaxisLabels","getDataPointsPos","createPaths","linePathsTo","linePathsFrom","areaPathsFrom","areaPathsTo","drawPolygons","drawXAxisTexts","getPolygonPos","drawPolygon","getTextPos","newX","newY","It","totalAngle","trackStartAngle","trackEndAngle","radialDataLabels","drawTracks","colorArr","elHollow","drawHollowImage","drawHollow","loaded","Tt","rangeBarOptions","rangeBar","detectOverlappingBars","srty","initPositions","drawRangeBarPaths","srtx","drawRangeColumnPaths","getRangeValue","Mt","lineCtx","categoryAxisCorrection","pathFromLine","pathFromArea","appendPathFrom","lineYPosition","prevSeriesY","zeroY","Xt","pointsChart","scatter","noNegatives","lineHelpers","sameValueSeriesFix","_initSerieVariables","determineFirstPrevY","pX","pY","pathsFrom","_calculatePathsFrom","prevY2","linePaths","areaPaths","_iterateOverDataPoints","iterations","linePath","_handlePaths","elPointsMain","areaBottomY","checkPreviousPaths","areaPath","calculatePoints","_createPaths","handleNullDataPoints","_handleMarkersAndLabels","draw","plotChartMarkers","drawDataLabel","TreemapSquared","generate","xoffset","yoffset","shortestEdge","getCoordinates","cutArea","zt","Et","Yt","animateTreemap","getFontSize","truncateLabels","rotateToFitLabel","Rt","timeScaleArray","utc","determineInterval","getTimeUnitsfromTimestamp","firstVal","currentMillisecond","currentSecond","currentMinute","currentHour","currentMonthDate","currentDate","currentMonth","currentYear","daysWidthOnXAxis","hoursWidthOnXAxis","minutesWidthOnXAxis","secondsWidthOnXAxis","numberOfSeconds","numberOfMinutes","numberOfHours","numberOfDays","numberOfMonths","numberOfYears","tickInterval","generateYearScale","generateMonthScale","generateDayScale","generateHourScale","generateMinuteScale","generateSecondScale","formatDates","removeOverlappingTS","plotCoords","determineRemainingDaysOfYear","determineDaysOfYear","_getYear","date","createRawDateString","parseDateWithTimezone","dateString","Ht","Doc","setSVGDimensions","defs","getDimensions","drawXCrosshairs","drawYCrosshairs","calculateTimeScaleTicks","recalcDimensionsBasedOnFormat","getCalculatedRatios","ApexCharts","getChartByID","brushSource","updateSourceChart","Dt","getPreviousPaths","_extendSeries","supported","parser","prepare","ns","xmlns","svgjs","did","eid","inherit","invent","Container","adopt","SVGElement","Nested","Gradient","namespace","setData","nested","poly","polyline","native","regex","numberAndUnit","hex","transforms","whitespace","isHex","isRgb","isCss","isBlank","isPercent","isImage","delimiter","hyphen","pathLetters","isPathLetter","numbersWithDots","dots","utils","filterSVGElements","defaults","Color","exec","toHex","toRgb","brightness","morph","destination","isColor","PointArray","PathArray","Point","toJSON","plus","minus","times","divide","relative","_stroke","_event","writeDataToDom","after","removeElement","addTo","put","putIn","visible","hasClass","addClass","removeClass","toggleClass","matches","doc","parents","matchesSelector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","Parent","each","removeAttribute","MorphObj","Situation","reversing","duration","finish","ease","loop","loops","once","FX","_target","situations","situation","paused","lastPos","absPos","_speed","queue","timeToAbsPos","absPosToTime","startAnimFrame","stopAnimFrame","animationFrame","requestAnimationFrame","step","cancelAnimationFrame","startCurrent","initAnimations","shift","dequeue","initialTransformation","matrixify","clearQueue","clearCurrent","atEnd","last","detail","_callStart","eased","eachAt","Matrix","undo","extract","matrix","Box","BBox","Shape","atan2","transformedX","transformedY","rotation","translate","createSVGMatrix","ctm","getCTM","screenCTM","getScreenCTM","point","nodeValue","leading","rebuild","untransform","toParent","toDoc","Transformation","inversed","Translate","cssText","first","clear","hasChildNodes","_defs","ungroup","Defs","flatten","ViewBox","listeners","handlerMap","listenerId","_svgjsListenerId","Event","dispatchEvent","CustomEvent","cancelable","event","getElementById","Stop","Pattern","Use","use","Rect","Circle","Ellipse","ellipse","Line","toLine","Polyline","Polygon","_array","morphArray","Path","load","_loaded","ratio","_error","Text","_rebuild","_build","nodeType","newLined","build","textPath","Tspan","dx","dy","TextPath","prefix","getTotalLength","pointAt","getPointAtLength","remember","forget","_memory","bubbles","createEvent","initCustomEvent","define","backgroundAlpha","autoSetIn","BlendEffect","colorMatrix","ColorMatrixEffect","convolveMatrix","ConvolveMatrixEffect","ComponentTransferEffect","CompositeEffect","FloodEffect","OffsetEffect","ImageEffect","MergeEffect","GaussianBlurEffect","morphology","MorphologyEffect","diffuseLighting","DiffuseLightingEffect","displacementMap","DisplacementMapEffect","specularLighting","SpecularLightingEffect","tile","TileEffect","turbulence","TurbulenceEffect","Effect","in","ParentEffect","ChildEffect","in2","kernelMatrix","operator","xChannelSelector","yChannelSelector","numOctaves","seed","stitchTiles","baseFrequency","MergeNode","surfaceScale","diffuseConstant","kernelUnitLength","specularExponent","distantLight","azimuth","elevation","pointLight","spotLight","pointsAtX","pointsAtY","pointsAtZ","mergeNode","sepiatone","dest","reflection","acos","tan","transformPoint","matrixTransform","rbox","buttons","handler","defaultPrevented","preventDefault","stopPropagation","createSVGPoint","startPoints","box","drag","snapToGrid","pointSelection","isSelected","rectSelection","pointsList","rb","lb","pointCoord","pointCoords","pointsExclude","deepSelect","selectPoints","selectRect","observe","drawPoints","getPointArray","returnValue","pageX","pageY","classPoints","updatePointSelection","updateRectSelection","rotationPoint","classRect","MutationObserver","observerInst","disconnect","parameters","lastUpdateCall","_extractPosition","calc","checkAspectRatio","snapToAngle","constraintToBox","saveAspectRatio","Ot","publicMethods","axes","localization","formatters","titleSubtitle","dimensions","zoomPanSelection","Nt","isUpdating","clearDomElements","killSVG","Wt","WeakMap","Bt","initModules","windowResizeHandler","_windowResizeHandler","parentResizeHandler","_parentResizeCallback","_chartInstances","setLocale","Node","DOCUMENT_FRAGMENT_NODE","ResizeObserver","prepend","head","catch","checkResponsiveConfig","setupElements","checkComboSeries","handleNoData","setupEventHandlers","parseData","setGlobalMarkerSize","setLabelFormatters","hasAllSeriesEqualX","coreCalculations","heatmapLabelFormatters","getLargestMarkerSize","xySettings","createGridMask","plotChartType","bringForward","dataLabelsBackground","shiftGraphPosition","elGraph","drawGrid","drawImageAnnos","drawTextAnnos","drawAxis","xAxisLabelCorrections","setYAxisTextAlignments","yAxisTitleRotate","drawAxesAnnotations","drawTooltip","createToolbar","resizeNonAxisCharts","delete","resetSeries","forceXAxisUpdate","forceYAxisUpdate","clearPreviousPaths","updateThemeOptions","toggleSeries","showSeries","addXaxisAnnotationExternal","addYaxisAnnotationExternal","addPointAnnotationExternal","clearAnnotations","removeAnnotation","getSeriesTotalsXRange","toggleDataPointSelection","setCurrentLocaleValues","_windowResize","render","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","charCodeAt","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","Uint8Array","code","num","output","base64","ieee754","customInspectSymbol","Buffer","K_MAX_LENGTH","createBuffer","RangeError","buf","arg","encodingOrOffset","allocUnsafe","encoding","isEncoding","actual","write","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","isBuffer","checked","numberIsNaN","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","alloc","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","toLocaleString","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","getMessage","Base","stack","message","addNumericalSeparator","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","dst","alphabet","table","i16","BufferBigIntNotDefined","hasOwn","classNames","argType","inner","default","dateLongFormatter","formatLong","timeLongFormatter","time","longFormatters","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","setUTCFullYear","getUTCISOWeekYear","dirtyDate","requiredArgs","toDate","fourthOfJanuaryOfNextYear","setUTCHours","startOfNextYear","startOfUTCISOWeek","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","diff","getUTCWeekYear","dirtyOptions","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","toInteger","firstWeekOfNextYear","startOfUTCWeek","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","token","isProtectedWeekYearToken","throwProtectedError","required","weekStartsOn","localeWeekStartsOn","defaultWeekStartsOn","dirtyNumber","NaN","addDays","dirtyAmount","amount","MILLISECONDS_IN_HOUR","addHours","addMilliseconds","timestamp","addMinutes","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","setFullYear","addWeeks","addYears","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDay","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","monthDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeek","startOfWeekRight","differenceInCalendarYears","endOfDay","setHours","endOfMonth","endOfWeek","addLeadingZeros","targetLength","sign","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","dayPeriodEnum","localize","era","ordinalNumber","lightFormatters","signedWeekYear","weekYear","quarter","week","isoWeek","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriod","hours","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","minutes","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","isValid","subMilliseconds","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","startOfISOWeek","getISOWeekYear","startOfISOWeekYear","getISOWeek","getQuarter","seconds","getYear","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isDate","dirtyLeftDate","dirtyRightDate","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","startOfQuarter","dateRightStartOfQuarter","isSameYear","isWithinInterval","interval","startTime","endTime","buildFormatLongFn","defaultWidth","formats","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","rest","predicate","buildMatchPatternFn","parseResult","parsePattern","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","tokenValue","addSuffix","comparison","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_date","_baseDate","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","formatDistance","formatRelative","dirtyDatesArray","datesArray","millisecondsInHour","parseISO","argument","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","restDateString","parseTime","timezone","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","timeString","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","dirtyObject","property","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","parsers","priority","flags","incompatibleTokens","isTwoDigitYear","validate","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","subPriority","wholeWeekDays","setUTCISODay","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","subFnOptions","setters","dateToSystemTimezone","tokens","usedTokens","incompatibleToken","usedToken","fullToken","uniquePrioritySetters","setter","setterArray","convertedDate","dirtyHours","setMinutes","dirtyMinutes","getDaysInMonth","monthIndex","lastDayOfMonth","dirtyMonth","dateWithDesiredMonth","setQuarter","dirtyQuarter","oldQuarter","setSeconds","dirtySeconds","setYear","dirtyYear","startOfMonth","startOfYear","cleanDate","subDays","subHours","subMinutes","subMonths","subWeeks","subYears","argStr","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","prev","deepmerge_1","isFrozen","freeze","seal","fun","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","unconstruct","thisArg","transformCaseFunc","lcElement","newObject","desc","fallbackValue","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","getGlobal","_createTrustedTypesPolicy","trustedTypes","suffix","ATTR_NAME","policyName","createHTML","createScriptURL","scriptUrl","DOMPurify","root","createDOMPurify","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","lookupGetter","getNextSibling","getChildNodes","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","importNode","documentMode","hooks","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","addToSet","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","PARSER_MEDIA_TYPE","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","tagName","parentTagName","_forceRemove","_removeAttribute","attribute","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","_createIterator","_isClobbered","elm","_isNode","_executeHook","hook","_sanitizeElements","allowedTags","_basicCustomElementTest","content","_isValidAttribute","lcName","lcTag","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_sanitizeShadowDOM","shadowIterator","fragment","shadowNode","importedNode","nodeIterator","oldNode","returnNode","serializedHTML","entryPoint","hookFunction","keyList","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","LN2","condition","argIndex","framesToPop","stdOnEnd","script","onerror","ieOnEnd","onreadystatechange","readyState","charset","async","setAttributes","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","resIndex","baseTimes","isArguments","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","accumulator","initAccum","reAsciiWord","eq","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","cache","stringToPath","baseSlice","coreJsData","fromRight","iterable","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","arrayReduce","deburr","words","reApos","callback","deburrLetter","basePropertyOf","arraySome","cacheHas","isPartial","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","convert","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","global","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","getValue","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","reHasUnicode","reHasUnicodeWord","nativeCreate","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","getMapData","memoize","overArg","freeExports","freeModule","freeProcess","process","nodeUtil","types","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","quote","subString","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","capitalize","camelCase","createCompounder","word","upperFirst","reLatin","reComboMark","defaultValue","baseHas","hasPath","baseHasIn","baseIsArguments","stubFalse","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseAssignValue","baseForOwn","baseIteratee","resolver","memoized","Cache","baseProperty","basePropertyDeep","snakeCase","createCaseFirst","asciiWords","hasUnicodeWord","unicodeWords","guard","safeIsNaN","areInputsEqual","newInputs","lastInputs","resultFn","lastThis","lastResult","lastArgs","calledOnce","newArgs","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","isarray","pathToRegexp","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","asterisk","partial","repeat","optional","escapeGroup","encodeURIComponentPretty","encodeURI","encode","pretty","segment","attachKeys","re","sensitive","strict","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","assert","urlNullRemoved","removeNullCharacters","link","targetStr","LinkTarget","anchor","query","defaultFilename","isDataScheme","reURI","reFilename","splitURI","suggestedFilename","ex","xfaPage","viewBox","PageViewport","removeScriptElement","evt","reject","DEFAULT_LINK_REL","PixelsPerInch","CSS","PDF","shadow","globalThis","_createCanvas","canvas","_document","asTypedArray","isValidFetchUrl","fetch","response","stringToBytes","request","XMLHttpRequest","_fetchData","fetchData","cMapData","compressionType","_createSVG","dontFlip","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","Util","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","NONE","SELF","BLANK","PARENT","TOP","ii","timeEnd","started","outBuf","longest","baseUrl","protocol","isString","pdfDateStringRegex","universalTimeRelation","offsetHour","offsetMinute","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","Context","tryLocsList","doneResult","delegate","delegateResult","maybeInvokeDelegate","record","tryCatch","makeInvokeMethod","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","_invoke","PromiseImpl","invoke","previousPromise","callInvokeWithMethodAndArg","info","tryLoc","locs","iteratorMethod","GeneratorFunction","ctor","genFun","__await","defineIteratorMethods","AsyncIterator","iter","wrap","_sent","rootRecord","tryEntries","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","resetTryEntry","thrown","delegateYield","resultName","nextLoc","regeneratorRuntime","accidentalStrictMode","resultLength","arrayByteLength","item","itemLength","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","capability","isSettled","reason","stringToUTF8String","absoluteUrl","_isValidProtocol","verbosity","VerbosityLevel","arr1","base","otherUrl","replaceInvisible","PDFStringTranslateTable","char","unescape","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","Fo","Bl","PO","PC","PV","WC","WS","DS","WP","DP","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","NEED_PASSWORD","INCORRECT_PASSWORD","unreachable","BaseException","NullCharactersRegExp","InvisibleCharactersRegExp","IsLittleEndianCached","buffer8","Uint32Array","view32","isLittleEndian","IsEvalSupportedCached","isEvalSupported","hexNumbers","m1","m2","p1","p2","p3","applyTransform","p4","transpose","sx","sy","orderedX","rect1","rect2","orderedY","tvalues","bounds","x0","y0","b2ac","sqrtb2ac","t1","t2","jlen","escape","chars","isNodeJS","versions","electron","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","sourceProperty","targetProperty","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","fails","$propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","FunctionPrototype","callBind","stringSlice","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","pref","exoticToPrim","isCallable","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","aFunction","NATIVE_SYMBOL","V8_VERSION","Deno","v8","aCallable","tryToString","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","description","IS_PURE","store","copyright","SHARED","postfix","EXISTS","definePropertyModule","anObject","$defineProperty","Attributes","inspectSource","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","STATE","enforce","getterFor","TYPE","getDescriptor","PROPER","CONFIGURABLE","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","enumBugKeys","names","toAbsoluteIndex","lengthOfArrayLike","createMethod","$this","fromIndex","IS_INCLUDES","toIntegerOrInfinity","integer","toLength","replacement","normalize","NATIVE","POLYFILL","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","M11","M12","M21","M22","M41","M42","fromArray","invalidStringError","tf","prop","components","xyz","xyza","idx","axeValues","nosy","degToRad","radX","radY","radZ","rz","cosx","sinx","cosy","siny","cosz","sinz","alpha","sinA","cosA","sinA2","z2","radA","CSSMatrix","ARGS","prototypeAccessors","isIdentity","is2D","Float64Array","Float32Array","fromMatrix","Multiply","Scale","RX","RY","RZ","Rotate","RotateAxisAngle","SkewX","SkewY","Version","addToUnscopables","Iterators","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","UNSCOPABLES","ArrayPrototype","documentCreateElement","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObject","ActiveXObject","iframe","iframeDocument","NullProtoObjectViaIFrame","Properties","objectKeys","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","defaultIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","forced","ENUMERABLE_NEXT","arrayIterator","PrototypeOfArrayIteratorPrototype","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","iterate","createProperty","stat","fromEntries","AS_ENTRIES","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","ResultPrototype","unboundFunction","that","IS_ITERATOR","INTERRUPTED","callFn","iterFn","usingIterator","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","innerResult","innerError","propertyKey","clearErrorStack","installErrorCause","normalizeStringArgument","ERROR_STACK_INSTALLABLE","$AggregateError","errorsArray","AggregateErrorPrototype","AggregateError","arraySlice","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","IS_FIREFOX_OR_SAFARI_STACK","dropEntries","fin","$default","NativePromise","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","IS_NODE","SPECIES","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","promise","FakePromise","INCORRECT_ITERATION","isThenable","notify","chain","ok","reaction","domain","onHandleUnhandled","exited","isReject","onUnhandled","isUnhandled","internalReject","internalResolve","wrapper","executor","Internal","notified","reactions","rejection","onFulfilled","onRejected","OwnPromiseCapability","nativeThen","PromiseWrapper","$promiseResolve","counter","alreadyCalled","race","CONSTRUCTOR_NAME","Prototype","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","aConstructor","defaultConstructor","isConstructor","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","IS_IOS","Dispatch","MessageChannel","ONREADYSTATECHANGE","run","runner","listener","post","defer","port","channel","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","queueMicrotaskDescriptor","queueMicrotask","flush","toggle","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","allSettled","status","PROMISE_ANY_ERROR","alreadyResolved","alreadyRejected","real","onFinally","STRING_ITERATOR","CONVERT_TO_STRING","codeAt","SymbolPolyfill","getGlobals","rethrowAssertionErrorRejection","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","PerformPromiseThen","uponPromise","globalQueueMicrotask","resolvedPromise","promiseResolvedWith","reflectCall","promiseRejectedWith","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_elements","_next","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","front","cursor","reader","stream","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","ReadableStreamCancel","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","newPromise","defaultReaderClosedPromiseResolve","setPromiseIsHandledToTrue","AbortSteps","ErrorSteps","CancelSteps","PullSteps","NumberIsFinite","MathTrunc","isDictionary","field","censorNegativeZero","lowerBound","upperBound","integerPart","IsReadableStream","ReadableStreamDefaultReader","readRequest","IsReadableStreamDefaultReader","assertRequiredArgument","assertReadableStream","IsReadableStreamLocked","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","_ownerReadableStream","readerLockException","ReadableStreamReaderGenericCancel","resolvePromise","rejectPromise","ReadableStreamDefaultReaderRead","_chunkSteps","_closeSteps","_errorSteps","_readRequests","ReadableStreamReaderGenericRelease","typeIsObject","cancel","releaseLock","closed","_a","AsyncIteratorPrototype","ReadableStreamAsyncIteratorImpl","_this","nextSteps","_ongoingPromise","transformPromiseWith","returnSteps","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","_asyncIteratorImpl","streamAsyncIteratorBrandCheckException","AcquireReadableStreamDefaultReader","impl","NumberIsNaN","srcOffset","CopyDataBlockBytes","ArrayBufferSlice","pair","container","IsNonNegativeNumber","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","bytesWritten","convertUnsignedLongLongWithEnforceRange","_associatedReadableByteStreamController","IsDetachedBuffer","_view","ReadableByteStreamControllerRespond","view","ReadableByteStreamControllerRespondWithNewView","respond","respondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","ReadableByteStreamControllerGetBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_controlledReadableByteStream","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearPendingPullIntos","ResetQueue","_cancelAlgorithm","ReadableByteStreamControllerClearAlgorithms","_queueTotalSize","_queue","ReadableByteStreamControllerHandleQueueDrain","autoAllocateChunkSize","bufferE","pullIntoDescriptor","bufferByteLength","bytesFilled","elementSize","viewConstructor","readerType","ReadableStreamAddReadRequest","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerShouldCallPull","controller","ReadableByteStreamControllerInvalidateBYOBRequest","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadRequest","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableStreamClose","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerCommitPullIntoDescriptor","TransferArrayBuffer","ReadableStreamAddReadIntoRequest","readIntoRequest","emptyView","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","remainderSize","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","firstDescriptor","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","ReadableStreamHasDefaultReader","ReadableStreamGetNumReadRequests","firstPendingPullInto","transferredBuffer","ReadableStreamError","byobRequest","SetUpReadableStreamBYOBRequest","ReadableByteStreamControllerRespondInternal","viewByteLength","startAlgorithm","pullAlgorithm","cancelAlgorithm","underlyingByteSource","SetUpReadableByteStreamController","ReadableStreamBYOBReader","IsReadableStreamBYOBReader","close","enqueue","desiredSize","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","_readIntoRequests","ReadableByteStreamControllerPullInto","highWaterMark","assertDictionary","convertUnrestrictedDouble","convertQueuingStrategySize","assertFunction","abort","original","convertUnderlyingSinkAbortCallback","convertUnderlyingSinkCloseCallback","convertUnderlyingSinkStartCallback","convertUnderlyingSinkWriteCallback","promiseCall","IsWritableStream","supportsAbortController","AbortController","WritableStream","rawUnderlyingSink","rawStrategy","assertObject","convertQueuingStrategy","underlyingSink","convertUnderlyingSink","InitializeWritableStream","sizeAlgorithm","ExtractSizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","ExtractHighWaterMark","streamBrandCheckException$2","IsWritableStreamLocked","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","SetUpWritableStreamDefaultController","WritableStreamDefaultController","wasAlreadyErroring","_promise","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","writeRequest","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","abortRequest","WritableStreamRejectCloseAndClosedPromiseIfNeeded","WritableStreamDealWithRejection","defaultWriterClosedPromiseResolve","defaultWriterClosedPromiseReject","backpressure","defaultWriterReadyPromiseReset","getWriter","locked","assertWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","_ownerWritableStream","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultWriterEnsureClosedPromiseRejected","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamAddWriteRequest","WritableStreamDefaultControllerWrite","closeSentinel","IsWritableStreamDefaultController","defaultControllerBrandCheckException$2","_abortController","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","createAbortController","WritableStreamDefaultControllerGetBackpressure","WritableStreamUpdateBackpressure","WritableStreamDefaultControllerAdvanceQueueIfNeeded","writeAlgorithm","closeAlgorithm","abortAlgorithm","EnqueueValueWithSize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","enqueueE","PeekQueueValue","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","WritableStreamMarkCloseRequestInFlight","DequeueValue","sinkClosePromise","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkFirstWriteRequestInFlight","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","abortReason","signal","NativeDOMException","DOMException","DOMException$1","isDOMExceptionConstructor","createDOMExceptionPolyfill","shuttingDown","currentWrite","actions","shutdownWithAction","action","resolveLoop","rejectLoop","pipeStep","resolveRead","rejectRead","isOrBecomesErrored","shutdown","isOrBecomesClosed","WritableStreamDefaultWriterCloseWithErrorPropagation","destClosed_1","oldCurrentWrite","waitForWritesToFinish","uponRejection","uponFulfillment","finalize","newError","doTheRest","pipeLoop","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException$1","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerClearAlgorithms","_closeRequested","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","underlyingSource","SetUpReadableStreamDefaultController","ReadableByteStreamTee","ReadableStreamDefaultTee","reading","readAgain","canceled1","canceled2","cancelPromise","resolveCancelPromise","chunk1","chunk2","branch1","branch2","reason1","compositeReason","CreateArrayFromList","reason2","cancelResult","CreateReadableStream","readAgainForBranch1","readAgainForBranch2","thisReader","forwardReaderError","CloneAsUint8Array","cloneE","pull1Algorithm","pull2Algorithm","AcquireReadableStreamBYOBReader","byobBranch","forBranch2","otherBranch","byobCanceled","clonedChunk","otherCanceled","pullWithDefaultReader","pullWithBYOBReader","CreateReadableByteStream","pull","convertUnderlyingSourceCancelCallback","convertUnderlyingSourcePullCallback","convertUnderlyingSourceStartCallback","convertReadableStreamType","convertReadableStreamReaderMode","preventCancel","preventAbort","preventClose","assertAbortSignal","isAbortSignal","readable","assertRequiredField","ReadableStream","rawUnderlyingSource","convertUnderlyingDefaultOrByteSource","InitializeReadableStream","SetUpReadableByteStreamControllerFromUnderlyingSource","SetUpReadableStreamDefaultControllerFromUnderlyingSource","streamBrandCheckException$1","rawOptions","convertReaderOptions","rawTransform","convertReadableWritablePair","convertPipeOptions","ReadableStreamPipeTo","ReadableStreamTee","AcquireReadableStreamAsyncIterator","convertIteratorOptions","getReader","pipeThrough","pipeTo","tee","byteLengthSizeFunction","ByteLengthQueuingStrategy","convertQueuingStrategyInit","IsByteLengthQueuingStrategy","byteLengthBrandCheckException","countSizeFunction","CountQueuingStrategy","IsCountQueuingStrategy","countBrandCheckException","readableType","writableType","convertTransformerFlushCallback","convertTransformerStartCallback","convertTransformerTransformCallback","TransformStream","rawTransformer","rawWritableStrategy","rawReadableStrategy","writableStrategy","readableStrategy","transformer","convertTransformer","readableHighWaterMark","readableSizeAlgorithm","writableHighWaterMark","writableSizeAlgorithm","InitializeTransformStream","startPromise_resolve","SetUpTransformStreamDefaultControllerFromTransformer","IsTransformStream","streamBrandCheckException","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","CreateWritableStream","TransformStreamSetBackpressure","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException","_controlledTransformStream","_readable","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","TransformStreamDefaultControllerTerminate","transformAlgorithm","transformResultE","flushAlgorithm","SetUpTransformStreamDefaultController","readableController","ReadableStreamDefaultControllerHasBackpressure","TransformStreamError","TransformStreamDefaultControllerPerformTransform","flushPromise","terminate","canvasAndContext","isCompressed","CMapCompressionType","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","DefaultStandardFontDataFactory","createPDFNetworkStream","isArrayBuffer","rangeTransport","worker","setVerbosityLevel","workerParams","GlobalWorkerOptions","PDFWorker","docId","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","initialData","progressiveDone","contentDispositionFilename","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","WorkerTransport","pdfDataRangeTransport","sendWithPromise","apiVersion","password","disableAutoFetch","maxImageSize","disableFontFace","docBaseUrl","ignoreErrors","fontExtraProperties","enableXfa","useSystemFonts","cMapUrl","standardFontDataUrl","workerId","PDFDocumentLoadingTask","_capability","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","deprecated","fingerprints","streamTypes","fontTypes","_transport","_pdfInfo","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","downloadInfoCapability","keepLoadedFonts","startCleanup","loadingTask","saveDocument","annotationStorage","getFieldObjects","hasJSActions","getCalculationOrderIds","pdfBug","_pageIndex","_pageInfo","getViewport","getAnnotations","intent","intentArgs","getRenderingIntent","_annotationPromises","annotation","getPageJSActions","annotationMode","AnnotationMode","imageLayer","canvasFactory","optionalContentConfigPromise","annotationCanvasMap","intentState","_intentStates","canvasFactoryInstance","intentPrint","renderingIntent","RenderingIntentFlag","fnArray","argsArray","lastChunk","internalRenderTask","InternalRenderTask","canvasContext","objs","commonObjs","operatorList","pageIndex","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","getOperatorList","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","includeMarkedContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","getTextContent","getXfa","xfa","XfaText","readableStream","pump","getStructTree","_destroy","waitOn","force","resetStats","_tryCleanup","renderTasks","_startRenderPage","_renderPageChunk","operatorListChunk","_pumpOperatorList","cacheKey","_abortOperatorList","postMessage","cloned","transfers","fallbackCloneValue","cloneValue","_listeners","PDFWorkerUtil","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","_readyCapability","_initializeFromPort","_initialize","Worker","workerSrc","isSameOrigin","terminateEarly","onWorkerError","sendTest","testObj","_setupFakeWorker","WorkerMessageHandler","workerHandler","_workerPorts","loader","mainWorkerMessageHandler","eval","loadScript","onUnsupportedFeature","_onUnsupportedFeature","styleElement","isOpList","lastModified","destroyCapability","page","terminated","setupMessageHandler","sink","readyReason","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","PDFDocumentProxy","exception","exportedError","exportedData","fontRegistry","registerFont","pageProxy","imageData","pageNumber","cachedPromise","pageInfo","PDFPageProxy","isPureXfa","numPages","getDocJSActions","results","_ensureObj","_objs","objId","resolved","_internalRenderTask","RenderTask","_continue","_scheduleNext","initializeGraphics","_pdfBug","stepper","operatorListChanged","gfx","executeOperatorList","operatorListIdx","addNativeFontFace","insertRule","styleSheet","nativeFontFace","featureId","UNSUPPORTED_FEATURES","rule","_queueLoadingCallback","hasFonts","_prepareFontLoadEvent","FontLoader","requests","nextRequestId","otherRequest","atob","loadTestFontId","XXXX_VALUE","checksum","int32","spliceString","string32","btoa","div","span","isFontReady","translatedData","createNativeFontFace","weight","cssFontInfo","FontFace","createFontFaceRule","bytesToString","getPathGenerator","compiledGlyphs","character","cmds","loadedName","jsBuf","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","__non_webpack_require__","fs","Canvas","_storage","setValue","modified","getAll","objectFromMap","_setModified","resetModified","_timeStamp","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","ad_bc","bc_ad","old","_transformStack","cosValue","sinValue","getCanvas","canvasEntry","addContextCurrentTransform","TextRenderingMode","clipBox","setCurrentPoint","updatePathMinMax","updateCurvePathMinMax","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","startNewPathAndClipBox","getClippedPathBoundingBox","transferMaps","ImageData","imgData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","ImageKind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","mask","srcByte","hasTransferMaps","elemsInThisChunk","elem","properties","sourceCtx","destCtx","alpha_","r0","g0","b0","maskData","transferMap","layerData","layerOffsetX","layerBox","layerOffsetY","layerWidth","layerHeight","hasBackdrop","backdrop","composeFn","subtype","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","genericComposeSMask","actualScale","interpolate","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","CanvasExtraState","CachedCanvases","beginDrawing","transparentCanvas","cachedCanvases","compositeCtx","resetCtxToDefault","mozCurrentTransform","baseTransform","executionStartIdx","argsArrayLen","chunkOperations","continueCallback","steps","fnId","OPS","objsPool","depObjId","endDrawing","stateStack","activeSMask","_scaleImage","img","widthScale","inverseTransform","heightScale","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","tmpCtx","tmpCanvas","_createMaskCanvas","isPatternFill","maskCanvas","putBinaryImageMask","objToCanvas","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","scaled","getImageSmoothingEnabled","checkSMaskState","inSMaskMode","beginSMaskMode","cacheId","scratchCanvas","suspendedCtx","copyCtxState","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","endSMaskMode","compose","dirtyBox","composeSMask","ops","xw","yh","consumePath","lineWidth","needRestore","contentVisible","lineX","lineY","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fillStrokeMode","isAddToPathSet","addToPath","pendingTextPaths","showType3Text","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","patternTransform","resetLineWidthToOne","glyph","isNum","restoreNeeded","spacing","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","isInFont","scaledAccentX","scaledAccentY","fontMatrix","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","canvasGraphicsFactory","createCanvasGraphics","CanvasGraphics","_getPattern","cachedPatterns","getShadingPattern","inv","bl","br","ul","ur","baseTransformStack","currentCtx","currentTransform","canvasBounds","smaskCounter","startTransformInverse","groupStack","smaskStack","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","COMPILE_TYPE3_GLYPHS","POINT_TYPES","width1","lineSize","data0","j0","sum","Int32Array","outlines","coords","p0","pp","kk","ll","compileType3Glyph","skewX","skewY","positions","trans","imgToPaint","putBinaryImageData","getCanvasPosition","isVisible","pendingClip","getSinglePixelWidth","_cachedGetSinglePixelWidth","absDet","sqNorm1","sqNorm2","pixelHeight","_combinedScaleFactor","isContentVisible","markedContentStack","RadialAxialShadingPattern","MeshShadingPattern","SHADING","Path2D","region","getPattern","_createGradient","_type","grad","_p0","_p1","colorStop","ownerBBox","owner","applyBoundingBox","domMatrix","DOMMatrix","rowSize","c1","c2","c3","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","verticesPerRow","rows","drawTriangle","_createMeshCanvas","_bounds","boundsWidth","boundsHeight","combinedScale","paddedWidth","BORDER_SIZE","paddedHeight","drawFigure","matrixScale","temporaryPatternCanvas","PaintType","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","getSizeAndScale","dimy","adjustedX0","adjustedY0","adjustedX1","adjustedY1","maxSize","TilingPattern","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","CallbackKind","StreamKind","callbackId","wrapReason","cbSourceName","cbTargetName","comObj","sourceName","targetName","ah","send","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pullCapability","cancelCapability","_createStreamSink","actionHandler","streamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","streamController","streamControllers","streamSinks","getRaw","OptionalContentGroup","_evaluateVisibilityExpression","_groups","setVisibility","getOrder","_order","getGroups","getGroup","begin","_onReceiveData","_rangeReaders","_onProgress","firstReader","_onProgressiveDone","_removeRangeReader","getFullReader","queuedChunks","PDFDataTransportStreamReader","getRangeReader","PDFDataTransportStreamRangeReader","cancelAllRequests","isPdfFile","_enqueue","_requests","requestCapability","_stream","_queuedChunks","requestsCapability","walk","DEFAULT_TAB_INDEX","GetElementsByNameSet","AnnotationType","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","_createContainer","_createQuadrilaterals","AnnotationBorderStyleType","horizontalRadius","verticalRadius","quadrilaterals","savedRect","quadPoint","_createPopup","trigger","popup","PopupElement","titleObj","modificationDate","contentsObj","richText","hideWrapper","_renderQuadrilaterals","quadrilateral","_getElementsByName","skipId","fields","fieldObj","_fieldObjects","exportValue","exportValues","domElement","platform","isWin","isMac","Action","linkService","hasClickAction","linkElement","_bindLink","getDestinationHash","_bindNamedAction","getAnchorUrl","_bindJSAction","jsName","_bindResetFormAction","otherClickAction","allFields","resetFormFields","resetFormRefs","fieldIds","storage","allIds","valueAsString","ids","hasPopup","imageResourcesPath","_getKeyModifier","_setEventListener","baseName","valueGetter","_setEventListeners","eventName","_setBackgroundColor","_dispatchEventFromSandbox","setColor","styleName","ColorConverters","commonActions","hidden","print","focus","preventScroll","userName","readonly","bgColor","fgColor","textColor","jsEvent","setPropertyOnSiblings","storedData","elementData","userValue","formattedValue","beforeInputSelectionRange","beforeInputValue","blurListener","enableScripting","selRange","selStart","selEnd","commitKey","willCommit","_blurListener","change","combWidth","_setTextStyle","fontColor","textAlignment","curChecked","checkbox","radio","pdfButtonValue","fieldValue","fontSizeStyle","selectElement","option","optionElement","isExport","getItems","displayValue","multipleSelection","insert","indices","editable","changeEx","keyDown","IGNORE_TYPES","selector","parentElements","layer","parentRect","popupLeft","popupTop","BACKGROUND_ENLIGHT","dateObject","PDFDateString","contents","_formatContents","XfaLayer","xfaHtml","_toggle","_show","_hide","pin","hideElement","unpin","svgFactory","square","coordinate","getFilenameFromUrl","stringToPDFString","_download","sortedAnnotations","popupAnnotations","AnnotationElementFactory","downloadManager","renderForms","fieldObjects","mouseState","isDown","rendered","ownTransform","ownMatrix","makeColorComp","RGB_HTML","CMYK_RGB","isHTMLAnchorElement","rootHtml","rootDiv","textDivs","childHtml","TextLayerRenderTask","renderParameters","textContentStream","textContentItemsStr","enhanceTextSelection","DEFAULT_FONT_SIZE","ascentCache","AllWhitespaceRegexp","textDiv","textDivProperties","_enhanceTextSelection","hasText","geom","hasEOL","originalTransform","tx","fontHeight","fontAscent","cachedAscent","metrics","ascent","descent","pixels","getAscent","shouldScaleText","absScaleX","absScaleY","angleCos","angleSin","divWidth","divHeight","textDivsLength","ts","expanded","boxes","x1New","x2New","expandBoundsLTR","expandBounds","divProperties","jj","boxScale","findPositiveMin","horizon","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","_renderTimer","_processItems","appendText","_container","_layoutText","_textDivProperties","_layoutTextCtx","measureText","_render","timeout","styleCache","textItems","_textContent","textStyles","_textContentStream","expandTextDivs","expandDivs","expand","transformBuf","paddingBuf","_textDivs","divProps","SVGGraphics","pf","SVG_DEFAULTS","fontStyle","convertImgDataToPng","PNG_HEADER","crcTable","crc","crc32","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSyncUncompressed","level","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","writePngChunk","isMask","clipCount","maskCount","shadingCount","transformStack","extraStack","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opTree","opListElement","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrixScale","textMatrix","addFontStyle","details","embedFonts","embeddedFonts","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","fillAlpha","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","shadingId","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","clipId","clipPath","clipElement","_setStrokeAttributes","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","clipGroup","_ensureTransformGroup","http","https","fileUriRegex","parsedUrl","parseUrl","isHttp","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","_rangeRequestReaders","_headersCapability","_readCapability","_readableStream","_setReadableStream","auth","headers","handleResponse","getResponseHeader","validateRangeRequestCapabilities","suggestedLength","extractFilenameFromHeader","createRequestOptions","createReadStream","contentDisposition","getFilenameFromContentDispositionHeader","returnValues","allowRangeRequests","needsEncodingFixup","toParamRegExp","rfc2616unquote","fixupEncoding","rfc2047decode","rfc5987decode","quot","part","rfc2231getparam","decoder","TextDecoder","fatal","textdecode","quotindex","encodingend","extvalue","langvalue","requestRange","requestFull","xhr","xhrId","pendingRequest","pendingRequests","onStateChange","onProgress","xhrStatus","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","NetworkManager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onHeadersReceived","_onHeadersReceived","onDone","_onDone","onError","_onError","manager","fullRequestXhrId","fullRequestXhr","_manager","_cachedChunks","createResponseStatusError","_headersReceivedCapability","_close","_queuedChunk","abortController","credentials","redirect","PDFFetchStreamReader","PDFFetchStreamRangeReader","createHeaders","createFetchOptions","validateResponseStatus","_reader","__w_pdfjs_require__","setPDFNetworkStreamFactory","PDFNodeStream","PDFFetchStream","PDFNetworkStream","validators","allPropTypes","_len2","_key2","validator","_createChainableTypeChecker2","_createChainableTypeChecker","checkType","componentNameSafe","propFullNameSafe","chainedCheckType","ReactPropTypesSecret","bigint","_maxSize","_size","_values","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","normalizePath","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","getter","safe","segments","isBracket","_extends","_createClass","_apexcharts2","_interopRequireDefault","_react","_react2","_propTypes2","Charts","_classCallCheck","_possibleConstructorReturn","createRef","chartRef","setRef","_inherits","Component","_objectWithoutProperties","getConfig","updateOptions","updateSeries","ee","te","ae","ne","oe","se","ie","pe","le","de","ce","ue","fe","he","ye","ve","De","we","ge","ke","be","Se","Ce","Me","Pe","Ee","Ne","Oe","Ye","xe","Ie","Te","Le","Re","Fe","Ae","qe","We","Be","Ke","He","je","Qe","Ve","Ue","$e","ze","Ge","Je","Xe","Ze","_t","Jt","awareOfUnicodeTokens","dateFormat","Ft","qt","Kt","jt","Qt","Vt","Ut","$t","Gt","__localeId__","__localeData__","Zt","er","tr","rr","excludeDates","excludeDateIntervals","includeDates","includeDateIntervals","filterDate","lr","ar","nr","or","sr","ir","pr","dr","cr","excludeTimes","includeTimes","filterTime","minTime","maxTime","fr","hr","mr","yr","vr","Dr","wr","gr","kr","startPeriod","endPeriod","Sr","Cr","yearsList","incrementYears","decrementYears","setState","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","dropdownRef","renderOptions","_r","Mr","dropdownVisible","onSelectChange","renderSelectOptions","visibility","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","onSelect","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Pr","monthNames","isSelectedMonth","Er","Nr","useShortMonthInDropdown","Or","Yr","monthYearsList","scrollableMonthYearDropdown","xr","Ir","Tr","isDisabled","onMouseEnter","handleOnKeyDown","disabledKeyboardNavigation","selected","preSelection","highlightDates","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectsDisabledDaysInRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isCurrentDay","isWeekend","isAfterMonth","isBeforeMonth","getHighLightedClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","getTabIndex","isInputFocused","activeElement","inline","shouldFocusDayInline","containerRef","dayEl","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","renderDayContents","getClassNames","onKeyDown","handleClick","handleMouseEnter","tabIndex","getAriaLabel","role","handleFocusDay","Lr","weekNumber","ariaLabelPrefix","Rr","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","calendarStartDay","showWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayClick","handleDayMouseEnter","renderDays","Fr","orderInDisplay","onMouseLeave","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","onMonthClick","handleMonthNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isCurrentMonth","isSelectedQuarter","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthKeyDown","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","Ar","timeClassName","isSelectedTime","injectTimes","intervals","openToDate","liClasses","centerLi","calcCenterPosition","monthRef","header","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","qr","yearItemNumber","YEAR_REFS","updateFocusOnPaginate","handleYearClick","onYearClick","handleYearNavigation","isCurrentYear","onYearKeyDown","getYearTabIndex","getYearClassNames","Wr","customTimeInput","cloneElement","placeholder","timeInputLabel","renderTimeInput","Br","showPopperArrow","arrowProps","Kr","Hr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthButtonLabel","previousYearButtonLabel","previousMonthAriaLabel","previousYearAriaLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthButtonLabel","nextYearButtonLabel","nextMonthAriaLabel","nextYearAriaLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","monthDate","renderCurrentMonth","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","handleOnDayKeyDown","handleMonthMouseLeave","timeFormat","timeIntervals","withPortal","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","jr","portalRoot","portalHost","portalId","createPortal","Qr","disabled","Vr","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","Ur","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","Popper","popperContainer","Manager","Reference","$r","zr","Gr","Jr","getPreSelection","open","startOpen","preventFocus","focused","preventFocusTimeout","cancelFocusInput","calcInitialState","lastPreSelectChange","Zr","setBlur","inputValue","readOnly","preventOpenOnFocus","inputFocusTimeout","setFocus","onChangeRaw","isDefaultPrevented","Xr","strictParsing","setSelected","allowSameDay","focusSelectedMonth","onInputClick","calendar","componentNode","inputOk","handleSelect","onInputError","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","autoFocus","placeholderText","autoComplete","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onScroll","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderDateInput","renderClearButton","renderCalendar","renderInputContainer","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","useIsomorphicLayoutEffect","initialStyles","eventListeners","computeStyles","applyStyles","flip","createPopper","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","optionsWithDefaults","updateStateModifier","popperOptions","popperInstanceRef","popperInstance","defaultCreatePopper","NOOP","NOOP_PROMISE","_ref$placement","_ref$strategy","_ref$modifiers","innerRef","setPopperElement","setArrowElement","_usePopper","childrenProps","refHandler","warning","aa","ba","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","Xa","Sa","Ta","Ra","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","mb","nb","pb","_status","_result","qb","_debugOwner","_debugSource","lineNumber","sb","_valueTracker","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Children","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","Rb","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","orphans","tabSize","widows","zIndex","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","kd","ld","md","nd","menuitem","col","embed","keygen","meta","param","wbr","od","pd","qd","rd","sd","td","ud","vd","wd","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","Interface","eventPool","destructor","getPooled","cancelBubble","persist","eventPhase","timeStamp","isTrusted","beforeInput","compositionEnd","compositionStart","compositionUpdate","keyCode","ctrlKey","altKey","metaKey","datetime","email","search","tel","detachEvent","attachEvent","_isInputEventSupported","Alt","Control","Meta","Shift","getModifierState","screenX","screenY","button","relatedTarget","fromElement","toElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pointerEnter","pointerLeave","parentWindow","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","sf","dataTransfer","targetTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","_context","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","effects","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","refs","Fg","Jg","_reactInternalFiber","enqueueSetState","Gg","Hg","Ig","enqueueReplaceState","enqueueForceUpdate","Kg","shouldComponentUpdate","isPureReactComponent","Lg","updater","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","bh","ch","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useCallback","useImperativeHandle","useReducer","useDebugValue","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","pendingContext","ni","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","Ri","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","_ctor","ob","Xj","_calculateChangedBits","unstable_observedBits","Zj","isReactComponent","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","unmount","form","Lj","lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","hasMap","hasSet","hasArrayBuffer","hasFocus","setSelectionRange","getLastSelection","setSelection","getLastValue","inputRef","getInputState","getLastInputState","setInputState","isCharacterAllowedAtPosition","maskOptions","maskPlaceholder","isCharacterFillingPosition","isPositionEditable","permanents","isValueEmpty","isValueFilled","getFilledLength","lastEditablePosition","getDefaultSelectionForValue","getRightEditablePosition","getStringFillingLengthAtPosition","insertCharacterAtPosition","getLeftEditablePosition","formatValue","insertStringAtPosition","clearRange","processChange","enteredString","forwardRef","alwaysShowMask","beforeMaskedStateChange","nextState","currentState","previousState","onMouseDown","countries","defaultCountriesData","initialize","externalCountriesList","country","iso2","dialCode","areaCodes","_default","getCountries","newObj","_interopRequireWildcard","_classnames","_utils","_FlagBox","_assertThisInitialized","CountryList","_Component","_getPrototypeOf2","listElement","inputTop","windowTop","windowHeight","innerHeight","inputOuterHeight","countryListOuterHeight","getOuterHeight","cssTop","isPreferred","preferredCountriesCount","preferredCountries","actualIndex","countryClassObj","highlight","highlightedCountry","preferred","countryClass","onMouseOverOrFocus","isMobile","handleMouseOver","keyPrefix","isoCode","onMouseOver","setFlag","flagRef","selectedFlag","innerFlagRef","selectedFlagInner","selectedIndex","retrieveLiIndex","changeHighlightCountry","nextProps","shouldUpdate","shallowEquals","showDropdown","setDropdownPosition","_this2","_this$props","preferredOptions","appendListItem","allOptions","divider","__docgenInfo","FlagBox","_CountryList","_RootModal","FlagDropDown","separateDialCode","_this$props2","allowDropdown","arrowClasses","countryCode","_this$props3","dropdownContainer","countryList","_this$props4","refCallback","clickSelectedFlag","handleSelectedFlagKeydown","titleTip","genFlagClassName","genSelectedDialCode","genArrow","genCountryList","_underscore","_AllCountries","_FlagDropDown","_TelInput","_constants","mobileUserAgentRegexp","IntlTelInput","_props","countryData","getCountryData","preventFormat","updateFlagFromNumber","updateValFromNumber","flagDropDown","isInit","prevCountry","selectedCountryData","noCountryDataHandler","defaultCountry","wrapperClass","newNumber","updateDialCode","updatePlaceholder","onSelectFlag","currentNumber","fullNumber","formatFullNumber","isValidNumber","intlTelInputUtils","getExtension","getFullNumber","formatNumber","numericChars","isNumeric","countryCodes","getNumeric","onlyCountries","filterCountries","inArray","excludeCountries","addCountryCode","getDialCode","tempCountry","nationalMode","autoHideDialCode","formatOnInit","loadUtils","utilsScriptDeferred","loadAutoCountry","autoCountryDeferred","localStorage","getItem","lsAutoCountry","loadCountryFromLocalStorage","autoCountry","autoCountryLoaded","startedLoadingAutoCountry","geoIpLookup","setItem","numeric","prevElement","previousElementSibling","nextElement","nextElementSibling","UP","scrollTo","unbindDocumentClick","startsWith","listItem","numberFormat","INTERNATIONAL","NATIONAL","doFormat","doNotify","beforeSetNumber","notifyPhoneNumberChange","isUnknownNanp","countryArray","processFunc","countriesData","processAllCountries","processCountryCodes","processPreferredCountries","removeEmptyDialCode","onPhoneNumberBlur","onPhoneNumberFocus","isOpening","handleDocumentClick","onFlagClick","_this$state","outerHeight","highlightItem","autoPlaceholder","numberType","getExampleNumber","customPlaceholder","middle","containerHeight","getPropertyValue","containerTop","containerBottom","elementHeight","elementTop","elementBottom","middleOffset","newScrollTop","heightDifference","newDialCode","hasSelectedListItem","prevDialCode","useMobileFullscreenDropdown","handleWindowScroll","DOWN","SPACE","ENTER","TAB","getNumber","onPhoneNumberChange","cap","queryTimer","handleUpDownKey","handleEnterKey","ESC","searchForCountry","targetClass","cursorPosition","previousValue","priorValue","previousStringBeforeCursor","getCursorPositionAfterFormating","deferreds","Deferred","windowLoaded","prevState","newState","processCountryData","getTempCountry","generateMarkup","setInitialState","initRequests","when","handleDocumentKeyDown","bindDocumentClick","prevProps","updateFlagOnDefaultCountryChange","inputClass","inputClassName","wrapperStyle","containerClassName","setFlagDropdownRef","setTelRef","handleInputChange","handleOnBlur","handleOnFocus","fieldName","fieldId","inputProps","telInputProps","_reactDom","RootModal","modalTarget","Fragment","TelInput","PLUS","arraysEqual","isWindow","docElem","ignoreOnlyCountriesOption","allowFail","errorHandler","prevBeforeCursor","cursorShift","_j","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isNodeFound","ignoreClass","correspondingElement","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","handlerOptions","WrappedComponent","_class","_temp","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","findHighest","composed","composedPath","disableOnClickOutside","getRef","instanceRef","_proto","excluded","sourceKeys","_objectWithoutPropertiesLoose","wrappedRef","getClass","_getRequireWildcardCache","hasPropertyDescriptor","_reactFastCompare","_createSuper","_isNativeReflectConstruct","Player","_super","_args","player","progress","isReady","playedSeconds","getCurrentTime","loadedSeconds","getSecondsLoaded","getDuration","played","prevPlayed","prevLoaded","progressTimeout","progressFrequency","progressInterval","isLoading","playing","volume","muted","setVolume","loadOnReady","play","handleDurationCheck","isPlaying","onStart","onPlay","playbackRate","startOnPlay","setPlaybackRate","seekOnPlay","seekTo","onPause","activePlayer","onEnded","loopOnEnded","durationCheckTimeout","onDurationCalled","onDuration","stopOnUnmount","disablePIP","_this$props5","pip","disableDeferredLoading","forceLoad","isMediaStream","pause","enablePIP","mute","unmute","setLoop","_this3","onMount","handlePlayerMount","handleReady","handlePlay","handlePause","handleEnded","onLoaded","handleLoaded","handleError","_objectSpread","ICON_SIZE","Preview","fetchImage","light","oEmbedUrl","json","thumbnail_url","playIcon","previewTabIndex","flexCenter","alignItems","justifyContent","preview","backgroundImage","backgroundSize","backgroundPosition","borderStyle","marginLeft","defaultPlayIcon","onKeyPress","handleKeyPress","createReactPlayer","_deepmerge","_memoizeOne","_Player3","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","lazy","IS_GLOBAL","SUPPORTED_PROPS","UniversalSuspense","customPlayers","players","ReactPlayer","showPreview","_wrapper","_player","onClickPreview","getInternalPlayer","fraction","canPlay","omit","getActivePlayer","references","lazyPlayer","handleClickPreview","Wrapper","getAttributes","renderPreview","renderActivePlayer","_i2","_arr2","_i3","_arr3","_Player2","canEnablePIP","_players","_ReactPlayer","FLV_EXTENSIONS","DASH_EXTENSIONS","HLS_EXTENSIONS","VIDEO_EXTENSIONS","AUDIO_EXTENSIONS","MATCH_URL_KALTURA","MATCH_URL_VIDYARD","MATCH_URL_MIXCLOUD","MATCH_URL_DAILYMOTION","MATCH_URL_TWITCH_CHANNEL","MATCH_URL_TWITCH_VIDEO","MATCH_URL_WISTIA","MATCH_URL_STREAMABLE","MATCH_URL_FACEBOOK_WATCH","MATCH_URL_FACEBOOK","MATCH_URL_VIMEO","MATCH_URL_SOUNDCLOUD","MATCH_URL_YOUTUBE","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","_e2","youtube","soundcloud","vimeo","facebook","streamable","wistia","twitch","dailymotion","mixcloud","vidyard","kaltura","file","canPlayFile","_step","_iterator","isBlobUrl","_patterns","DailyMotion","callPlayer","controls","parseStartTime","autoplay","getSDK","DM","video","origin","apiready","seeked","onSeek","currentTime","video_end","durationchange","onDurationChange","waiting","onBuffer","bufferedTime","SDK_URL","SDK_GLOBAL_READY","PLAYER_ID_PREFIX","Facebook","playerId","randomString","FB","XFBML","appId","xfbml","subscribe","playerID","onBufferEnd","HAS_NAVIGATOR","IS_IPAD_PRO","maxTouchPoints","MSStream","MATCH_DROPBOX_URL","MATCH_CLOUDFLARE_STREAM","FilePlayer","_this$props6","_this$props7","onPlaybackRateChange","_this$props8","onEnablePIP","_this$props9","onDisablePIP","supportsWebKitPresentationMode","webkitPresentationMode","prevPlayer","shouldUseAudio","removeListeners","srcObject","hls","_this$props10","playsinline","onPlayBackRateChange","onPresentationModeChange","shouldUseHLS","forceVideo","poster","forceAudio","forceHLS","forceDASH","forceFLV","_this$props$config","hlsVersion","hlsOptions","dashVersion","flvVersion","dash","Hls","MANIFEST_PARSED","ERROR","loadSource","attachMedia","shouldUseDASH","dashjs","MediaPlayer","getDebug","setLogToBrowserConsole","updateSettings","debug","logLevel","Debug","LOG_LEVEL_NONE","shouldUseFLV","flvjs","flv","createPlayer","attachMediaElement","requestPictureInPicture","pictureInPictureElement","webkitSetPresentationMode","exitPictureInPicture","rate","_this$player","seekable","buffered","useHLS","useDASH","useFLV","_this$props11","getSource","preload","autoPlay","renderSourceElement","tracks","renderTrack","Kaltura","playerjs","secondsLoaded","frameBorder","scrolling","allowFullScreen","allow","referrerPolicy","Mixcloud","PlayerWidget","ended","queryString","feed","SoundCloud","SC","_SC$Widget$Events","Widget","PLAY","PLAY_PROGRESS","PAUSE","FINISH","currentPosition","fractionLoaded","loadedProgress","Streamable","Twitch","isChannel","setChannel","setVideo","_Twitch$Player","READY","PLAYING","ENDED","ONLINE","OFFLINE","SEEK","Vidyard","api","addReadyListener","renderPlayer","uuid","getPlayerMetadata","length_in_seconds","VidyardV4","destroyPlayer","Vimeo","_this2$props$config","playerOptions","refreshDuration","Wistia","_onReady","customControls","control","defineControl","_wq","silentAutoPlay","controlsVisibleOnLoad","fullscreenButton","playbar","playbackRateControl","qualityControl","volumeControl","settingsControl","smallPlayButton","unbind","videoID","SDK_GLOBAL","MATCH_PLAYLIST","MATCH_USER_UPLOADS","MATCH_NOCOOKIE","YouTube","listType","playlist","getID","playerVars","onUnstarted","_window$SDK_GLOBAL$Pl","PlayerState","UNSTARTED","PAUSED","BUFFERING","CUED","isPlaylist","embedOptions","loadPlaylist","parsePlaylist","cueVideoById","videoId","startSeconds","endSeconds","parseEndTime","YT","pictureInPictureEnabled","_propTypes","visual","buying","liking","sharing","show_comments","show_playcount","showinfo","iv_load_policy","modestbranding","autopause","byline","portrait","hide_cover","parseTimeParam","MATCH_START_QUERY","MATCH_END_QUERY","sdkGlobal","sdkReady","isLoaded","fetchScript","_loadScript","existingGlobal","sdk","previousOnReady","arrays","omitKeys","_keys","MediaStream","notMobile","webkitSupportsPresentationMode","MATCH_START_STAMP","MATCH_NUMERIC","stamp","_array2","period","parseTimeString","__self","__source","jsx","jsxs","IsSomeRendererActing","toArray","only","PureComponent","_currentValue2","_threadCount","Consumer","createFactory","isValidElement","memo","asyncIterator","innerFn","sent","unwrapped","pushTryEntry","catchLoc","finallyLoc","afterLoc","completion","isGeneratorFunction","mark","awrap","skipTempReset","rval","loc","caught","unstable_forceFrameRate","performance","port2","port1","onmessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","toposort","nodes","edges","sorted","outgoingEdges","edge","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","breaker","AP","OP","_each","_isFunction","_extend","_inArray","class2type","optionsCache","Callbacks","flag","createOptions","fired","firing","firingStart","firingLength","firingIndex","stopOnFalse","disable","unique","lock","fireWith","tuples","always","deferred","fail","fns","newDefer","tuple","returned","pipe","stateString","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","contexts","notifyWith","resolveWith","mixin","defaultFontFamily","defaultFontSize","InverseRangeColor","RangeColor","borderline","lightBackground","lifeAgeWeightHeight","__createBinding","k2","__setModuleDefault","__importStar","mod","__spreadArray","pack","__importDefault","RangeChart","getDownloadTranslations","getOptions","resultRange","rangeColor","mapSeries","react_1","react_apexcharts_1","ChartStyles_1","downloadTranslations","adjustSeries","decimals","ajustedTop","translation","scaleMax","labelColor","scaleMin","fixedRange","high","borderlineHigh","borderlineLow","low","outOfRangeColor","lastSeria","testCode","_val","numericResult","lifeAge","annotationValue","setSeries","_b","_c","annotationTooltip","setAnnotationTooltip","annotationTooltipEvent","setAnnotationTooltipEvent","secondResult","RangeChart_1","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","leafPrototypes","def","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","needAttach","scripts","onScriptComplete","doneFns","nmd","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","isAbsolute","pathname","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","aValue","bValue","invariant","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","clamp","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","newValue","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","_inheritsLoose","oldValue","_Component2","onUpdate","_proto2","createNamedContext","historyContext","Router","computeRootMatch","isExact","_pendingLocation","RouterContext","staticContext","HistoryContext","Lifecycle","onUnmount","cacheCount","generatePath","compilePath","Redirect","computedMatch","matchPath","regexp","Route","isEmptyChildren","createURL","staticHandler","Switch","useHistory","useLocation","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","navigate","isModifiedEvent","forwardedRef","Link","isDuplicateNavigation","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","die","mockGlobal","EMPTY_ARRAY","EMPTY_OBJECT","hasProxy","plainObjectString","assertProxies","invoked","isStringish","isPlainObject","protoConstructor","isGenerator","addHiddenProp","addHiddenFinalProp","createInstanceofPredicate","theClass","isES6Map","thing","isES6Set","hasGetOwnPropertySymbols","storedAnnotationsSymbol","createDecoratorAnnotation","storeAnnotation","isOverride","$mobx","Atom","name_","isPendingUnobservation_","isBeingObserved_","observers_","diffValue_","lastAccessedBy_","lowestObserverState_","IDerivationState_","NOT_TRACKING_","onBOL","onBUOL","onBO","onBUO","reportObserved","reportChanged","startBatch","propagateChanged","endBatch","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","arg3","atom","interceptHook","ON_BECOME_OBSERVED","onBecomeObserved","onBecomeUnobserved","comparer","structural","deepEqual","shallow","deepEnhancer","isObservable","isAction","isFlow","flow","autoAction","referenceEnhancer","OVERRIDE","createActionAnnotation","annotationType_","options_","make_","extend_","adm","actionDescriptor","createActionDescriptor","safeDescriptors","globalState","assertActionDescriptor","createAction","createFlowAnnotation","flowDescriptor","createFlowDescriptor","assertFlowDescriptor","createComputedAnnotation","assertComputedDescriptor","createObservableAnnotation","assertObservableDescriptor","autoAnnotation","createAutoAnnotation","computed","flowAnnotation","actionAnnotation","observableAnnotation","observable","defaultCreateObservableOptions","deep","defaultDecorator","proxy","asCreateObservableOptions","observableRefAnnotation","enhancer","observableShallowAnnotation","isObservableObject","isObservableArray","isObservableMap","isObservableSet","observableStructAnnotation","observableDecoratorAnnotation","getEnhancerFromOptions","getEnhancerFromAnnotation","createObservable","arg2","observableFactories","ObservableValue","ObservableMap","ObservableSet","extendObservable","asObservableObject","asDynamicObservableObject","struct","COMPUTED","computedAnnotation","computedStructAnnotation","arg1","ComputedValue","currentActionId","nextActionId","isFunctionNameConfigurable","tmpNameDescriptor","actionName","executeAction","canRunAsDerivation","scope","runInfo","notifySpy_","startTime_","prevDerivation_","runAsAction","prevAllowStateChanges_","untrackedStart","allowStateChangesStart","prevAllowStateReads_","allowStateReadsStart","runAsAction_","actionId_","parentActionId_","_startAction","allowStateChangesEnd","allowStateReadsEnd","untrackedEnd","_endAction","allowStateChanges","notifySpy","hasUnreportedChange_","interceptors_","changeListeners_","value_","dehancer","dehanceValue","prepareNewValue_","checkIfStateModificationsAreAllowed","hasInterceptors","interceptChange","setNewValue_","hasListeners","intercept_","registerInterceptor","observe_","observableKind","debugObjectName","registerListener","dependenciesState_","observing_","newObserving_","runId_","UP_TO_DATE_","unboundDepsCount_","CaughtException","triggeredBy_","isComputing_","isRunningSetter_","derivation","setter_","isTracing_","TraceMode","scope_","equals_","requiresReaction_","keepAlive_","onBecomeStale_","propagateMaybeChanged","shouldCompute","prevTrackingContext","propagateChangeConfirmed","computeValue_","isCaughtException","trackAndCompute","wasSuspended","changed","trackDerivedFunction","suspend_","clearObserving","firstTime","prevValue","autorun","prevU","warnAboutUntrackedRead_","isComputedValue","cause","prevAllowStateReads","prevUntracked","obs","changeDependenciesStateTo0","prevTracking","prevObserving","observing","lowestNewObservingDerivationState","i0","removeObserver","addObserver","bindDependencies","untracked","allowStateReads","MobXGlobals","canMergeGlobalState","isolateCalled","queueForUnobservation","runReactions","Reaction","requiresObservable_","onInvalidate_","errorHandler_","isDisposed_","isScheduled_","isTrackPending_","isRunning_","schedule_","isScheduled","runReaction_","prevReaction","reportExceptionInDerivation_","dispose","getDisposer_","trace","enterBreakPoint","getAtomFromArgs","reactionScheduler","runReactionsHelper","allReactions","remainingReactions","isReaction","ACTION","AUTOACTION","DEFAULT_ACTION_NAME","actionBoundAnnotation","bound","autoActionAnnotation","autoActionBoundAnnotation","createActionFactory","scheduler","createSchedulerFromOptions","getAtom","listenersKey","hookListeners","ALWAYS","configure","isolateGlobalState","useProxies","enforceActions","baseScheduler","setReactionScheduler","descriptors","getDependencyTree","nodeToDependencyTree","generatorId","FlowCancellationError","flowBoundAnnotation","runId","gen","pendingPromise","stepId","rejector","yieldedPromise","_isObservable","transaction","getAdm","objectProxyTraps","deleteProperty","preventExtensions","interceptable","interceptors","listenable","keysSymbol","makeAutoObservable","overrides","SPLICE","UPDATE","arrayTraps","arrayExtensions","ObservableArrayAdministration","owned_","legacyMode_","atom_","values_","enhancer_","proxy_","lastKnownLength_","newV","oldV","dehanceValue_","dehanceValues_","fireImmediately","added","addedCount","removed","removedCount","getArrayLength_","setArrayLength_","newLength","currentLength","newItems","updateArrayLength_","oldLength","reserveArrayBuffer","spliceWithArray_","deleteCount","lengthDelta","spliceItemsIntoValues_","oldItems","notifyArrayChildUpdate_","notifyArraySplice_","get_","set_","createObservableArray","initialValues","owned","spliceWithArray","addArrayExtension","funcName","funcFactory","simpleFunc","dehancedValues","mapLikeFunc","reduceLikeFunc","currentValue","isObservableArrayAdministration","ObservableMapMarker","ADD","DELETE","data_","hasMap_","keysAtom_","has_","newEntry","hasKey","updateValue_","addValue_","makeIterable","getPlainObjectKeys","replacementMap","dataStructure","convertToMap","orderedData","keysReportChangedCalled","keyExisted","iter1","iter2","next1","next2","ObservableSetMarker","callbackFn","observableValues","descriptorCache","REMOVE","ObservableObjectAdministration","defaultAnnotation_","target_","isPlainObject_","appliedAnnotations_","pendingKeys_","getObservablePropValue_","setObservablePropValue_","proxyTrap","assertAnnotable","outcome","recordAnnotationApplied","defineProperty_","deleteOutcome","delete_","defineObservableProperty_","cachedDescriptor","getCachedObservablePropDescriptor","defineComputedProperty_","notifyPropertyAddition_","ownKeys_","keys_","getAnnotationFromOptions","isObservableObjectAdministration","OBSERVABLE_ARRAY_BUFFER_SIZE","StubArray","LegacyObservableArray","createArrayBufferItem","createArrayEntryDescriptor","createLegacyArray","getDebugName","getAdministration","named","depth","unwrap","areArrays","aCtor","bCtor","bStack","aStack","getSelf","__MOBX_DEVTOOLS_GLOBAL_HOOK__","spy","extras","collectStoredAnnotations","defaultNoopBatch","printDebugValue","FinalizationRegistryLocal","FinalizationRegistry","createTrackingData","changedBeforeMount","cleanAt","CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS","cleanupTokenToReactionTrackingMap","globalCleanupTokensCounter","registry","trackedReaction","addReactionToTrack","reactionTrackingRef","objectRetainedByReact","register","finalizationRegistryCleanupToken","recordReactionAsCommitted","reactionRef","unregister","forceCleanupTimerToRunNowForTests","resetCleanupScheduleForTests","createReactionCleanupTrackingUsingFinalizationRegister","reactionCleanupHandle","uncommittedReactionRefs","ensureCleanupTimerRunning","cleanUncommittedReactions","tracking","createTimerBasedReactionCleanupTracking","globalIsUsingStaticRendering","isUsingStaticRendering","observerComponentNameFor","baseComponentName","objectToBeRetainedByReactFactory","ObjectToBeRetainedByReact","useObserver","newReaction","hasSymbol","ReactForwardRefSymbol","ReactMemoSymbol","observer","baseComponent","useForwardRef","observerComponent","hoistBlackList","observerBatching","i18nInstance","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","getI18n","initReactI18next","setDefaults","react","setI18n","_console","alreadyWarned","warnOnce","loadNamespaces","i18n","isInitialized","initialized","hasLoadedNamespace","languages","lng","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","wait","i18nOptions","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","_useState","_useState2","setT","boundReset","isInitial","toVal","mix","isBool","isStr","isFn","parseClassName","isToastIdValid","toastId","canUseDom","canBeRendered","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","INFO","SUCCESS","WARNING","cssTransition","enter","exit","appendPosition","collapse","collapseDuration","preventExitTransition","nodeRef","isIn","enterClassName","exitClassName","baseClassName","animationStep","collapseToast","onEnter","onExited","onExit","eventManager","emitQueue","cancelEmit","timers","emit","timer","useToastContainer","toastIds","setToastIds","toastToRender","isToastActive","toastKey","displayedToast","containerId","getToast","appendToast","staleId","isNotValid","updateId","closeToast","removeToast","isNotAnUpdate","toastAutoClose","containerAutoClose","toastProps","closeButton","rtl","bodyClassName","bodyStyle","pauseOnHover","pauseOnFocusLoss","draggablePercent","draggableDirection","closeOnClick","progressClassName","progressStyle","autoClose","hideProgressBar","deleteToast","queueLen","freeSlot","dequeueToast","toDequeue","toastContent","getToastToRender","toRender","collection","toast","getX","getY","useToast","isRunning","setIsRunning","setPreventExitTransition","toastRef","removalDistance","canCloseOnClick","canDrag","boundingRect","didMove","syncProps","pauseToast","playToast","bindFocusEvents","eventHandlers","onTouchStart","onMouseUp","onTouchEnd","onDragTransitionEnd","CloseButton","ariaLabel","fillRule","ProgressBar","userStyle","controlledProgress","animationDuration","animationPlayState","defaultClassName","animationEvent","Svg","Icons","spinner","Toast","Transition","cssClasses","isProgressControlled","maybeIcon","iconProps","Icon","renderCloseButton","Bounce","ToastContainer","containerStyle","toastList","pointerEvents","getClassName","newestOnTop","containers","generateToastId","getToastId","dispatchToast","containerDomNode","mergeOptions","createToastByType","asyncGeneratorStep","_throw","_asyncToGenerator","_construct","Class","_wrapNativeSuper","_cache","resetParams","baseParams","oldOptions","oldContent","nextOptions","containerConfig","latestInstance","containerInstance","extendStatics","__extends","__","__awaiter","_arguments","fulfilled","rejected","__generator","trys","verb","op","__values","__read","__asyncGenerator","resume","fulfill","settle","__asyncValues","createErrorClass","createImpl","ctorFunc","UnsubscriptionError","arrRemove","initialTeardown","_parentage","_teardowns","unsubscribe","execTeardown","teardown","Subscription","_hasParent","_addParent","_removeParent","EMPTY","EMPTY_SUBSCRIPTION","isSubscription","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","reportUnhandledError","COMPLETE_NOTIFICATION","createNotification","errorContext","isRoot","errorThrown","isStopped","EMPTY_OBSERVER","SafeSubscriber","handleStoppedNotification","nextNotification","_complete","_bind","partialObserver","handleUnhandledError","observerOrNext","ConsumerObserver","Subscriber","notification","subscriber","pipeFromArray","_subscribe","lift","Observable","isObserver","_trySubscribe","promiseCtor","getPromiseCtor","operations","toPromise","ObjectUnsubscribedError","observers","hasError","thrownError","subject","AnonymousSubject","_throwIfClosed","_checkFinalizedStatuses","_innerSubscribe","asObservable","Subject","_value","subscription","operate","hasLift","liftedSource","createOperatorSubscriber","onNext","onComplete","onFinalize","OperatorSubscriber","shouldUnsubscribe","EmptyError","take","defaultIfEmpty","hasValue","throwIfEmpty","errorFactory","defaultErrorFactory","ApiUrl","hostname","consoleLogger","Logger","concreteLogger","logger","forward","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","_cloned","rej","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","isIE10","ownKeys$1","_objectSpread$1","deepFind","keySeparator","endsWith","joinedPath","ResourceStore","_EventEmitter","ignoreJSONStructure","silent","addNamespaces","resources","addResource","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","language","interpolation","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","zero","two","few","many","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","doReduce","ownKeys$4","_objectSpread$4","parseFormatStr","formatName","formatOptions","optStr","currency","_opt$split2","_toArray","Formatter","NumberFormat","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","addResourceBundle","_getLastOfPath2","pushPath","what","fcName","tried","queueLoad","loadOne","prepareLoading","_this5","isUpdate","initImmediate","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","external","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","changeLanguage","usedCallback","append","setLngProps","resolvedLanguage","lngInLngs","hasLanguageSomeTranslations","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","setDefaultNamespace","loadLanguages","immediate","later","callNow","isMissingOption","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","fetchNode","authorize","apiKey","Authorization","setContentTypeJSON","resourceNotExisting","statusText","requestWithFetch","crossDomain","setRequestHeader","responseText","requestWithXmlHttpRequest","hasLocalStorageSupport","loadPath","privatePath","getLanguagesPath","addPath","updatePath","referenceLng","private","translatedPercentageThreshold","failLoadingOnEmptyJSON","allowedAddOrUpdateHosts","onSaved","reloadInterval","checkForProjectTimeout","storageExpiration","writeDebounce","testKey","removeItem","getStorage","setProjectNotExisting","isProjectNotExisting","projectId","setTime","expires","toGMTString","cookie","nameEQ","I18NextLocizeBackend","somethingLoaded","isAddOrUpdateAllowed","queuedWrites","debouncedProcess","clearInterval","setInterval","currentLanguage","isMissing","getLanguagesCalls","loadUrl","_clbs","clb","clbs","getLanguages","isReferenceLanguage","translated","hasRegion","alreadyRequestedCheckIfProjectExists","checkIfProjectExists","_isMissing","parseErr","_this9","missings","missingUrl","updatesUrl","hasMissing","hasUpdates","payloadMissing","payloadUpdate","doneOne","_this10","pageSize","missing","namespaceSaved","amountOfPages","pagesDone","writePage","_this11","fieldContentRegExp","serializeCookie","maxAge","httpOnly","secure","sameSite","cookieOptions","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","localStorageAvailable","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","lngDetector","LanguageDetector","rootStore","Backend","HttpStatusCode","AuthStore","authToken","translationLoading","donorInfo","notificationProcessed","setTranslationLoading","loading","BuildFetchRequest","logoutFetch","RegistrationStore","confirmPaymentIntent","ObservableFromFetch","publishableKey","setPublishableKey","authStore","stripeStore","StripeStore","registrationStore","Headers","APIError","RequestLockService","BehaviorSubject","isLocked","unlock","successfull","waitSubject","lockService","refetchInitialRequest","retry","UNAUTHORIZED","logout","StoreContext","StoreProvider","useAuthStore","useRegistrationStore","sourceSymbolKeys","ThemeContext","prefixes","useBootstrapPrefix","defaultPrefix","useIsRTL","bsPrefix","fluid","as","_jsx","DEVICE_SIZES","Row","decoratedBsPrefix","sizePrefix","brkPoint","propValue","infix","Col","spans","useCol","colProps","AppRoute","Footer","sm","ClientOrder","RegistrationAlt","Results","FAQ","makeEventKey","eventKey","defaultKey","_toPropertyKey","hint","prim","_toPrimitive","useUncontrolledProp","wasPropRef","stateValue","isProp","wasProp","useUncontrolled","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","__reactInternalSnapshotFlag","__reactInternalSnapshot","__suppressDeprecationWarning","rHyphen","pascalCase","camelize","createWithBsPrefix","BsComponent","Tag","resolvedPrefix","NavbarBrand","psuedoElement","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","isTransform","removeProperty","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","initialStatus","appear","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","ReactDOM","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEntering","onTransitionEnd","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","optionsSupported","onceSupported","wrappedHandler","__once","onceHandler","emulateTransitionEnd","initEvent","triggerEvent","transitionEnd","mult","parseDuration","removeEmulate","transitionEndListener","funcs","triggerBrowserReflow","toFnRef","refA","refB","mergeRefs","safeFindDOMNode","componentOrElement","TransitionWrapper","childRef","mergedRef","useMergedRefs","attachRef","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleExited","handleAddEndListener","innerProps","MARGINS","getDefaultDimensionValue","dimension","margins","collapseStyles","getDimensionValue","Collapse","computedDimension","createChainedFunction","NavbarCollapse","NavbarContext","useEventCallback","useCommittedRef","NavbarToggle","onToggle","useMounted","useWillUnmount","valueRef","useUpdatedRef","dataAttr","OPEN_DATA_ATTRIBUTE","ModalManager","handleContainerOverflow","isRTL","modals","getBodyScrollbarWidth","_modal","containerState","paddingProp","getElement","scrollBarWidth","modal","modalIdx","setModalAttributes","getScrollbarWidth","setContainerStyle","removeContainerStyle","removeModalAttributes","useWindow","resolveContainerRef","useWaitForDOMRef","onResolved","resolvedRef","earlyRef","nextRef","_excluded","useModalManager","provided","modalManager","getManager","dialog","isTopModal","setDialogRef","setBackdropRef","Modal","keyboard","onBackdropClick","onEscapeKeyDown","backdropTransition","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","providedManager","onShow","onHide","prevShow","setExited","lastFocusRef","handleShow","removeKeydownListenerRef","removeFocusListenerRef","handleEnforceFocus","currentActiveElement","handleHide","_lastFocusRef$current","handleBackdropClick","dialogProps","backdropElement","BackdropTransition","_Fragment","_jsxs","fadeStyles","Fade","transitionClasses","isAppearing","transitionStyles","OffcanvasToggling","variant","AbstractModalHeader","closeLabel","closeVariant","ModalContext","OffcanvasHeader","divWithClassName","_superPropBase","_get","receiver","qsa","replaceClassName","origClass","classToRemove","sharedManager","Selector","BootstrapModalManager","adjust","dataset","marginProp","adjustAndStore","getSharedManager","DialogTransition","Offcanvas","ariaLabelledby","backdropClassName","propsManager","modalContext","backdropProps","BaseModal","Body","OffcanvasBody","Header","Title","OffcanvasTitle","NavbarOffcanvas","NavbarText","Navbar","initialBsPrefix","sticky","collapseOnSelect","controlledProps","handleCollapse","expandClass","navbarContext","SelectableContext","Brand","Toggle","useForceUpdate","NavContext","useButtonProps","isTrivialHref","Button","asProp","buttonProps","useNavItem","parentOnSelect","navContext","contextControllerId","getControllerId","contextControlledId","getControlledId","activeKey","NavItem","EVENT_KEY_ATTR","Nav","needsRefocusRef","tabContext","TabContext","listNode","getNextActiveTab","currentListNode","activeChild","nextActiveChild","Item","useCallbackRef","isReactNative","product","Anchor","handleKeyDown","NavLink","navItemProps","uncontrolledProps","navbarBsPrefix","cardHeaderBsPrefix","justify","navbar","navbarScroll","isNavbar","cardHeaderContext","CardHeaderContext","BaseNav","tar","dequal","getInt8","disabledApplyStylesModifier","ariaDescribedByModifier","_popper$getAttribute","prevModifiers","_popperInstanceRef$cu","_popperInstanceRef$cu2","useSafeState","popperState","updateModifier","nextModifiers","isLeftClickEvent","getRefTarget","clickTrigger","preventMouseClickOutsideRef","handleMouseCapture","handleMouse","currentEvent","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","toModifierArray","mergeOptionsWithPopperConfig","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","containerPadding","popperConfig","toModifierMap","useDropdownMenu","DropdownContext","attachArrowRef","hasShownRef","rootCloseEvent","placementOverride","enableEventListeners","shouldUsePopper","handleClose","setMenu","menuElement","toggleElement","menuProps","hasShown","useClickOutside","DropdownMenu","cur","defaultId","isInSSRContext","isSSR","setIsSSR","isRoleMenu","_el$getAttribute","useDropdownToggle","useSSRSafeId","setToggle","DropdownToggle","useDropdownItem","onSelectCtx","DropdownItem","dropdownItemProps","useRefWithUpdate","Dropdown","defaultShow","rawShow","rawOnToggle","itemSelector","focusFirstItemOnShow","menuRef","toggleRef","lastShow","lastSourceEvent","focusInDropdown","nextShow","originalEvent","focusToggle","maybeFocusFirst","focusType","getNextFocusedChild","eventTarget","useEventListener","_menuRef$current","_toggleRef$current","fromMenu","fromToggle","_menuRef$current2","useWrappedRefWithWarning","getDropdownMenuPlacement","alignEnd","dropDirection","showProps","renderOnMount","contextAlign","drop","isInputGroup","InputGroupContext","alignClasses","useIsomorphicEffect","childBsPrefix","dropdownContext","toggleProps","DropdownHeader","DropdownDivider","DropdownItemText","pProps","handleToggle","contextValue","BaseDropdown","ItemText","Divider","NavMenu","useLifeAgeCalculator","allowKitRegistration","allowOrderTesting","nav","Registration","LifeAge","OrderTesting","Login","banner","logo","Logo","alt","showLinks","Spinner","bsSpinnerPrefix","LoadingOverlay","scrollbarSize","recalc","scrollDiv","ModalDialog","contentClassName","centered","fullscreen","scrollable","dialogClass","fullScreenClass","ModalHeader","dialogAs","dialogClassName","Dialog","modalStyle","setStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","setModalRef","getModalManager","updateDialogStyle","containerIsOverflowing","modalIsOverflowing","getScrollbarSize","handleWindowResize","handleDialogMouseDown","handleMouseUp","handleStaticModalAnimation","handleStaticBackdropClick","baseModalStyle","ModalBody","ModalTitle","ModalFooter","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","fastUniqueNumbers","MAX_SAFE_INTEGER","addUniqueNumber","generateUniqueNumber","timerId","timerType","onStorage","storageArea","onmessageerror","BroadcastChannel","APPLY","TELL","CLOSE","REGISTER","DEREGISTER","IDLE","ACTIVE","PROMPT","START","RESET","ACTIVATE","RESUME","MESSAGE","isLeader","isDead","isApplying","reApply","awaitLeadership","sendAction","responseTime","assumeLead","fallbackInterval","PROMPTED","allIdle","channelName","leaderElection","elector","waitForLeadership","idle","activate","onMessage","onPrompt","onIdle","onActive","promptTimeout","immediateEvents","onAction","throttle","eventsThrottle","startOnMount","startManually","stopOnIdle","crossTab","syncTimers","isIdle","isPrompted","getTabId","getRemainingTime","getElapsedTime","getTotalElapsedTime","getLastIdleTime","getLastActiveTime","getTotalIdleTime","getTotalActiveTime","FormatMilliseconds","padStart","TIMEOUT","PROMPT_TIMEOUT","TOTAL_TIMEOUT","IdleTimer","showPrompt","setShowPrompt","remainingTime","setRemainingTime","promptTimer","promptStarted","destroyPromptTimer","useIdleTimer","processRemainingTime","sanitize","ADD_ATTR","skip","notifications","prevAuthToken","showNav","setDomain","setDonorInfo","skipNotification","headerLogo","loginLogo","homePageBanner","CardImg","CardHeader","DivStyledAsH5","DivStyledAsH6","CardBody","CardTitle","CardSubtitle","CardLink","CardText","CardFooter","CardImgOverlay","Card","border","Img","Subtitle","ImgOverlay","Feedback","FormCheckInput","isInvalid","controlId","FormContext","FormCheckLabel","htmlFor","FormCheck","bsSwitchPrefix","feedbackTooltip","feedback","feedbackType","innerFormContext","hasLabel","hasChildOfType","Input","Label","FormControl","htmlSize","plaintext","FormGroup","FormLabel","visuallyHidden","columnClass","FormRange","FormSelect","FormText","FloatingLabel","validated","Form","Group","Floating","FormFloating","Check","Range","Select","FormatLocalISODateString","FormatToLocalDateString","EscapePhoneNumber","phone","InputGroupText","InputGroup","hasValidation","Radio","Checkbox","CalendarDate","BirthdayInput","formatRelativeLocalePlural","DateOfBirth","initialDate","birthdate","setBirthdate","birthdateValid","setBirthdateValid","birthdateTouched","setBirthdateTouched","onSubmit","skipFeedback","en","es","useTranslationWithRef","mapCountryData","AllCountries","getAreaCodes","abbreviation","phoneCode","PhoneNumber","transaltionRef","setPhone","phoneValid","setPhoneValid","phoneTouched","setPhoneTouched","countriesState","setCountriesState","intlTelInputRefCallback","initialPhone","formattedPhoneNumber","skipFocus","changeHandler","valid","disableAreaCodeValidation","inputFieldId","maxLength","useQuery","URLSearchParams","Page","softReload","reloadRequired","initializationTimestamp","setCountry","submitting","setSubmitting","termsOfUseChecked","setTermsOfUseChecked","termsOfUseAccepted","setTermsOfUseAccepted","termsOfUseManualAccepted","setTermsOfUseManualAccepted","setCode","codeTouched","setCodeTouched","setPage","verificationInputRef","redirectUrl","setRedirectUrl","autoSubmitRequired","handleAPIError","countryAbbreviation","mobileNumber","dobString","fixedValue","dob","authenticate","dateOfBirth","Verification","redirectURL","serviceWorkerStore","swUrl","sw","serviceWorker","getRegistration","verify","verificationCode","setAuthToken","validCode","userAcceptedTermsOfUse","logingHeading","loginHeading","welcomeVideo","minLength","isScheduler","schedule","popScheduler","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","isIterable","readableStreamLikeToAsyncGenerator","isReadableStreamLike","innerFrom","fromAsyncIterable","asyncIterable","executeSchedule","parentSubscription","work","scheduleSubscription","observeOn","subscribeOn","scheduleAsyncIterable","scheduled","scheduleObservable","scheduleArray","schedulePromise","scheduleIterable","scheduleReadableStreamLike","intervalProvider","recycleAsyncId","requestAsyncId","_id","_scheduler","execute","_execute","_delay","errorValue","errored","dateTimestampProvider","schedulerActionCtor","Scheduler","SchedulerAction","_active","_scheduled","asyncScheduler","AsyncScheduler","AsyncAction","project","mergeMap","resultSelector","concurrent","onBeforeNext","innerSubScheduler","additionalTeardown","isComplete","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","mergeInternals","concatAll","delayWhen","delayDurationSelector","subscriptionDelay","mapTo","dueTime","intervalOrScheduler","intervalDuration","due","ArrowCounterclockwise","AgeChart","age","AgeGraph","lifeAgeColor","xs","onReset","RangeSlider","translationRef","chartTranslation","selectedResult","zeroRange","MAX_DELAY_MS","setChainedTimeout","handleRef","timeoutAtMs","delayMs","useTimeout","onRootClose","onClose","handleKeyUp","removeKeyupListener","Overlay","outerRef","rootElement","mountOverlay","useRootClose","rootClose","rootCloseDisabled","Popover","primaryPlacement","bsDirection","getOverlayDirection","PopoverBody","PopoverHeader","POPPER_OFFSET","overlay","outerProps","popperRef","overlayRef","popoverClass","useOverlayOffset","actualTransition","BaseOverlay","overlayProps","_popperObj$state","_popperObj$state$modi","popperObj","aRef","__wrapped","wrapRefs","updatedPlacement","outOfBoundaries","handleMouseOverOut","relatedNative","related","OverlayTrigger","propsShow","propsDelay","triggerNodeRef","hoverStateRef","setShow","normalizeDelay","triggers","triggerProps","onMouseOut","ScoresPopover","ValuesSection","lifeAgeValue","donor","firstName","lastName","ToggleSwitch","onCheck","ChevronUp","ChevronDown","mapSelectedResults","setDetailsState","setAge","setLifeAge","calculating","setCalculating","startCalculate","setStartCalculate","smoker","setSmoker","pregnant","setPregnant","selectedResults","setSelectedResults","initialSmoker","setInitialSmoker","collapsed","setCollapsed","calculate","innerSubscriber","innerIndex","outerIndex","ageDifference","subScores","score","recalculatedRanges","getRange","newSelectedResults","SubHeader","downloadGraphReport","ArrowUpCircle","MoveTopButton","behavior","PhysicalSection","section","numericResultString","Download","FormatDate","FormatDateTime","printPdf","buff","fileData","fileURL","revokeObjectURL","RangeReportDownload","testEvent","showPhysicalFirst","sections","downloading","setDownloading","subsriptionRef","downloadContainer","generateImages","physical","chartOpts","dataUrl","clickDownload","testEventId","translations","dateOfRegistration","InfoCircle","DescriptionFormatter","ReportInfo","ShowMoreGroup","showMoreModal","setShowMoreModal","GraphUpArrow","HowToImproveGroup","showImproveModal","setShowImproveModal","RangeGraph","longDescription","howToImprove","displayGraph","RangeSection","Status","hasResults","labReceived","RangeReport","sectionsState","setSectionsState","getGraphReport","Mode","TestResultId","useInterpretiveReport","useHistoricalReport","onChangeTestEvent","menuSize","setMenuSize","menuItems","maxMenuSize","showMore","modeTitle","Interactive","Interpretive","History","onChangeReportMode","displayHistoricalReport","CovidSectionBody","testResultId","Pos","Positive","Neg","Negative","QuantityNotSufficient","CovidSection","expectedRange","TextSection","suppressed","rowClass","shortDescription","TextReport","getTextReport","downloadTextReport","covidReport","HistoryChart","mappedRange","borders","HistorySection","HistoryReport","setHistory","getHistory","keyboardEvents","mouseEvents","allEvents","getArgs","eventProps","makeCancellablePromise","wrappedPromise","mergeClassNames","Message","LinkService","externalLinkTarget","externalLinkRel","pdfDocument","pdfViewer","currentPageNumber","explicitDest","destRef","pagesCount","scrollPageIntoView","goToDestination","newWindow","isBrowser","isLocalFileSystem","isDefined","variable","isProvided","isBlob","isFile","File","isDataURI","dataURItoByteString","_dataURI$split2","headersString","dataString","allowFileAccessFromFilesTip","displayCORSWarning","cancelRunningTask","runningTask","makePageCallback","isCancelException","loadFromFile","FileReader","NOT_FOUND_ERR","NOT_READABLE_ERR","SECURITY_ERR","ABORT_ERR","readAsArrayBuffer","fileTypes","isClassName","isLinkService","isPage","fontLoader","isPdf","isRef","isRenderMode","isRotate","PDFDataRangeTransport","pdfjs","Document","_PureComponent","pdf","pages","scrollIntoView","findDocumentSource","onSourceSuccess","onLoadProgress","onPassword","cancellable","makeCancellable","fingerprint","onLoadSuccess","onLoadError","onSourceError","setViewer","viewer","setExternalLinkRel","setExternalLinkTarget","setDocument","fileByteString","otherParams","_fileByteString","loadDocument","setupLinkService","registerPage","unregisterPage","renderMode","makeEventProps","DocumentContext","childContext","renderChildren","renderContent","PasswordResponses","isFunctionOrNode","isFileProp","Ref","OutlineItemInternal","getPageNumber","otherProps","subitems","subitem","subitemIndex","renderSubitems","isDestination","documentContext","OutlineContext","outlineContext","OutlineInternal","outline","loadOutline","itemIndex","OutlineItem","renderOutline","inputRefs","filteredInputRefs","ANNOTATION_MODE","PageCanvasInternal","renderer","onRenderSuccess","onRenderError","canvasLayer","_assertThisInitialize2","renderViewport","canvasBackground","renderContext","cancelRenderingTask","drawPageOnCanvas","pixelRatio","canvasRef","userSelect","PageCanvas","PageContext","PageSVGInternal","svgGfx","firstElementChild","_this$viewport","renderSVG","_this$viewport2","drawPageOnContainer","PageSVG","TextLayerItemInternal","sideways","alignTextItem","unrotatedViewport","defaultSideways","_transform","fontHeightPx","fontWidthPx","_transform2","_viewport$viewBox","yMin","yMax","_transform3","xMin","fontName","getFontData","fontData","fallbackFontName","fallbackName","targetWidth","actualWidth","getElementWidth","WebkitTransform","customTextRenderer","transformOrigin","whiteSpace","TextLayerItem","TextLayerInternal","onGetTextSuccess","onGetTextError","loadTextItems","textItem","renderTextItems","TextLayer","AnnotationLayerInternal","onGetAnnotationsSuccess","onGetAnnotationsError","onRenderAnnotationLayerSuccess","onRenderAnnotationLayerError","loadAnnotations","annotationLayer","renderAnnotationLayer","pageContext","PageInternal","loadPage","renderInteractiveForms","pageScale","scaleWithDefault","pageKeyNoScale","pageKey","renderTextLayer","AnnotationLayer","renderMainLayer","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","Stripe","findScript","advancedFraudSignals","headOrBody","injectScript","initStripe","registerWrapper","stripePromise$1","loadCalled","FormatCurrency","CheckoutForm","setMessage","setLoading","setComplete","clientSecret","retrievePaymentIntent","paymentIntent","handleSubmit","confirmPayment","confirmParams","return_url","paymentIntentId","price","payment","CheckCircleFill","getStates","AddressForm","address","address1","city","zip","setAddress","setStates","touched","setTouched","setField","validationClassName","formValid","address2","saveAddress","OrderStep","WELLNESS","HEALTH_CONFIRM","BLUESTONE","ALL_IMPLEMENTATIONS","ConsentForm","isBluestone","consentText","consent","secondaryConsentText","secondaryText","initialAccepted","accepted","setAccepted","acceptedBluestone","setAcceptedBluestone","acceptedSecondary","setAcceptedSecondary","acceptedAll","consentId","Cart","setStep","blankSelection","tests","paymentRequired","setPaymentRequired","loadStripe","setClientSecret","appearance","selectedTests","selectedConsent","Checkout","createPaymentIntent","OrderStatus","Consent","Address","OrderTestChecker","showOrderable","setShowOrderable","orderableTests","setOrderableTests","Printer","reportMode","setReportMode","selectedTestEvent","setSelectedTestEvent","showCoverLetter","setShowCoverLetter","pdfContent","setPdfContent","viewedCoverLetter","setViewedCoverLetter","pageCount","setPageCount","onDocumentLoadSuccess","disableCoverSheet","viewed","captureStackTrace","_newTarget","fixProto","fixStack","CharacterSetValueIdentifiers","bits","getSize","initArrays","localBuckets","localLuminances","GlobalHistogramBinarizer","LUMINANCE_SHIFT","blackPoint","subWidth","subHeight","luminances","tempCanvasElement","VideoInputDevice","BarcodeFormat","ResultMetadataType","coefficients","tLast","pointC","pointB","pointA","nbDatablocks","decoderResult","numTransitionsLeft","decodedChar","counters","rowOffset","bestMatch","resultString","resultPointCallback","quietEnd","isRange","UPCEANReader","digit","lgPatternFound","upcaResult","DataCharacter","DecodedNumeric","getPosition","ExpandedPair","currentPos","RSSExpandedReader","retrieveNextPair","isOddPattern","currentByte","bitMatrix","BitSource","ErrorCorrectionLevelValues","DataMaskValues","parsedVersion","DataBlock","ModeValues","possibleCenters","crossCheckStateCount","stateCount","foundPatternCross","confirmed","ModulusPoly","getCoefficients","multiplyOther","ModulusBase","logTable","ModulusGF","BoundingBox","BarcodeMetadata","codewords","DetectionResultRowIndicatorColumn","codeword","DetectionResult","Codeword","codeIndex","subMode","detectionResult","moduleBitCount","startColumn","endColumn","getMinWidth","readers","setHints","decodeInternal","EncodeHintType","intermediate","inputOffset","dataWidth","SimpleToken","bitArray","BinaryShiftToken","State","BarcodeScanner","onSuccess","onCameraNotAvailable","cancelButtonName","cameraBlock","cameraView","cameraCanvas","cameraSensor","cameraCancelButton","cameraHintsContainer","scanline","currentlyScanning","updateInterval","scanInterval","createBasicLayout","playsInline","innerText","cameraStop","mediaDevices","getUserMedia","facingMode","audio","updateCanvas","scanVideoForBarcode","createHintObjects","videoWidth","videoHeight","BrowserMultiFormatReader","decodeFromImage","scanSuccess","getText","getTracks","removeHintObjects","Barcode","barcode","setBarcode","scanned","setScannded","barcodeHidden","setBarcodeHidden","secondBarcode","setSecondBarcode","displaySecondBarcode","setDisplaySecondBarcode","barcodeScanner","cameraNotAvailable","setCameraNotAvailable","barcodeValid","setBarcodeValid","barcodeRef","secondBarcodeRef","submittingRef","removeLayout","clearBarcodes","handleBarcodeBlur","validateBarcode","handleBarcodeFocus","validateBarcodes","preventCopyPaste","preventContextMenu","scanningImageSrc","onCopy","onPaste","onCut","onContextMenu","ScanBarcodeIcon","cameraStart","useTwelve","ConsentStep","setConsent","accountNumber","account","consentTypeID","barcodeType","onPrev","Employee","requireEmployeeId","employeeId","setEmployeeId","employeeIdValid","setEmployeeIdValid","employeeIdTouched","setEmployeeIdTouched","displayBirthdateError","setDisplayBirthdateError","acceptTextMessages","setAcceptTextMessages","validateEmployeeId","birthDateTitle","standardName","translateTitle","implemenationTitle","employee","onCodeResend","onCodeSkip","objectCtorString","getPrototype","isNew","assignValue","copyObject","nativeKeysIn","isProto","baseKeysIn","keysIn","isDeep","getSymbolsIn","arrayBuffer","dataView","cloneArrayBuffer","reFlags","typedArray","cloneDataView","cloneTypedArray","cloneRegExp","cloneSymbol","objectCreate","baseCreate","nodeIsMap","baseIsMap","nodeIsSet","baseIsSet","funcTag","cloneableTags","baseClone","isFlat","isFull","initCloneArray","copyArray","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","initCloneByTag","isSet","subValue","isMap","getAllKeysIn","arrayEach","CLONE_DEEP_FLAG","isEmptyArray","getIn","toPath","setIn","resVal","pathArray","currentPath","currentObj","nextPath","setNestedObjectValues","FormikContext","FormikProvider","useFormikContext","formik","formikReducer","isSubmitting","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","validateOnChange","validateOnBlur","validateOnMount","isInitialValid","enableReinitialize","initialErrors","initialTouched","fieldRegistry","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","schema","sync","validateData","prepareDataForValidation","abortEarly","validateYupSchema","yupError","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","curr","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","combinedErrors","resetForm","dispatchFn","maybePromisedOnReset","validateField","maybePromise","registerField","unregisterField","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","currentArrayOfValues","isValueInArray","valueProp","getValueForCheckbox","getSelectedValues","setFieldTouched","executeBlur","outerHTML","setFormikState","stateOrCb","setStatus","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","imperativeMethods","validateForm","handleReset","getFieldMeta","initialError","getFieldHelpers","setError","getFieldProps","isAnObject","nameOrOptions","valueState","shouldClone","_action","copyArrayLike","arrayLike","maxIndex","FieldArrayInner","updateArrayField","updateErrors","alterErrors","updateTouched","alterTouched","fieldError","fieldTouched","cloneDeep","handlePush","indexA","handleSwap","handleMove","handleInsert","handleReplace","handleUnshift","handleRemove","arrayHelpers","restOfFormik","circulars","clones","errorToString","regExpToString","SYMBOL_REGEXP","printNumber","printSimpleValue","quoteStrings","printValue","mixed","notOneOf","notType","originalValue","isCast","defined","lowercase","uppercase","lessThan","moreThan","positive","negative","boolean","isValue","noUnknown","__isYupSchema__","Condition","otherwise","branch","isSchema","strReg","ValidationError","errorOrErrors","isError","runTests","endEarly","nestedErrors","isContext","isSibling","__isYupRef","createValidation","createError","nextParams","mapValues","formatError","validOrError","OPTIONS","lastPart","lastPartDebug","_part","innerType","parentPath","ReferenceSet","describe","removeItems","BaseSchema","conditions","_mutate","_typeError","_whitelist","_blacklist","exclusiveTests","spec","withMutation","typeError","strip","recursive","nullable","presence","_whitelistError","_blacklistError","before","combined","mergedSpec","_typeCheck","resolvedSchema","_cast","formattedResult","rawValue","getDefault","initialTests","finalTests","maybeCb","_validate","validateSync","_getDefault","isStrict","exclusive","_isPresent","isNullable","isExclusive","enums","valids","resolveAll","invalids","alias","notRequired","Mixed","BooleanSchema","isAbsent","rEmail","rUrl","rUUID","isTrimmed","objStringTag","StringSchema","strValue","excludeEmptyString","NumberSchema","less","more","_method","avail","truncate","isoReg","invalidDate","DateSchema","numericKeys","minutesOffset","isoParse","cast","prepareParam","INVALID_DATE","sortFields","excludedEdges","excludes","addNode","depPath","_err$path","sortByKeyOrder","known","defaultSort","ObjectSchema","_sortErrors","_nodes","_excludedEdges","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","fieldSpec","nextFields","schemaOrRef","dft","getDefaultFromShape","additions","picked","fromGetter","noAllow","unknownKeys","mapKeys","transformKeys","ArraySchema","_opts","castArray","castElement","_options$abortEarly","_options$recursive","builder","MessageType","BarcodeType","InsuranceRelationshipId","__inputType","__outputType","validateAt","validateSyncAt","isValidSync","MessageModal","Html","ConvertToDate","getAge","guardianRequiredTest","underGuardianCare","insuranceInfoRequired","Spouse","Child","Other","relationshipId","relationshipRequires","relId","DonorForm","showMessage","setShowMessage","phoneRef","initialInsurancePhone","donorData","insurance","bluestone","wellness","Wellness","fieldRequiredMessage","Yup","displayEmployeeId","disableEmployeeId","stateCodeId","yesNoSelection","configuration","yesNoOptions","mobile","genderId","genderIdentityId","sexualOrientationId","raceId","ethnicityId","guardianFirstName","guardianLastName","guardianRelationshipId","guardianPhone","guardianPhoneValid","guardianRequiredPhone","performedByAdult","planId","displayInsuranceSection","otherPlanName","policyGroup","policyIdNumber","insurancePhoneValid","isEmployee","employeeIdCancelled","handleRelationshipChange","Undefined","guardianRequired","insuranceErrors","insuranceTouched","races","unknownIndex","ethnicities","insurancePlans","plan","verified","yesText","noText","employeeIdLabel","needToSpecifyEmployeeType","genders","gender","genderIdentities","genderIdentity","sexualOrientations","ethnicity","relationships","relationship","guardianPhoneCode","useInsuranceOtherForPrePopulation","selectedPlan","insuranceGroup","Self","DemographicsStep","emptyInsuranceDonorData","emptyDonorData","guardianCountryAbbreviation","Donor","verifyResponse","loadingConfiguration","setLoadingConfiguration","setDonorData","setConfiguration","donorId","donorHash","employeeResponse","employeeIdRequired","UnableFindEmployeeIdModal","onNo","onYes","Demographics","currentStep","setCurrentStep","employeeRequestRef","employeeResponseRef","verifyResponseRef","attempts","showUnableFindEmployeeId","setShowUnableFindEmployeeId","showInvalidEmployeeId","setShowInvalidEmployeeId","setCountries","handleEmployeeSubmit","employeeRequest","skipVerification","processing","AccountCustomMessage","AccountMessageModal","accountMessage","ExpiredBarcode","HeightRange","WeightRange","SystolicRange","DiastolicRange","PhysicalMeasurementsForm","displayHeigthConfirmed","setDisplayHeigthConfirmed","displayWeigthConfirmed","setDisplayWeigthConfirmed","displayBloodPressureConfirmed","setDisplayBloodPressureConfirmed","showConfirmation","setShowConfirmation","confirmationMessage","setConfirmationMessage","handleNumberChange","validateHeight","displayConfirm","intValue","validateWeight","validateBloodPressure","messages","systolic","diastolic","inputMode","heightConfirmed","weightConfirmed","waistCircumference","bloodPressure","bloodPressureConfirmed","StepType","separator","Questions","recommendation","setRecommendation","questions","setQuestions","answers","setAnswers","displayPhysicalMeasurementsAnswer","setDisplayPhysicalMeasurementsAnswer","requireSymptomQuestions","displayPhysicalMeasurements","question","recommendationYes","recommendationNo","showVaccine","vaccine","answer","parentId","displayQuestion","parentAnswer","questionsAnswered","invalidValueMessage","radioGroup","vaccineChange","Instruction","instructions","setInstructions","showInstructions","setShowInstructions","showVideo","setShowVideo","collectionType","finalStep","headerRow","stepNumber","instructionId","StepIndication","Finish","implemenation","UnsupportedStateModal","SALIVA","SERUM","WELLNESS_DBS","BluestoneInstruction","DbsInstruction","HealthConfirmInstruction","SalivaInstruction","SerumInstruction","WellnessDbsInstruction","ShippingInstruction","implementationInstruction","businessType","findImplementationInstruction","selectInstruction","Activation","setConfirmed","written","setWritten","showKansasNote","note","originalBarcode","collectionDevice","covid","confirmedLabel","writtenLabel","Shipping","testEventHash","formatPhone","serum_wellness_dbs","retainText","fullPhone","Postpone","postpone","resultDate","eligibleDate","resultDescription","defaultSteps","fromQuery","showExpiredBarcode","setShowExpiredBarcode","setAccountMessage","labAccountMessage","setLabAccountMessage","setUseTwelve","barcodeData","setBarcodeData","showUnconformableKit","setShowUnconformableKit","showUnsupportedState","setShowUnsupportedState","setPostpone","answersRef","physicalMeasurementsRef","barcodeScannedRef","originalBarcodeRef","consentIdRef","donorRef","saveResponseRef","setSteps","setInitial","moveToNextStep","currentIndex","nextStepIndex","updatedSteps","moveToPrevStep","prevStepIndex","getAuthDonor","validateOnly","measurements","barcodeScanned","unconformableKit","stateUnsupported","goHome","twelveDigitBarcode","twelveDigitBarcodeRequired","expired","requireSuppressConsent","tuneSteps","nextStep","getNextStep","physicalMeasurements","OrderForm","initialProgramService","programServices","selectedProgramService","setSelectedProgramService","programServiceId","quantity","minQuantity","service","serviceDescription","maxQuantity","moreDetailLink","emptyOrder","participantId","Order","setProgramServices","participantData","setParticipantData","subscriptions","participant","getProgramServices","LanguageSelector","ParticipantForm","program","requireDOB","requireEmail","requireMobile","referenceID","requireReferenceID","offerCode","requireParticipantOfferCode","requireProgramOfferCode","referenceIdLabel","emptyParticipant","programId","ParticipantWraper","setProcessing","participantInformationMsg","validateMobile","ProgramInactive","setParticipant","setProgram","Participant","validateEmail","participantHash","ParticipantInactive","AppWithStore","isAuthenticated","useClientOrder","Landing","WrappedApp","isLocalhost","registerValidSW","registration","onupdatefound","installingWorker","installing","onstatechange","checkValidServiceWorker","serviceWorkerRegistration","waitingServiceWorker"],"sourceRoot":""}